반응형

세션 23

WIL 3주차 회고

문제이번 주차를 지나며 겪었던 문제가 무엇이었나요?-> 시퀀스 다이어그램과 DB 설계가 가장 어려웠습니다.시도문제를 해결하기 위해 어떤 시도를 하셨나요?-> 시퀀스 다이어그램에서 주체의 단위를 도메인별로 설정하고 진행하였습니다.또한 DB 설계를 할때 어디까지 정규화와 반정규화를 할지 다른 사람들 설계한 것도 참고하고, 코치님들의 발제 Q&A도 한번 더 녹화본으로 보았습니다.해결문제를 어떻게 해결하셨나요?-> 코치님이 올려주신 시퀀스 다이어그램 작성 예시를 보고 도메인 관점으로 작성을 하였습니다.    시퀀스 다이어그램을 작성할 때 중요한 점은 디자이너나 코드를 모르는 사람도 보고 알아볼 수 있게 쉽게 작성이 되야 한다는 점입니다.DB ERD 설계를 할 때는 어디까지 정규화를 하고, 반정규화를 할지가 정말..

WIL 2주차 회고

문제이번 주차를 지나며 겪었던 문제가 무엇이었나요?-> 이번 주차에서 제일 힘들었던 것은 클린 아키텍처를 적용해보는 것이었습니다.시도문제를 해결하기 위해 어떤 시도를 하셨나요?-> 인프라 레이어가 도메인 레이어를 바라보도록 DIP를 적용시켰습니다.해결문제를 어떻게 해결하셨나요?-> 먼저 패키지 구조를 3개로 나누었습니다. 이렇게 나눈 이유는 Domain Layer를 중심으로 레이어 계층간의 간섭이 이뤄줘야 클린 아키텍처가 적용이 되기 때문입니다. 또한 계층간에 간섭이 일어나지 않도록 Presentation 레이어와 Domain 레이어에 각각 DTO를 만들어서 하위모듈이 상위모듈을 참조하지 않게 만들었습니다.  LectureServicepackage com.hhplus.clean.lecture.domain..

WIL 1주차 회고

문제이번 주차를 지나며 겪었던 문제가 무엇이었나요?첫번째는 TDD로 개발을 하는 것이었습니다. TDD에 익숙하지 않다 보니 TDD로 개발하는 것이 어려웠습니다. 특히 bottom-up 방식에 익숙했던 제가 top-down 방식으로 개발을 하려고 하니 시간이 더 오래걸렸습니다.두번째는 단일 서버에서의 동시성 이슈를 해결하기 위해서 어떤 방법을 쓸지에 대한 고민이었습니다.시도문제를 해결하기 위해 어떤 시도를 하셨나요?문제를 해결하기 위해 먼저 synchronized 키워드를 사용하였습니다. 동시성 이슈가 발생하는 메서드에 synchronized 키워드를 사용하여 메서드 전체에 lock을 건다면 다른 스레드에서 접근을 하지 못해 순차적으로 로직을 수행하게 됩니다. 다만, 블록 전체에 lock을 사용하기 때문에..

99클럽 코테 스터디 28일차 TIL, 그리디(Iterator for Combination)

