본문 바로가기

개인 공부89

Http&Network Basic : 웹을 안전하게 지켜주는 HTTPS (7장) 🌐 웹을 안전하게 지켜주는 HTTPS 7.1 HTTP의 약점 7.1.1 평문이기 때문에 도청 가능 HTTP는 암호화하는 기능이 없다. TCP/IP는 통신 경로 상 모든 기기를 소유할 수 없기 때문에 도청이 가능하다. 패킷을 수집함으로 도청을 할 수 있다. 이때, 패킷 캡처나 스니퍼라는 툴을 사용한다. 암호화를 통해서 도청을 방지한다. 통신 암호화 : SSL, TLS이라는 다른 프로토콜을 조합해 안전한 통신로를 확보하고 통신한다. 콘텐츠 암호화 : 콘텐츠 자체를 암호화한다. 주로 웹 서비스에서 이용되는 방법이다. 7.1.2 통신 상대를 확인하지 않기 때문에 위장 가능 HTTP 통신은 상대를 확인하지 않는다. 누구나 요청할 수 있기 때문에 서버는 모두 응답한다. SSL은 암호화도 지원하지만 상대를 확인하는 .. 2023. 6. 27.
TIL : import문이 빨갛게 되고 import가 안되는 문제 고치기 (IntelliJ) (23) 🏛️ IntelliJ 가끔 인텔리제이를 사용하다가 import문이 고장 나는 경우가 있습니다. 다음과 같이 말이죠 🥹🥹 어김없이 구글링을 통해서 해결하려고 신나게 찾아다녔습니다. 다행히도 결과는 많았습니다. 캐시도 비워보고, JDK도 확인해보고 프로젝트도 리빌드를 해보았지만 어떤 방법도 통하지 않았습니다. 🥹🥹 한참을 뻘짓하다가 기능을 하나 찾았습니다! 다행히도 IDE 자체에서 고장을 고치는 기능이 있었습니다. File > Repair IDE 탭에서 찾을 수 있는 기능입니다. 😎😎 저같은 문제를 겪으신 분이 있다면 이 기능을 한번 꼭 써보시기 바랍니다 ㅎㅎ😋😋 😋 지극히 개인적인 블로그지만 훈수와 조언은 제 성장에 도움이 됩니다 😋 2023. 6. 21.
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와 연계하는 웹 서버 (5장) 🙋 HTTP와 연계하는 웹 서버 5.1 1대로 멀티 도메인을 가능하게 하는 가상 호스트 HTTP/1.1에서 가상 호스트를 사용하면 1대의 서버로 여러 서버가 있는 것처럼 보일 수 있다. 특정 도메인으로 호출해도 IP주소로 변환되어 서버로 도착한다. 따라서 어떤 도메인을 요청하는지 모르기 때문에 구분할 방법을 같이 요청해야 한다. ex. 호스트명과 도메인을 완전히 포함한 URI / Host 헤더 필드 지정 5.2 통신을 중계하는 프로그램 : 프록시, 게이트웨이, 터널 HTTP는 통신을 중계하는 프로그램과 서버를 연계할 수 있다. 이런 프로그램들은 요청에 대해서 응답을 반환한다. 프록시 중간 다리 역할을 수행한다. 요청은 서버로 넘기고, 응답은 클라이언트에게 보낸다. 받은 요청의 URI를 변경하지 않는다. .. 2023. 6. 13.
[Design Patterns] 상태 패턴 🙋 들어가기 앞서 디자인 패턴 중에서 행동 패턴에 속해있는 "상태 패턴"에 대해서 알아보는 시간을 가져보겠습니다. 이 글에서는 상태 패턴의 구조를 예시로 알아보고 장단점과 비슷한 다른 패턴을 비교해 보겠습니다. 🫨 상태 패턴 상태 패턴은 객체 내부의 상태가 변경될 때마다 행동이 달라지는 디자인 패턴입니다. 상태에 맞는 행동을 분리해 코드의 응집도를 높이고 새로운 행동이 추가되어도 다른 행동에 영향을 주지 않는 것이 목적입니다. 🚑 구조 다음 그림과 같은 구조를 가지고 있습니다. 객체(Context)의 상태를 분리하고 상태 객체의 참조를 가지게 합니다. 이후 상태에 맞는 행위를 구현한 구현체를 만들어 줍니다. 🧙‍♂️ 예시 (feat. 주문) 배달 주문을 하는 것으로 예시를 들어보겠습니다! 간단하게 어떤 .. 2023. 6. 13.