본문 바로가기

분류 전체보기411

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.
[Java] Optional 바르게 사용하기 🙋 들어가며 자바 기반의 백엔드 개발자가 Optional을 제대로 접하는 순간은 JPA의 query method를 사용할 때라고 생각합니다. Optional이 사용하기 편한 객체이지만 사용할 때 주의점을 요합니다. 이 글에서는 Optional에 대한 저의 고찰과 올바르게 사용하는 방법에 대해 이야기해 보겠습니다. 🧐 Optional의 목적 모든 사물들은 각자에게 주어진 알맞은 쓰임이 존재합니다. 예를 들어서, 책은 읽기 위해서 존재합니다. 라면 받침으로 쓰는 것은 본디 목적을 잃는 것입니다. (물론 라면 받침으로 씁니다) 그렇다면 Optional의 쓰임은 무엇일까요? 자바 설계자가 언급한 의도를 가져왔습니다. Our intention was to provide a limited mechanism for .. 2023. 6. 22.
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.
[Java] 백준 20440번 : 🎵니가 싫어 싫어 너무 싫어 싫어 오지 마 내게 찝쩍대지마🎵 - 1 https://www.acmicpc.net/problem/20440 20440번: 🎵니가 싫어 싫어 너무 싫어 싫어 오지 마 내게 찝쩍대지마🎵 - 1 첫째 줄에 지동이의 방에 출입한 모기의 마릿수 N(1 ≤ N ≤ 1,000,000)가 주어진다. 다음 N개의 줄에 모기의 입장 시각 TE과 퇴장 시각 TX이 주어진다. (0 ≤ TE max) { max = mosquitoes[i]; startIndex = i; endIndex = i; } if (mosquitoes[i] == max && i - 1 == endIndex) { endIndex = i; } } System.out.println(max); System.out.println(compressed.get(startIndex) + " " + compre.. 2023. 6. 15.