[TIL 2025-11-19] DDD 설계 & 헥사고날 아키텍처
·
회고 공간/TIL
DDD 설계 원칙, Aggregate / 컨텍스트 / 유스케이스, 계층 구조, 포트 / 어댑터 흐름 학습🌟 배경 / 문제 & 해결복잡한 비즈니스 도메인에서 테이블/기능 중심 설계로는 유지보수와 확장이 어려움복잡한 도메인을 코드 구조에 맞게 모델링하고, 비즈니스 규칙을 명확히 하는 목적도메인 지식을 코드에 반영 → 불변식, 규칙 일관성 유지팀 공통 언어(Ubiquitous Langauage) 정의 → 개발자/도메인 커뮤니케이션컨텍스트 분리(Bounded Context) → 모델 충돌 방지, 시스템 확장 용이Aggregate / 포트 & 어댑터 → 애플리케이션과 인프라 의존 최소화, 테스트 용이📚 학습 내용1️⃣ 설계 흐름유비쿼터스 언어 → 바운디드 컨텍스트 → Aggregate → 유스케이스개발 흐름:..
[REDIS] 레디스 정리 & 활용 사례 정리
·
DevOps/DBMS
Redis (Remote Dictionary Server)Redis는 인메모리(In-Memory) 기반의 Key-Value 저장소이다. 즉, 데이터를 디스크(DB)가 아닌 메모리(RAM)에 저장해서 엄청나게 빠른 속도로 읽고 쓸 수 있다. 🔑 Redis의 Key-Value 구조Key-Value란?Redis는 Key-Value 데이터베이스이다. 즉, 데이터를 키(Key)와 값(Value) 쌍으로 저장한다. Key(키) : 고유 식별자. 데이터를 조회할 때 사용Value(값) : 실제 데이터. 문자열, 숫자, JSON, 리스트 등 다양Key-Value 저장 방식Redis는 해시 테이블(Hash Table) 구조를 사용하여 키를 통해 값에 직접 접근 가능하다. 그리고 디스크가 아닌 RAM에 저장되므로 조회..
[백준 1697] 숨바꼭질
·
코딩테스트/백준
https://www.acmicpc.net/problem/1697 🖊️ 풀이 방법이 문제는 BFS로 풀 수 있다.BFS는 계속 2차원 배열에서 미로 찾기 같은 문제로 최단 거리를 구할 때만 사용해봤었는데, 이 문제는 1차원 배열로 동일하게 풀어가면 된다.import java.util.*;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int K = sc.nextInt(); System.out.println(BFS(N,K)); } public static int BFS(int..
[백준 9251] LCS
·
코딩테스트/백준
https://www.acmicpc.net/problem/9251 🖊️풀이 방법LCS는 DP로 풀 수 있다.dp[i][j] 는 X[1..i]와 Y[1..j]의 LCS 길이가 된다. https://withsumyeom.tistory.com/entry/LCSLongest-Common-Subsequence LCS(Longest Common Subsequence)📌 LCS(Longest Common Subsequence)1. 정의두 문자열(또는 수열)이 주어졌을 때, 공통으로 나타나는 부분 수열(subsequence) 중 가장 긴 것을 찾는 것이다.부분 수열은 순서를 유지하지만 연속일 필요는 없다withsumyeom.tistory.com여기에 더 자세하게 정리해봤다! import java.io.Buffere..
LCS(Longest Common Subsequence)
·
DevOps/알고리즘
📌 LCS(Longest Common Subsequence)1. 정의두 문자열(또는 수열)이 주어졌을 때, 공통으로 나타나는 부분 수열(subsequence) 중 가장 긴 것을 찾는 것이다.부분 수열은 순서를 유지하지만 연속일 필요는 없다.X = "ACAYKP"Y = "CAPCAK" 이렇게 두 문자열이 주어졌을 때 가능한 공통 부문 수열은 "ACAK", "CAPK", "CAK" ... 등이 있는데 이중 최장 부분 수열은 "ACAK", "CAPK" 가 되며 길이는 4가된다.이 알고리즘은 DP로 풀어 갈 수 있다. 현재 문자열위치가 같으면 이전 값을 보고 최대값을 구할 수 있기 때문이다.2. 점화식(DP 관계식)문자열 X[1...m], Y[1...n] 에대해서if X[i] == Y[j] : dp[i]..
JWT 탈취 방법 / 방어 방법
·
DevOps/Web
https://gelatinous-grease-a0b.notion.site/JWT-27e863698d2780839fd0c7c2d09bc5ac?source=copy_link JWT 탈취 방법/방어 방법 | NotionJWT 탈취가 가능한 상황gelatinous-grease-a0b.notion.sitehttps://gelatinous-grease-a0b.notion.site/JWT-27e863698d2780f08fb2c9a94c52a14c?source=copy_link JWT 탈취 방어 방법 | NotionHTTPS 사용 (전송 암호화)gelatinous-grease-a0b.notion.site 노션에 정리 후 블로그 다시 정리 예정!