목록분류 전체보기 (271)
DHistory
1. 네 개의 영역 표현 (Presentation) : HTTP 요청을 응용 영역이 필요로 하는 형식으로 변환해서 응용 영역에 전달하고 응용 영역의 응답을 HTTP 응답으로 변환하여 전송한다. 응용 (Application) : 시스템이 사용자에게 제공해야 할 기능을 구현한다. 기능을 구현할 때는 도메인 영역의 도메인 모델을 사용한다. 도메인 (Domain) : 도메인의 핵심 로직을 구현한다. 인프라스트럭처 (Infrastructure) : 실제 구현 기술에 대한 것을 다룬다. (DB, Redis, SMTP 등) 2. 계층 구조 아키텍처 상위 계층에서 하위 계층으로의 의존만 존재한다. 도메인이 인프라스트럭처에 의존하면 테스트 어려움과 기능 확장의 어려움이 발생한다. 3. DIP (Dependency Inv..
1. 도메인이란? 해결하고자 하는 문제 영역 (ex. 쿠팡: 로켓 배송 온라인 쇼핑) 2. 도메인 전문가와 개발자 간 지식 공유 요구사항을 전달하는 과정에서 커뮤니케이션 오류로 인해 제품이 잘못만들어질 가능성이 있다. 요구사항을 제대로 이해하고 더 나은 방안을 제시하려면 도메인 전문가와 직접 커뮤니케이션 하는 방법도 있다. 기획은 (날개로) 날아갈 수 있는 새를 만들어 달라는 거지만, (머리로) 날아갈 수 있게 개발이 되었다. 모호한 요구사항이 있다면, 반드시 이야기하여 구체적인 요구사항을 파악해야한다. 또는 더 나은 방안을 제시할 수 있다. (ex. 자동화) 3. 도메인 모델 특정 도메인을 개념적으로 표현한 것 (ex. 상품, 카테고리 등) 4. 도메인 모델 패턴 아키텍처 상의 도메인 계층을 객체 지향..
전제 1. AWS CLI 설치 2. AWS Access Key / Secret Key 등록 과정 1. Access Key 입력 2. Secret Key 입력 3. 자신이 사용할 region 입력 (ap-northeast-2: 서울) 4. aws cli 결과 기본 output format 설정 # 현재 등록된 정보 확인 및 변경 aws configure list
Root 계정 접속 1. 이름 클릭 -> Security credentials 클릭 2. Access key -> Create access key 클릭 3. understand ~ 체크 -> Create access key 클릭 4. Download .csv file 클릭 -> Done Secret 키는 현재 단계에서만 알 수 있으므로 csv file을 잃어버리지 않도록 저장한다. csv file을 저장하지 않고 Done을 누른 경우에는 생성된 Access Key를 삭제 후 1번 과정부터 다시 시작한다.
curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg" sudo installer -pkg AWSCLIV2.pkg -target / password는 본인의 Mac 비밀번호를 입력한다. which aws aws --version 참고 최신 버전의 AWS CLI 설치 또는 업데이트 - AWS Command Line Interface 이전 버전에서 업데이트하는 경우 unzip 명령을 실행하면 기존 파일을 덮어쓸지 묻는 메시지가 표시됩니다. 스크립트 자동화와 같은 경우에 이러한 프롬프트를 건너뛰려면 unzip에 대한 -u 업데이 docs.aws.amazon.com
벌써 3년차 개발자가 되었다. 현재 공부한 내용과 앞으로 공부할 내용을 기반으로 개략적인 Road Map을 만들었다. 목표가 보이지 않으니 쳐지고 어디까지 공부했는지 가늠이 가지 않았다. Road Map을 통해 부족한 부분은 보완하고 터득해야할 기술 및 지식은 습득하며 성장할 예정이다. 아는 내용(= 누군가에게 개념을 설명할 수 있다. + Trouble Shooting 경험)은 정말 아는 내용인지 재정리할 예정이다. 2024년에 1Q가 끝난 시점에 Road Map을 재확장해나가자. 내가 필요하다고 생각하는 내용이기 때문에 상황에 따라 필요하지 않을 수 있다.
문제 1082번: 방 번호 첫째 줄에 N이 주아진다. 둘째 줄에는 공백으로 구분된 P0, ..., PN-1이 주어진다. 마지막 줄에는 M이 주어진다. www.acmicpc.net 풀이 import sys n = int(sys.stdin.readline().rstrip()) p = list(map(int, sys.stdin.readline().rstrip().split()))[:n] m = int(sys.stdin.readline().rstrip()) d = [0] * (m + 1) # 큰 값을 구해야하므로, 큰 값부터 넣는다. for i in range(n - 1, -1, -1): # 숫자의 가격부터 의미가 있으므로 p[i]로 설정한다. for j in range(p[i], m + 1): # 현재 숫자의..
문제 1068번: 트리 첫째 줄에 트리의 노드의 개수 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에는 0번 노드부터 N-1번 노드까지, 각 노드의 부모가 주어진다. 만약 부모가 없다면 (루트) -1이 주어진다 www.acmicpc.net 풀이 1. root node는 여러 개일 수 있다. 2. 제거할 node는 연결 그래프를 만들지 않는다. 3. 제거할 node이거나 이미 방문한 경우라면 탐색을 종료한다. 4. Leaf Node인 경우 탐색을 종료하고 Count한다. import sys n = int(sys.stdin.readline().rstrip()) nodes = [[] for _ in range(n)] parent = list(map(int, sys.stdin.readline(..
문제 1043번: 거짓말 지민이는 파티에 가서 이야기 하는 것을 좋아한다. 파티에 갈 때마다, 지민이는 지민이가 가장 좋아하는 이야기를 한다. 지민이는 그 이야기를 말할 때, 있는 그대로 진실로 말하거나 엄청나게 www.acmicpc.net 풀이 진실을 아는 인원가 같은 집합에 속한 경우 진실을 아는 경우로 생각한다. 서로소 집합(disjoint sets)을 활용하여 진실을 아는 집합을 구한다. import sys import itertools n, m = map(int, sys.stdin.readline().rstrip().split()) knows = list(map(int, sys.stdin.readline().rstrip().split()))[1:] parties = [] parent = [i f..
문제 1041번: 주사위 첫째 줄에 N이 주어진다. 둘째 줄에 주사위에 쓰여 있는 수가 주어진다. 위의 그림에서 A, B, C, D, E, F에 쓰여 있는 수가 차례대로 주어진다. N은 1,000,000보다 작거나 같은 자연수이고, 쓰여 있는 수 www.acmicpc.net 풀이 같은 색이 지정된 면은 평행하기 때문에 어느 한 면을 선택한다면, 다른 면은 선택할 수 없다. N^3개의 주사위로 정육면체를 만든다면 주사위의 면을 1개만 사용하는 경우, 주사위의 면을 2개만 사용하는 경우, 주사위의 면을 3개만 사용하는 경우가 있다. N x N(N은 2이상)으로 정육면체를 만들었을 경우 아래 사진처럼 정육면체를 만들 수 있다. 노란색 부분: 주사위의 면을 1개 사용하는 경우 (최상층을 제외하고 한 면을 기준으..