1. 문제 정의2. 문제 접근할 수 있는 만큼 flip을 시켜주면 되므로 greedy를 이용한다.3. 문제 풀이처음 '0'부터 비교 문자를 시작한다.인덱스가 0부터 이전 문자와 비교하여 다르면 count를 1 증가시킨다.count를 리턴한다.4. 코드class Solution { public int minFlips(String target) { char[] array = target.toCharArray(); int count = 0; char prev = '0'; for(int i = 0; i  5. 회고만약 10101 이 우리가 원하는 문자열이라고 생각해보자. 우리는 00000 부터 시작하므로000001111111000010..

시작하는 마음

항해 플러스 참여 계기저는 5년차 백엔드 개발자입니다. 주로 SI 사업 위주로 프로젝트를 진행하여서, 깊이 있는 지식 습득이 어려웠다고 스스로 생각을 많이 하였습니다. 그러던 중 우연히 항해 플러스 광고를 보게 되었고, 이 시간을 통해 개발자로서 깊은 성장을 할 수 있을 것 같다는 생각이 들었습니다. 벼는 익을수록 고개를 숙인다고 합니다. 이 시간을 통해서 좀 더 유연하며 깊은 뿌리를 가진 개발자로 성장하는 계기가 되도록 노력하겠습니다.향후 5년 뒤 커리어 방향성5년 뒤에는 백엔드 개발자를 넘어 백엔드 엔지니어로 성장해 있지 않을까 생각합니다. 엔지니어란 어떤 문제를 발견했을 때 해결할 수 있는 능력을 기본 소양으로 갖추고 있어야 할 것입니다. 많은 경험을 통해 경험의 폭을 넓히고, 어쩔때는 신입 개발자..

5. Telemetry

Telemetry란? 마이크로서비스는 분산 환경에서 운영되며, 다수의 마이크로서비스가 동작하게 됩니다. 이러한 특징 때문에 장애, 운영 이관 등의 실행중인 프로세스에서 발생하는 이벤트의 흐름을 보고 원인을 파악하는데 오랜 시간이 소모 됩니다. 각 서비스별로 발생하는 이슈들을 Tracing 하기 위하여 Monitoring, Logging, Tracer 도구를 활용하여 지속적이고 자동으로 이슈에 대응할 수 있도록 환경을 구성합니다. - MSA school 여기서 key point 는 Monitoring Logging Tracer 로 볼 수 있다. Main functions of Telemetry Monitoring 인프라 및 응용 프로그램 서비스 모니터링을 위해서는 매트릭 수집, 로깅 및 추적 이라는 세가지..

세션/MSA 2024.04.16

4. Backing Service

Backing Service란? backing services는 앱이 실행중에 네트워크를 통해 사용하는 모든 서비스를 말합니다. 예로는 데이터 저장소(예: MySQL 또는 CouchDB), 메시징/대기열 시스템(예: RabbitMQ 또는 Beanstalkd), 아웃바운드 이메일용 SMTP 서비스(예: Postfix) 및 캐싱 시스템(예: Memcached, Redis)이 있습니다. 여기서 key point 는 앱이 실행중에 네트워크를 통해 사용하는 모든 서비스 로 볼 수 있다. 쉽게 backup(지원요청)을 위한 컴퍼넌트라고 생각하면 된다. Microservices for Backing Service 이벤트드리븐 기반의 마이크로서비스(Event-Driven Microservices)에서 Backing S..

세션/MSA 2024.04.02

2. Service Mesh

Service Mesh란? 서비스 메시는 애플리케이션의 서비스 간 모든 통신을 처리하는 소프트웨어 계층입니다. 이 계층은 컨테이너화된 마이크로서비스로 구성됩니다. … 서비스 메시는 서비스 간 연결을 관리하기 위해 모니터링, 로깅, 추적, 트래픽 제어와 같은 새로운 기능을 제공합니다. 이러한 기능은 각 서비스의 코드와 독립적이므로 네트워크 경계를 넘어 여러 서비스 관리 시스템에서 작동할 수 있습니다. - aws 여기서 key point 는 서비스 레벨에서의 모든 통신을 처리 모니터링, 로깅, 트래픽 제어 서비스의 코드와 독립적(종속성 완화) 로 볼 수 있다. Why Use Service Mesh? 마이크로서비스 아키텍처를 사용하면 개발자는 전체 재배포 없이도 각 앱 서비스를 변경할 수 있습니다. 다른 아키..

세션/MSA 2024.03.29

1. API Gateway

API Gateway란? API Gateway(게이트웨이)는 API 서버 앞단에서 모든 API 서버들의 엔드포인트를 단일화하여 묶어주고, API에 대한 인증과 인가 기능에서 메시지에 따라서 여러 서버로 라우팅하는 고급기능까지 많은 기능을 담당할 수 있습니다. - MSA school 여기서 key point 는 엔드포인트를 단일화 인증과 인가 기능 라우팅 로 볼 수 있다. 다양한 사용자(Mobile, Brower, Other Service..)들이 External Gateway를 통해서 service에 접근하는 것을 볼 수 있다. 보통 MSA에서 API Gateway를 얘기하면 External Gateway를 말한다. Why Use an API Gateway? 다음과 같은 이유로 API Gateway를 사..

세션/MSA 2024.03.29
반응형