본문 바로가기

분류 전체보기151

[Spring] 커넥션 풀과 DataSource에 대한 이해 [김영한님의 스프링 DB 1편 - 데이터 접근 핵심 원리를 학습 후 정리한 내용입니다.] 순서 커넥션 풀이란? DataSource이란? DataSource 예제 - DriverManager DataSource 예제 - 커넥션 풀 DataSource 실제 적용 1. 커넥션 풀이란? 데이터베이스 커넥션을 획득할 때에는 아래 그림과 같이 매우 복잡한 과정을 거친다. 애플리케이션 로직은 DB드라이버를 통해 커넥션을 조회한다. DB드라이버는 DB와 TCP/IP 커넥션을 연결한다. 이 과정에서 3 way handshake 같은 네트워크 동작이 발생한다. DB드라이버는 TCP/IP 커넥션이 연결되면, ID PW와 기타 부가정보를 DB에 전달한다. DB는 ID PW를 통해 내부 인증을 완료하고, 내부에 DB 세션을 생.. 2023. 5. 22.
[Spring] JDBC에 대한 이해 [김영한님의 스프링 DB 1편 - 데이터 접근 핵심 원리를 학습 후 정리한 내용입니다.] 순서 JDBC에 대한 이해 JDBC를 활용한 CRUD 예제 1. JDBC에 대한 이해 1) JDBC등장 이유 애플리케이션을 개발할 때 중요한 데이터는 대부분 데이터베이스에 보관한다. 클라이언트가 애플리케이션 서버를 통해 데이터를 정하거나 조회하면, 애플리케이션 서버는 다음 과정을 통해서 데이터를 사용한다. 커넥션 연결: TCP/IP를 사용해서 커넥션을 연결한다. SQL 전달: 애플리케이션 서버는 DB가 이해할 수 있는 SQL을 연결된 커넥션을 통해 DB에 전달한다. 결과 응답: DB는 전달된 SQL을 수행하고 그 결과를 응답한다. 애플리케이션 서버는 응답 결과를 활용한다. 여기서 사용하는 DB가 바뀐다면 어떻게 해야.. 2023. 5. 22.
[Network] HTTP 캐시 관련된 헤더 [김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식을 학습 후 정리한 내용입니다.] 순서 캐시의 기본 동작 검증 헤더와 조건부 요청 if-Modified-Since + Last-modified 사용 검증 헤더와 조건부 요청 if-None-Match + Etag 사용 캐시와 조건부 요청 헤더 프록시 캐시 캐시 무효화 1. 캐시의 기본 동작 1) 캐시가 없을 때 클라이언트에서 서버로 star.jpg를 얻기 위해 첫번째 요청을 하게 되면, 1.1M의 용량을 갖는 응답을 받게 된다. 두번째 요청을 할 경우에는 똑같이 1.1M의 용량을 갖는 응답을 받는다. 위 그림과 같이 캐시가 없을 때는 데이터가 변경되지 않아도 계속 네트워크를 통해서 데이터를 다운로드 받아야 한다. 인터넷 네트워크가 매우 느리고 비싸며 브.. 2023. 5. 17.
[Network] HTTP 일반정보, 쿠키에 관련된 헤더 [김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식을 학습 후 정리한 내용입니다.] 순서 HTTP 헤더의 용도 HTTP 헤더 - 일반 정보 HTTP 헤더 - 특별한 정보 쿠키 HTTP 헤더 - 쿠키 정보 1. HTTP 헤더의 용도 HTTP 전송에 필요한 모든 부가정보 ex) 메시지 바디 내용, 메시지 바디 크기, 압축, 인증, 요청, 클라이언트, 서버 정보, 캐시 관리 정보… 필요 시 임의의 헤더를 추가할 수 있다. ※참고 - 기존의 HTTP 표준이었던 RFC2616이 폐기되고 RFC723x가 등장했다. 기존에 사용하던 엔티티(Entity)라는 개념이 표현(Representation)으로 바뀌었고, 표현이라는 것은 (표현 메타데이터 + 표현 데이터)로 구성된다. 여기서 말하는 표현 데이터는 메시지 바.. 2023. 5. 17.
[Network] HTTP 상태코드 정리 [김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식을 학습 후 정리한 내용입니다.] HTTP 상태코드 HTTP 상태 코드란 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능이다. 대표적으로 5가지의 종류가 있으며, 첫 숫자가 뭘로 시작하느냐에 따라 의미가 달라진다. 1xx (Informational): 요청이 수신되어 처리중 2xx (Successful): 요청 정상 처리 3xx (Redirection): 요청을 완료하려면 추가 행동이 필요 4xx (Client Error): 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음 5xx (Server Error): 서버 오류, 서버가 정상 요청을 처리하지 못함 1xx (요청이 수신되어 처리중) 거의 사용하지 않으므로 생략한다. .. 2023. 5. 17.
[Network] HTTP 메서드와 활용 [김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식을 학습 후 정리한 내용입니다.] 순서 HTTP API 생성 HTTP 메서드 - GET, POST, PUT, PATCH, DELETE HTTP 메서드의 속성 클라이언트에서 서버로 데이터 전송 HTTP API 설계 예시 1. HTTP API 생성 회원 정보 관리 API를 만들자. 다음과 같은 요구사항이 있다. 회원 목록 조회 회원 조회 회원 등록 회원 수정 회원 삭제 API를 만들기 앞서 URI를 설계할 때 많은 개발자들은 다음과 같이 설계한다. 회원 목록 조회 /read-member-list 회원 조회 /read-member-by-id 회원 등록 /create-member 회원 수정 /update-member 회원 삭제 /delete-member 이렇.. 2023. 5. 13.