일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 생활코딩
- 백엔드
- 라피신
- UNICON2023
- 전국대학생게임개발동아리연합회
- 스프링
- UNIDEV
- 온라인테스트
- 체크인미팅
- 프로그래밍
- 스프링부트
- 프리티어
- 인프라
- Developer
- 인디게임
- 도커
- 자바
- 자바개발자
- EC2
- 백엔드개발자
- 배포
- 42서울
- AWS
- CICD
- 개발공부
- 위키북스
- UNICON
- 설계
- RDS
- 게임개발동아리
- Today
- Total
목록분류 전체보기 (98)
Hyun's Wonderwall
Huffman Codes 허프만 압축 (허프만 코드)- Binary character code. 각 문자는 고유 이진 문자열로 표현됨.* Fixed-length code: 고정길이 방식 (6개 문자 나타내는데 3bit 필요.)* Variable-length code: 가변길이 방식 (등장 빈도수 고려해 codeword 부여 가능. 자주등장-짧은 codeword. 굿) Prefix Codes: 어떤 codeword도 다른 codeword의 접두사가 아님- 인코딩과 디코딩에 용이. 각 문자를 나타내는 코드워드를 차례대로 concat하고 쪼개면 됨. (인코딩) "abc" -> 0.101.100 = 0101100 | (디코딩) 001011101 = 0.0.101.1101 -> "aabe"- 문자는 이진트리의 ..
Greedy Algorithms 그리디 알고리즘: 각 단계에서 최적의 수를 찾아 전역 최적해를 구함.- ex) 수업 시간표 짜기: (1) 젤 빨리 끝나는 과목 먼저 신청 (2) 첫번째 과목 끝난후 시작해서 젤 빨리 끝나는 과목 신청- 그리디 알고리즘은 지역 최적해로 전역 최적해를 구하는 방식. DP로 얻은 최적해보다 덜 최적일 수 있음. Activity Selection Problem 행동 선택 문제- 입력: n개의 행동이 담긴 집합 S = {1,2,..n}. 시작 시간 si, 종료 시간 fi라 할때 행동 i는 [si,fi)를 차지함.- 목표: 호환가능한. 안겹치는 행동들로 최대 개수의 행동을 하기. (시간을 얼마나 쓰는진 고려대상x)S = { [1,4), [5,7), [2,8), [3,11), [8,1..
12.1동적 프로그래밍(DP): 격자(배열) 만들어 사용- 분할정복 DAC와의 비교: 문제를 부분 문제로 나누어 해결하는 것이 비슷.- DAC는 하위 문제들이 서로 독립적, DP는 서로 연관.- 하위 문제들이 겹침 -> DAC는 중복 계산하지만 DP는 table에 저장하는것으로 단 1번만 계산. DP 알고리즘 수립1. 최적해의 구조 특징을 찾는다.2. 최적해의 값을 재귀적으로 정의한다.3. 최적해의 값을 상향식(bottom-up)으로 정의한다.4. 계산된 정보들로부터 최적해를 구성한다. DP 알고리즘의 구성요소1. Optimal sub-structures 최적의 하위구조2. Overlapping sub-problems 겹치는 부분문제3. Memoization and reuse 메모이제이션과 재사용 Opt..
Red-black tree- 트리의 균형을 보장 -> 최악의 경우에도 O(lgn) 시간에 수행.- color 속성: red 또는 black. // BST에서 상속되는 속성 key, left, right, p- 리프노드(빈 트리)들은 흑색인 경계노드 T.nil. 널포인터 역할임 // T.nil.color=black.- 루트노드의 부모노드도 T.nil - key가 있으면(nil아니면) 다 내부노드, 모든 내부 노드는 자식 2개 가짐. (nil 리프는 보여지지 않을 뿐)- 맨밑 경계노드 T.nil 만이 리프노드=외부노드. 항상 흑색. RBT는 (BST에서의) NULL 대신 T.nil 가리켜 사용 레드블랙트리의 특성1. 모든 노드는 red거나 black이다.2. 루트 노드는 black이다.3. 모든 리프 노드(..
Binary Search Tree (BST, 이진검색트리)- 동적 집합 연산을 지원하는 자료구조. (search, minimum, predecessor, successor, insert, delete)- 수행시간이 트리의 높이에 비례: O(h)- 한 노드의 왼쪽, 오른쪽 자식노드도 각 서브트리의 루트가됨 -> 재귀적으로 이진탐색트리- 노드들이 연결된 자료구조. - root(T)가 T의 루트노드를 가리킨다. // p[root[T]]=NIL- null도, 노드가 1개여도 BST이다. - 각 노드가 포함하는 필드들: key, left(왼쪽 자식 노드의 포인터), right(오른쪽 자식 노드의 포인터), p(부모 노드의 포인터), satellite data(부속 데이터)- 루트 노드는 부모노드가 NIL인 유일한..
EFUB 4기 BackEnd Lead_ 도메인 주도 개발 스터디스터디 커리큘럼: 최범균, "도메인 주도 개발 시작하기: DDD 핵심 개념 정리부터 구현까지"3주차 과제: Chapter 10. 이벤트, Chapter 11. 애그리거트 트랜잭션 관리Chapter 11. CQRSKeywords: 명령 모델과 조회 모델, CQRS 장단점11.1 단일 모델의 단점시스템 상태를 변경할 때와 조회할 때 단일 도메인 모델을 사용하면 성능에 문제가 생길 수 있고 구현이 복잡하다.복잡도 낮추는 방법: 상태 변경을 위한 모델과 조회를 위한 모델을 분리하는 것.11.2 CQRS시스템이 제공하는 기능 (1) 상태 변경, (2) 상태 정보 조회.상태를 변경하는 범위와 상태를 조회하는 범위가 정확하게 일치하지 않음. 복잡도 해결을..
EFUB 4기 BackEnd Lead_ 도메인 주도 개발 스터디스터디 커리큘럼: 최범균, "도메인 주도 개발 시작하기: DDD 핵심 개념 정리부터 구현까지"3주차 과제: Chapter 10. 이벤트, Chapter 11. 애그리거트 트랜잭션 관리Chapter 10. 이벤트Keywords: 이벤트의 용도와 장점, 핸들러 디스패처와 핸들러 구현, 비동기 이벤트 처리10.1 시스템 간 강결합 문제구매 취소 및 환불 로직을 어떻게 구현해야 할까?현재까지의 코드에서는 주문 바운디드 컨텍스트와 결제 바운디드 컨텍스트 간에 강결합(high coupling)이 존재한다. 주문이 결제와 강하게 결합되어 있어 영향을 받는 것이다.이벤트를 사용하면 이런 강한 결합을 없앨 수 있다. 특히 "비동기 이벤트" -> 두 시스템 간..
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.