반응형

항해플러스 4

WIL 4주차 회고

문제이번 주차를 지나며 겪었던 문제가 무엇이었나요?-> 대기열 구현이 가장 어려웠던 것 같습니다.시도문제를 해결하기 위해 어떤 시도를 하셨나요?-> 대기열 구현을 위해 처음에는 수동으로 대기열을 확인하는 API를 풀링으로 호출할 때 마다 대기열 순서대로 활성화를 시키려고 했습니다. 다만, 이 방법을 사용하면 풀링을 하지 않으면 계속 활성화 할 수 있는 공간이 남아서, 문제가 발생할 수 있다는 걸 알았습니다.해결문제를 어떻게 해결하셨나요?-> 스케줄러를 사용해보기로 하였습니다. 정해진 시각마다 순차적으로 대기열에서 활성화열로 옮기는 작업을 진행하였습니다. 그러면 풀링을 하지 않아도 계속해서 빈자리가 발생할 때 마다 토큰을 활성화 시키게 됩니다.  @Component@RequiredArgsConstructo..

카테고리 없음 2024.07.15

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을 사용하기 때문에..

반응형