분류 전체보기 136

개인 프로젝트로 학습하는 방법

도메인 지식 학습과, 기술 학습을 동시에 하지 마라.학습은 항상 최소 단위로욕심부리면, 흐지부지된다.명확한 목표 설정의 난이도가 매우 올라간다.진도를 잡기 어려워진다.도메인 학습도메인 학습이란?쇼핑몰 도메인을 배워볼까?결제 도메인을 배워볼까?지도 도메인을 배워볼까?무조건 익숙한 기술로런칭하고 보강하고 조금씩 진화시키기무조건 인프라까지 배포하기인스턴스 2대 이상으로소프트웨어 설계정도는 해도 됨모듈링멀티모듈싱글모듈소프트웨어 아키텍처헥사고날클린레이어드코드 작성 규칙JPA 엔티티 도메인으로 사용JPA 엔티티 숨기기무조건 익숙한 기술로 시작하기.차근차근 리팩토링하는 형태로 학습기술 학습하나의 싱글 모듈 안에 다 때려박기웹플럭스카프카레디스NoSQL웹소켓배포는 굳이? git repo에 올려두는 정도만여담굳이 단위테스..

[9376] 탈옥

기본적인 0-1 BFS 문제처럼 보인다.deque를 이용하면, push_front() 및 push_back() 을 이용해 열어야 하는 문의 갯수를 셀 수 있다.근데 단순 최단거리가 아니다.죄수 두명을 탈옥시켜야 한다.탈옥의 정의는, 현재 보여지는 지도 밖으로 죄수가 나간다는 의미이다.우리는 여기서, 지도 밖에 padding 을 한 줄 추가함으로서, 탈옥을 시킬 수 있다.단순히 bfs 하면?다음과 같이, 겹치는 지점을 제외해줘야 한다.근데 두개의 거리를, 중복 없이 어떻게 잴 수 있지?시나리오를 그려보며, 규칙성이 있는지 탐색해보면 반드시 어딘가에서 죄수 2명과 외부지점이 만날 수 있다.문제를 두번에 나눠서 풀면, 해를 구할 수 있지 않을까?다음과 같은 경우, 두 죄수 사이의 최단 거리는 5이고, 이 최단..

PS/Baekjoon OJ 2025.03.29

기본적인 문제 해결 방법

기본적인 문제 해결 접근 방법넘버링 되어있지만, 순서는 없다.순서대로 접근하진 않아도 되지만, 위에서 아래로 접근하는 것이 좋긴 하다.상위 단계가 충분히 되어있지 않다면, 언제든 다시 위로 올라가는 것이 좋다.하지만, 이 다섯가지가 정교하게 되어있어야, 흔들림 없고 견고한 결과물이 완성된다.그렇다고 하더라도, 외부 요구사항이 “견고한 결과물” 보다, “돌아가는 결과물”을 원한다면, 이에 맞출 수 있는 것도 능력이다.모든 것에는 트레이드오프가 있다. 현재 상황에 알아서 잘 판단하자.접근 방법문제 정의문제 분석도구 선택구현평가지금부터, 각각이 무엇을 의미하는지 설명하도록 하겠다.문제 정의현재 주어진 요구사항이 무엇인지 파악하고, 문제에 맞는 종속변수 y, 상수 c, 독립변수 x를 명확히 정의하라!다음과 같은..

HTTP에서 바라본 TCP 커넥션 관리 방식

본 내용은 "HTTP 완벽 가이드" 내용을 참고하여 기록한 정리본입니다.게시할 내용HTTP의 커넥션 사용 방식TCP의 구조TCP 지연TCP 병목TCP 막힘흐름제어/혼잡제어HTTP 네트워크 프로토콜 스택HTTP는 전송 계층인 TCP 위에서 동작하며, IP 계층을 통해 패킷이 전달된다. 이 과정에서 여러 계층을 거치기 때문에, 각 계층이 가진 헤더(메타데이터)들이 포함되어 전송된다.HTTPSHTTPS는 위의 HTTP 네트워크 프로토콜 스택에 SSL/TLS를 위한 보안 계층을 추가한 프로토콜이다. SSL/TLS 계층에서 암호화, 무결성 보장, 인증 등의 과정을 거친 후에 TCP 계층에 데이터를 전달하기 때문에, 일반 HTTP보다 연결 과정이 조금 더 복잡하고 느리다.그러나 전송되는 내용이 암호화되어 보안성을 ..

HTTP 메시지

본 내용은 "HTTP 완벽 가이드" 내용을 참고하여 기록한 정리본입니다.게시할 내용메시지는 어떻게 흘러가는가HTTP 메시지의 세 부분시작줄헤더바디요청과 응답 메시지의 차이요청 메시지가 지원하는 여러 메소드들응답 메시지가 반환하는 여러 상태 코드들HTTP 헤더들은 각각 무슨일을 하는가메시지는 어떻게 흘러가는가요청과 응답이라는 두 가지 형식으로 통신하며, 클라이언트-서버 간의 데이터를 교환한다.메시지는 크게 시작줄, 헤더, 바디 세 부분으로 이루어져 있다.요청 메시지와 응답 메시지는 기본 구조는 유사하지만, 시작줄에서 사용하는 구문이 다르다.요청 메시지는 메소드, URL, 버전으로 시작한다.응답 메시지는 버전, 상태코드, 사유구절로 시작한다.HTTP 메시지의 세 부분시작줄요청 메시지: 메소드 URL HTTP..

