본문 바로가기

개인 공부89

Http&Network Basic : 결과를 전달하는 HTTP 상태 코드 (4장) 🤪 결과를 전달하는 HTTP 상태 코드 4.1 상태 코드는 서버로부터 리퀘스트 결과를 전달한다 상태 코드는 제목 그대로 결과가 어떻게 처리되었는지 알려주는 것이다. 첫 번째 자리가 리스폰스 클래스를 의미한다. 4.2 2XX 성공(Success) 200 OK 정상적으로 처리되었음을 나타낸다. 반환되는 데이터는 요청 메서드에 따라 다르다. 204 No Content 정상적으로 처리했지만 리턴되는 리소스가 없음을 나타낸다. 206 Partial Content 3장에서 알아본 레인지 리퀘스트에 대해서 부분적으로 응답했음을 나타낸다. Content-Range에 지정된 범위의 엔티티를 포함한다. 4.3 3XX 리다이렉트(Redirection) 리퀘스트가 정상적으로 처리되기 위해 브라우저 측에서 특별한 처리를 수행해.. 2023. 6. 6.
Http&Network Basic : HTTP 정보는 HTTP 메시지에 있다 (3장) 😇 HTTP 정보는 HTTP 메시지에 있다 3.1 HTTP 메시지 HTTP에서 교환하는 정보를 HTTP 메시지라고 한다. 크게 구분하면 헤더와 바디로 구분된다. 개행 문자(/n)로 둘을 구분한다. 바디는 항상 존재하는 것은 아니다. 3.2 리퀘스트 메시지와 리스폰스 메시지의 구조 보내는 쪽(Request)에서는 요청 URI와 HTTP 버전을 헤더에 담아 보낸다. 받는 쪽(Response)에서는 상태 코드와 HTTP 버전을 헤더에 담아 보낸다. 헤더에는 송수신 정보 외에도 여러 조건과 속성을 포함한다. 3.3 인코딩으로 전송 효율을 높이다 있는 그대로 보내는 것보단 인코딩을 한다면 아무래도 효율이 좋을 것이다. HTTP 통신에서 엔티티는 하나의 payload이다. 일반적으로 메시지 바디와 엔티티 바디는 같.. 2023. 6. 6.
[객체지향의 사실과 오해] 2장 : 이상한 나라의 객체 🧐 객체지향의 패러다임? 2장을 펼쳤을 때, 가장 먼저 눈에 들어오는 말은 패러다임이다. 패러다임이라는 말은 익숙한 듯 낯설다. 위키백과에는 패러다임은 다음과 같이 정의되어 있다. 패러다임(paradigm)은 어떤 한 시대 사람들의 견해나 사고를 근본적으로 규정하고 있는 테두리로서의 인식의 체계, 또는 사물에 대한 이론적인 틀이나 체계를 의미하는 개념이다. JPA(ORM)를 시작할 때 "객체지향 프로그래밍과 관계형 데이터베이스의 패러다임의 불일치를 해소하기 위한 기술"이라는 점을 가장 먼저 공부한다. 당시에는 단순하게 둘 사이의 차이를 해소시키는 것으로 이해하고 넘어갔지만 패러다임이 무엇인지 명확하게 이해가 가지 않는다. 그렇다면 패러다임을 어떻게 이해하면 좋을까? 나는 패러다임은 안경으로 이해했.. 2023. 6. 4.
Http&Network Basic : 간단한 프로토콜 HTTP (2장) 🌐 간단한 프로토콜 HTTP 2.1 HTTP는 클라이언트와 서버 간에 통신을 한다 HTTP에선 클라이언트와 서버를 명확하게 구별한다. 2.2 리퀘스트와 리스폰스를 교환하여 성립 항상 요청에 따른 응답이 돌아온다. 요청은 메서드, URI, 프로토콜, 헤더 그리고 바디로 이루어져 있다. 2.3 HTTP는 상태를 유지하지 않는 프로토콜 HTTP는 상태를 가지지 않는다. 즉, 항상 새로운 요청과 응답이 생성된다. 웹이 진화함에 따라 추가적인 요구사항에 대응하기 어려워 쿠키라는 개념이 탄생했다. 2.4 리퀘스트 URI로 리소스를 식별 URI를 자원이라고 표현한 이유이다. 받은 요청의 URI로 서버 특정 자원을 식별한다. 2.5 서버에 임무를 부여하는 HTTP 메서드 보통 REST API를 사용하므로 간단하게 알아.. 2023. 5. 30.
Http&Network Basic : 웹과 네트워크의 기본 (1장) 😱 웹과 네트워크의 기본 1.1 웹은 HTTP로 나타낸다. 브라우저에 지정된 URL을 입력해 서버로부터 정보를 얻고 있는 것이다. 클라이언트에서 서버까지의 흐름을 결정하는 것이 HTTP라는 프로토콜이다. 프로토콜은 약속이다. 1.2 HTTP는 이렇게 태어났고 성장했다. 1989년에 지식 공유를 위해서 HTTP가 탄생했다. 🌐 WWW (World Wide Web)을 구성하기 위해서 HTML, HTTP, URL의 개념이 등장했다. 웹의 발전으로 많은 기업들이 경쟁하면서 다양한 브라우저가 등장했고 통일된 규칙이 필요해졌다. 오늘날 많이 사용하는 HTTP/1.1 버전은 꽤 오래전에 등장했다. 1.3 네트워크의 기본은 TCP/IP HTTP의 기본은 TCP/IP 프로토콜이다. 각 계층 간 데이터가 이동할 때 추가적.. 2023. 5. 30.
TIL : Bean 컨테이너와 ComponentScan (22) 🎛️ ApplicationContext 스프링에서 핵심인 ApplicationContext는 Bean을 관리해준다. 싱글톤 레파지토리로도 불리는데 Bean을 싱글톤으로 관리해주기 때문이다. 우리가 작성한 설정 정보를 적용시키려면 @Configuration을 붙여준다. 여기에 싱글톤의 비밀이 들어있다. 설정 정보는 우리가 작성한 순수 자바 클래스가 빈으로 등록되는 것이 아니다. 작성한 자바 클래스를 상속받는 임의의 다른 클래스를 만들고 빈으로 등록한다. 여기서는 CGLIB라는 바이트코드 조작 라이브러리를 사용한다. CGLIB 라이브러리가 내부적으로 어떻게 구현되었는지는 모르겠지만, 빈이 존재하면 기존 인스턴스를 반환하고 아니라면 생성할 수 있도록하는 클래스로 변환될 것이다. 따라서 @Configuratio.. 2023. 5. 17.