전체 글
-
Index (1)개발 2022. 6. 29. 01:28
Index ? 데이터를 빠르게 찾을 수 있게 하는 하나의 도구로 보면 된다. ex) 책의 뒤에 존재하는 찾아보기 같은 개념이라 생각 하면 된다. Index의 장단점 Index의 장점으로는 데이터가 아주 많을 때 기존보다 아주 빠른 응답속도로 쿼리의 결과를 얻을 수 있다는 점이 있다. 컴퓨터의 입장에서는 적은 처리량으로 요청한 결과를 빨리 얻을 수 있으므로 결과적으로 전체 시스템의 성능이 향상된다고도 볼 수 있다. Index의 단점으로는 아무래도 Index를 담을 새로운 공간이 데이터베이스에 필요하다는 점과, 초기 Index 생성시 시간이 오래걸린다는 점이 존재한다, 또 무분별하게 Index를 생성하게 되면 ? > 책의 찾아보기에 하나의 단어가 이곳 저곳에 있어 찾는데 복잡해지는 것과 같은 현상이 발생한다..
-
비트 스왑Algorithm 2022. 2. 22. 02:13
프로그램의 속도를 향상시킬 수 있는 다양한 비트 조작 방법들 중하나. 기본적으로 XOR 연산에 익숙해야하며, 마스크를 어떻게 사용하고 만들 수 있는지 알아야한다. 1로 세팅된 하위 비트의 값을 최적의 방법으로 지울 수 있어야 한다. 0으로 세팅된 하위 비트를 1로 셋하거나 해당 비트의 인덱스를 구하는 방법, 부호의 여부 등 시프트 연산에대해 기본적으로 이해하고 있어야 한다. 시프트연산 a > b 정수 a의 각 비트를 b만큼 오른쪽으로 이동, 빈자리는 정수 a의 최상위 부호 비트와 같은 값으로 채운다. a >>> b 정수 a의 비트를 b만큼 오른쪽으로 이동, 빈자리는 0으로 채운다. a & b and 연산으로 두 비트 모두 1일 경우 1 a | b or 연산으로 두 비트 중 하나만 1이여도 1 a^b xo..
-
Docker - 1개발 2021. 6. 14. 22:16
-오랜만에 쓰는 개발 공부 글.. Docker Image - Docker Container를 구성하는 File System과 실행할 Application 설정을 하나로 합친 것, Container를 생성하는 Template역할을 한다. Docker Container - Docker Image를 기반으로 생성되며, File Systemrhk Application이 구체화 되어 실행되는 상태를 의미. Docker Image 한개로 여러 개의 컨테이너를 생성할 수 있음. Docker Instruction - FROM Docker Image의 바탕이될 베이스 Image를 지정한다. Dockerfile로 Image를 Build할 때 먼저 FROM 인스트럭션에 지정된 이미지를 내려 받는다. FROM에서 받아오는 D..
-
5xx Server Error개발 2021. 5. 5. 23:02
5xx (Server Error) 서버 오류 서버 문제로 오류 발생 서버에 문제가 있기 때문에 재시도시 성공할 수도 있음 500 Internal Server Error 서버 문제로 오류 발생, 애매하면 500 Error 서버 내부 문제로 오류 발생. 애매하면 500 503 Service Unavailable 서비스 이용 불가 서버가 일시적 과부하 혹은 예정된 작업으로 요청을 처리할 수 없는 경우 Retry-After Header Field로 얼마뒤 복구되는지 보낼 수도 있음
-
4xx Client Error개발 2021. 5. 5. 23:01
4xx (Client Error) 클라이언트 오류 클라이언트 요청에 잘못된 문법등으로 서버가 요청을 수행할 수 없음 요청 구문, 메시지 등등 오류 클라이언트는 요청 내용을 다시 검토하고 보내야 한다. ex) 요청 parameter error or API spec에 맞지 않을 때 401 Unauthorized 클라이언트가 해당 리소스에 대해 인증이 필요할 때 인증이 되지 않은 상태 401 error 발생시 응답에 WWW-Authenticate Header와 함께 인증 방법 설명 Authentication(인증) 본인이 누군지 확인하는 과정 (로그인) Authorization(인가) 권한부여 (Admin 처럼 특정 리소스에 대한 접근 권한이 있는 경우 인증이 있어야 인가가 있음) Error Message가 ..
-
3xx Redirection개발 2021. 5. 5. 22:58
3xx Redirection 요청을 완료하기 위해 유저의 추가적 조치가 필요한 상황 웹 브라우저는 3xx 응답의 결과에 location header 가 존재 시 해당 location으로 이동하며 이를 redirect라 한다. 영구 redirection - 특정 리소스가 영구적으로 이동하는 케이스 원래의 url을 사용하지 않는다. 검색엔진 등에서도 변경을 인지한다. 301 moved permanently 리다이렉트시 요청 메서드가 get으로 변하고 본문 제거 될 수도 있음 (MAY) 308 permanent redirect 301과 기능은 같으나 리다이렉트 요청시 메서드와 본문 유지 (Post -> Post) 실무에선 POST로 와도 GET으로 돌림 (308 잘안씀 301 쓴다) Ex) /members -..
-
HTTP API 설계하기개발 2021. 3. 18. 01:17
클라이언트에서 서버로 데이터 전송할 때 크게 2가지 전달 방식을 사용한다 쿼리 파라미터를 통한 데이터 전송 GET 주로 정렬 필터 (검색어) 메세지 바디를 통한 데이터 전송 POST, PUT, PATCH 회원 가입, 상품 주문, 리소스 등록, 리소스 변경 클라이언트에서 서버로 데이터 전송을 하는 4가지 상황 정적 데이터 조회 쿼리 파라미터 미사용 이미지나 정적 텍스트 문서를 전달. 조회는 GET METHOD를 사용하지만 단순히 리소스 경로를 사용해 조회가 가능하다. 동적 데이터 조회 쿼리 파라미터 사용 서버는 쿼리 파라미터를 기반으로 정렬 필터를 적용해 결과를 동적으로 생성해서 보내준다. 주로 검색, 게시판 목록에서 정렬 필터 (검색어) 조회 조건을 줄여주는 필터, 조회 결과를 정렬하는 정렬 조건에 주로..
-
HTTP METHOD - PUT&PATCH&DELETE개발 2021. 2. 2. 15:29
PUT PUT /members/100 HTTP/1.1 Content-Type: application/json {"username": "hi", "Age":10} 리소스를 대체한다.(완전히 대체 한다) 리소스가 존재하면 대체하고 없다면 생성한다. 즉 덮어쓰기 클라이언트가 리소스를 식별한다. 클라이언트가 리소스 위치를 알고 URI를 지정한다. 리소스를 완전히 대체하기 때문에 리소스의 필드에 유의해야함, 누락되는 경우 손실되는 필드가 존재한다. PATCH PATCH /members/100 HTTP/1.1 Content-Type: application/json {,"Age":21} 리소스의 부분 변경 PATCH가 지원되지 않는 서버가 존재한다. 이런 경우 POST를 사용하면 된다 (대다수가 지원함) DELETE..