URL과 리소스

본 내용은 "HTTP 완벽 가이드" 내용을 참고하여 기록한 정리본입니다.게시할 내용URL 문법 및 컴포넌트URL의 각 구성 요소가 가지는 의미와 역할을 설명한다.단축 URL여러 웹 클라이언트에서 지원하는 상대 URL과 확장 URL 등 단축 URL에 관한 내용을 다룬다.URL 인코딩 및 문자 규칙URL 작성 시 사용되는 인코딩 방식과 문자 사용 규칙에 대해 설명한다.공통 URL 스킴다양한 인터넷 정보 시스템에서 채택하는 URL 스킴에 대해 살펴본다.URNURL과는 구분되는 리소스 명명 방식인 URN에 대해 설명한다.URI란?URI는 리소스를 식별하는 방식으로, HTTP와는 별개로 독립적인 개념이다. 주로 다른 프로토콜과 결합되어 특정 리소스를 명시하는 데 사용된다.리소스 명명 방식URI는 리소스를 이름으로..

HTTP란?

본 내용은 "HTTP 완벽 가이드" 내용을 참고하여 기록한 정리본입니다. 게시할 내용리소스란 무엇인가?리소스는 어디서 오는가?웹 트랜잭션의 동작 원리HTTP 메시지의 기본 형식HTTP 기저의 TCP 네트워크 전송여러 종류의 HTTP 프로토콜HTTP 버전 종류웹의 구성요소HTTP란?HTTP는 신뢰성 있는 데이터 전송을 위해 설계된 프로토콜이다. 데이터의 파괴, 중복, 왜곡을 방지하는 여러 메커니즘이 내재되어 있어, 웹 상에서 정보가 안정적으로 주고받을 수 있도록 한다.웹 클라이언트와 서버웹 클라이언트리소스를 요청하는 주체로, 사용자가 브라우저를 통해 웹 페이지에 접근할 때 역할을 수행한다.웹 서버클라이언트의 요청에 따라 리소스를 제공하는 시스템이다.웹 콘텐츠웹 서버가 제공하는 다양한 형태의 리소스를 의미한..

책 읽는 방법

오랜만에 독서를 통해 새로운 개념을 학습하려고 하니, 어떻게 접근하고 학습하였는지 기억도 잘 안나고, 체계가 잡혀있지 않은 상태로 읽게되는 것 같다.이 문제를 해결? 하기 위해, 가볍게 "책 읽는 방법" 이라는 주제로 생각을 정리한 글을 게시한다.1. 목차 읽기알려주는 내용 파악: 목차를 먼저 읽어 책이 전달하려는 핵심 메시지와 다루는 주제를 명확히 한다.주제 분석: 각 목차 항목을 통해 책의 전반적인 내용과 범위를 이해한다.예상 결과 도출: 목차를 기반으로 책을 읽으면서 얻을 수 있는 인사이트나 배움의 방향을 미리 예측한다.2. 한 챕터 읽어보기해당 책의 글의 구조를 파악한다.해당 책/글의 구조에 어울리는 학습 전략을 수립한다. 3. 용어 추출핵심 단어 강조: 책을 처음 읽을 때 주요 개념이나 용어에 ..

상속 관계 매핑

상속 관계 매핑은 엔티티 간의 상속 관계를 데이터베이스에 표현할 필요가 있을 때 사용하는 모델링 기법이다. 이는 객체지향의 상속 개념과 유사하게, 엔티티가 is-a 관계를 가지거나 부모 타입으로 일관되게 관리되어야 할 때 유용하다. RDBMS는 상속 개념을 직접 지원하지 않으므로 Super-Type Sub-Type Relationship이라는 기법으로 이를 대체한다.상속관계 매핑이란?필요성엔티티 간 상속 관계가 필요한 경우가 존재한다.is-a 관계: 특정 엔티티가 다른 엔티티의 특성을 물려받을 때부모 타입으로 일관된 관리: 여러 엔티티를 공통 부모 타입으로 관리해야 할 경우 - 부모 타입으로 다형적 쿼리(ex: 부모 타입으로 전부 조회)를 지원해야 할 경우대체 기법RDBMS는 상속 개념이 없으므로, 슈퍼..

Docker 개념과 기본 지식

1. Docker의 개념: 컨테이너 기반 가상화 vs. VMVM과 컨테이너의 구조를 비교하면, VM은 하이퍼바이저 위에서 각각 게스트 OS를 포함하는 반면, 컨테이너는 Docker와 같은 컨테이너 엔진 위에서 호스트 OS의 커널을 공유하며 애플리케이션과 라이브러리만 포함한다.컨테이너는 운영체제 수준에서 격리된 가상화 환경을 제공하며, 별도의 게스트 OS를 포함하지 않기 때문에 VM보다 훨씬 경량이고 빠르게 실행된다.또한, 컨테이너는 프로세스 격리를 통해 애플리케이션을 다른 환경과 분리함으로써 시스템 간 간섭을 최소화한다.Docker는 이러한 컨테이너 기술을 활용해 애플리케이션을 패키징하고 배포하는 플랫폼이다. Docker 컨테이너의 주요 이점은 다음과 같다.경량성 & 효율성: 시작 속도가 수 초 이내로 ..