본문 바로가기

server

(12)
cors 쉽게 이해하기 CORS란? Cross-Origin Resource Sharing (CORS)은 추가 HTTP 헤더를 사용하여 브라우저가 실행 중인 웹 애플리케이션에 선택된 액세스 권한을 부여하도록 하는 메커니즘입니다. 다른 출처(도메인, 프로토콜 또는 포트)의 자원 및 리소스를 요청할 때 cross-origin HTTP 요청을 실행합니다. 과거에 보안 상의 이유로, 브라우저들은 스크립트 내에서 cross-origin HTTP 요청을 제한했었습니다. 예를 들어, XMLHttpRequest and the Fetch API는 same-origin 정책을 따랐습니다. 다른 API의 응답에 올바른 CORS 헤더가 포함되어 있지 않으면 해당 API를 사용하는 웹 응용 프로그램은 동일한 출처의 리소스(같은 도메인, 같은 포트)만 ..
sentry.io 를 이용한 에러 탐지 (python) 프로그램을 작성시 테스트를 통해 수많은 에러를 겪으며 프로그램을 작성한다. 단위 테스트, 통합 테스트 등 수많은 테스트를 겪었으니 해당 프로그램은 에러가 없을까?세상에 완벽한 프로그램이 없듯이 자의든 타의든 프로그램엔 에러가 있을 수 밖에 없다. 에러 발견을 메신져 알림을 통해 바로 확인하게 할수도 있고, 디비에 해당 내역을 기록할수 도 있다. 수많은 프로그램이 난무 하는 가운데 그중 하나인 sentry.io를 소개 한다. 사용법이 간단하고(아마도??) 통합적으로 관리할수 있는 뷰가 있어서 sentry.io를 선택했다. 먼저 회원가입을 하면 사용하는 언어/프레임워크를 선택한다. 저의 경우 python을 선택했다.sentry-sdk 라는 패키지 설치 및 해당 프로젝트에 해당 api key를 선언해 준다. ..
코딩을 하기전 해야할 일들 1. 요구사항의 명확화 - 정확히 무엇을 할것인지를 정의할것 2. 파라미터 정의 - int / array / date / timestamp 인지 파라미터를 명확히 한다. 3. 기능의 순서 설계 - 요구사항을 진행하기 위해서 어떤 순서로 코드를 작성할 것인가? UML / 다이어그램 / 순서도 등을 통해 순처리/예외처리를 확인 을 통해 간결해 진다. 4. 코드 작성 및 리팩토링 (코드를 짜면서 기능을 추가 할수도 있으며, 기능 단위로 다시 묶음으로써 리팩토링이 가능해 진다. ) 5. 추가 사항이 있는가 확인. 있다면 다시 1번으로 - 버그나 에러는 1, 2번에서 빠진게 있는것. 만일 이게 아니라면 기능상의 오류 (기능정의부터 잘못됨) - 코드부터 작성하지 말자. 기능과 파라미터를 명확히 하면 더 시간을 아낄..
No such file or directory: 'geckodriver': 'geckodriver' No such file or directory: 'geckodriver': 'geckodriver'selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH.혹시 selnium 패키지를 이용하여 테스트를 할시 위와 같은 에러가 발생한다면 selenimu에서 사용하는 gecko 브라우져의 드라이버를 추가해줘야 한다. https://github.com/mozilla/geckodriver/releases 자신의 OS에 맞는 드라이버를 다운로드 한후 MAC의 경우 /usr/local/bin/ 폴더에 복사 해주면 정상 작동한다.
web developer roadmap 출처 : https://github.com/kamranahmedse/developer-roadmap 눈에 띄는 것은 1. 테스트 작성 및 TDD가 최상단에 있다는것. (6번) 2. Docker / GraphQL을 배워야 한다는것 (19 / 21 번) 자신이 스타트업같이 개발자가 10명 이내의 회사라면 프론트엔드 + 백엔드 + 데브옵스 까지 기본적인 것은 다 해야 한다. (위의 것은 한번쯤은 건들어봐야 한다... 그게 스타트업이다....아무것도 없으니 만들어야됨.. 누가? 네가!)규모가 있는 회사라면 백엔드와 데브옵스 팀이 구분되어 있다. (데브옵스가 인프라팀으로 세분화 된다)게임에서만 케릭터 스킬 뭐 찍을까 몇일씩 고민하지 말고 자신의 테크트리도 잘 보고 찍자.- 단 천재는 알아서 다 잘한다. 저걸 전부..
Elasticsearch {"error":"Content-Type header [application/x-www-form-urlencoded] is not supported","status":406} 5.5.0 이상 버전에서 아래와 같은 에러 발생 시 {"error":"Content-Type header [application/x-www-form-urlencoded] is not supported","status":406} curl의 헤더에 content-type을 추가해 줘야 한다. -H 'Content-Type: application/json'ex) $ curl -XPOST "https://localhost:32769/board/guest"-H ‘Content-Type: application/json’-d'{ "name": "test", "title": "title", "content": "content content"}'
포털 사이트는 http/2를 지원하는가? http/2 는 무려 2015년동에 이미 공식 프로토콜로 승인되어 많은 웹서버에서 지원하고 있다. ( 설정하는것은 나중에 따로 포스팅으로..)기존 http보다 무려 2배 이상 빠르다. 만일 전송해야 될 파일이 많으면 많을수록(크기는 중요치 않다, 양이 중요하다) 이론상으론 더 빨라진다. 기존 브라우저에서 6개만의 소켓으로 통신하는 프론트엔드 파일을 한꺼번에 던져 줄 뿐더러, 압축률까지 좋다. http1에서의 클라이언트 서버는 6개의 차가 도로를 모두 차지 하므로 나머지 차량은 대기 해야 한다. (저 소켓 6개의 한계 때문에 리소스 서버는 도메인을 바꾼다 던지, gzip 압축을 추가 / 스프라이프이미지 / minify로 용량 줄이기 등 수많은 짓을 하지 않았는가!!) http2에서는 한차량으로 여러 차량이..
SSL / TLS SSL(Secure Sockets Layer) / TLS(Transport Layer Security) 는 통신상의 패킷에 암호화를 통한 보안을 제공. 1. SSL 보안 소켓 계층의 약자로, 1990년대 넷스케이프가 처음 개발한 것으로 데이터를 안전하게 전송하기 위한 인터넷 통신 규약 프로토콜. 1.0 (비공개) -> 2.0 (결함으로 빠른 칼퇴) -> 3.0을 1996년 표준으로 지정. 2. TLS 전송 계층 보안의 약자로 1999년 SSL 프로토콜의 다음 버전으로 출시. IETF( Internet Engineering Task Force)에서 표준화. SSL 3.0과 큰 차이가 없다. TLS프로토콜은 모든 종류의 인터넷 통신을 암호화 한다. URL의 https / 이메일 / 유즈넷 등에서 사용된다. ..