분류 전체보기 357

DDD 트릴레마 - 도메인 모델 완전성 vs 도메인 모델 순수성

다음 글은 블라디미르 코리코프의 DDD 트릴레마를 번역하고, 부족한 내용을 보충하여 작성한 글입니다. 이전에 보면 좋은 글: 도메인 주도 설계 도메인 주도 설계(DDD)사전 지식 - GRASP 패턴도메인 주도 설계(Domain-Driven Design) 란?도메인 주도 설계(Domain-Driven Design)는 소프트웨어의 핵심 비즈니스 도메인에 집중하여 복잡한 도메인 지식을 코드의 도메인 모델로 표dev.go-gradually.me 기초 지식 - 기능 요구사항 vs 비기능 요구사항기능 요구사항비즈니스 로직비기능 요구사항인프라 특성인프라 수준의 구현으로 해결해야 하는 요구사항성능, 품질, etc.DDD를 왜 쓰는가? → 소프트웨어 핵심에서 복잡성을 해결하는 것 DDD에는 흥미로운 트릴레마가 하나 존재..

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

도메인 지식 학습과, 기술 학습을 동시에 하지 마라.학습은 항상 최소 단위로욕심부리면, 흐지부지된다.명확한 목표 설정의 난이도가 매우 올라간다.진도를 잡기 어려워진다.도메인 학습도메인 학습이란?쇼핑몰 도메인을 배워볼까?결제 도메인을 배워볼까?지도 도메인을 배워볼까?무조건 익숙한 기술로런칭하고 보강하고 조금씩 진화시키기무조건 인프라까지 배포하기인스턴스 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는 상속 개념이 없으므로, 슈퍼..