개인 공부185 [Java] 가변성 (feat. Generic) 🙋 들어가며 제네릭에 대해서 자세하게 공부를 하다가 가변성(variance)에 대해서 알게 되었습니다. 어떤 종류가 존재하는지 알아보고, 왜 이런 개념이 있는지 알아보겠습니다. 제네릭을 위해서 다루는 내용이므로 이해가 어렵다면 해당 글에서 예시를 통해 다뤄보도록 하겠습니다. 🔄 가변성이란? 이름에서 예상할 수 있듯이 가변성이란, 특정 타입의 객체를 다른 타입의 객체로 변환할 수 있음을 말합니다. 반대의 개념은 불변성으로, 무공변(Invariance)으로도 부릅니다. 여기서 가변성은 공변과 반공변 두가지가 존재합니다. 어떤 객체 a와 b에 대해서, a가 b로 변환할 수 있다고 가정하겠습니다. 그러면 다음과 같이 총 3가지로 가변성과 불변성을 구분할 수 있습니다. 공변(covariant) : Box를 B.. 2023. 7. 5. [Java] Optional 바르게 사용하기 🙋 들어가며 자바 기반의 백엔드 개발자가 Optional을 제대로 접하는 순간은 JPA의 query method를 사용할 때라고 생각합니다. Optional이 사용하기 편한 객체이지만 사용할 때 주의점을 요합니다. 이 글에서는 Optional에 대한 저의 고찰과 올바르게 사용하는 방법에 대해 이야기해 보겠습니다. 🧐 Optional의 목적 모든 사물들은 각자에게 주어진 알맞은 쓰임이 존재합니다. 예를 들어서, 책은 읽기 위해서 존재합니다. 라면 받침으로 쓰는 것은 본디 목적을 잃는 것입니다. (물론 라면 받침으로 씁니다) 그렇다면 Optional의 쓰임은 무엇일까요? 자바 설계자가 언급한 의도를 가져왔습니다. Our intention was to provide a limited mechanism for .. 2023. 6. 22. Http&Network Basic : HTTP 헤더 (6장) 🙈 HTTP 헤더 6.1 HTTP 메시지 헤더 요청과 응답에는 포함되어 있는 헤더에 각각을 처리하기 위한 정보가 들어있다. 그중 공통적인 부분을 HTTP 메시지 필드라고 부른다. 6.2 HTTP 헤더 필드 부가적으로 중요한 정보와 메시지 크기나 언어, 인증 정보 등을 제공한다. 헤더 필드 명: 필드 값으로 구성되어 있다. 4종류의 헤더 필드가 존재 (General, Request, Response, Entity) 책에서 보여준 헤더 필드(47개) 외에도 존재 데이터에 따라 헤더가 두 가지로 나뉜다. E2E : 이 카테고리의 헤더는 최종 목적지까지 보존된다. Hop-By-Hop : 한 번의 전송에 대해서만 유효하다. 6.3 HTTP/1.1 일반 헤더 필드 Request와 Response 양쪽에서 사용되는 .. 2023. 6. 20. [객체지향의 사실과 오해] 4장 : 역할, 책임, 협력 🙋 들어가며 모든 일에는 일련의 흐름이 존재합니다. 연애를 하고 싶다고 무작정 고백하면 그냥 혼쭐 내는 것과 다를 바가 없습니다. 서로를 알아가는 썸이라는 단계를 밟고 고백을 해야만 비로소 연애를 시작할 수 있습니다. 객체지향의 세계에서도 마찬가지입니다. 먼저 객체의 행동과 상태을 고려하는 것은 고백으로 혼내주는 것입니다. 우리는 도메인을 먼저 분석하고 어떤 흐름으로 해결할지 고민하는 것이 중요합니다. 이 흐름이 바로 문맥(Context)입니다. 객체지향 세계에서 객체들은 문맥을 속에서 서로 협력합니다. 이번 장에서는 바로 문맥에 맞게 협력을 고려하기가 주제이자 핵심입니다. 🗣️ 협력 객체가 협력하는 가장 중요한 이유는 동일한 목적을 이루기 위함입니다. 그렇다면 왜 협력이 중요할까요? 간단한 예로 들.. 2023. 6. 19. 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. 이전 1 2 3 4 5 ··· 31 다음