본문 바로가기
반응형

전체 글707

[항해 플러스 백엔드 - 3주차] 이커머스 설 이번 챕터를 시작하며 꼭 해내고 싶었던 목표 - DDD 기반, 동시성을 고려해 정규화된 ERD 설계하기- 다양한 케이스를 고려한 시퀀스 다이어그램 만들기- Swagger를 이용해 빠르게 mockAPI 배포하기 이번 챕터를 마무리하며 가장 기억에 남는 성취- DDD 기반, 동시성을 고려해 정규화된 ERD 설계하기  이번 챕터에서 반드시 이뤘으면 했는데 이루지 못한 것(아쉬운 점)- MockApi를 좀 더 깔끔하게 정리해서 만들지 못한 것? 내가 강화해야 할 강점 중 가장 중요하다고 생각하는 한 가지-  내가 선택한 설계에 이유와 근거를 만들며 장단점을 잘 아는 것 내가 개선해야 할 개선점 중 가장 중요하다고 생각하는 한 가지- 바로 코드부터 짜는 것이 아니라 좋은 설계가 필요하다. 시퀀스 다이어그램, 플로.. 2024. 10. 12.
[항해 플러스 백엔드 - 2주차] 수강신청 이번 챕터를 시작하며 꼭 해내고 싶었던 목표 - ERD 설계로 시작해서 STEP에 따라 테이블 구조 개선하기 - JPA 연관관계를 사용해 테이블 매핑 연결하기 - 비관적 락을 이용해 동시성 제어하기  이번 챕터를 마무리하며 가장 기억에 남는 성취- JPA 연관관계 매핑을 정상으로 설정하여 설계대로 동작한 것- 특강 테이블이 아닌 정규화된 특강 옵션 테이블에 비관적 락을 걸어 부하를 줄인 것 이번 챕터에서 반드시 이뤘으면 했는데 이루지 못한 것(아쉬운 점)- 테스트를 위해 testFixture를 분리했는데 그럼에도 파일별로 중복되는 코드가 있어서 좀 더 공통화를 해보자.- 테스트는 setUp()에서는 아예 테스트 인스턴스를 생성하지 않고 각 @Test에서 필요한 것만 생성해보자.- 낙관적 락도 구현해보고 .. 2024. 10. 5.
[항해99-1주차 회고] TDD 시작하기 문제- 이번 주차를 지나며 겪었던 문제가 무엇이었나요? 이번 주차의 가장 큰 문제는 동시성 제어였습니다. 특히 포인트 충전/사용은 "사용자별"로 동시성 제어가 중요했습니다. 철수와 영희가 각각 포인트를 충전한다면 철수와 영희가 굳이 충전의 행위를 동시성으로 제어할 필요가 없습니다. 철수가 동시에 여러 번 충전하는 경우, 영희가 동시에 여러 번 충전하는 경우에 동시성 제어를 해야 합니다. 시도- 문제를 해결하기 위해 어떤 시도를 하셨나요? 동시성 문제를 해결하기 위해 락 메커니즘을 떠올렸습니다. 어플리케이션 수준의 락, DB 수준의 락, 혹은 Redis 등의 기타 락 방법이 있습니다. 이번 과제는 DB를 컬렉션을 이용하였기 때문에 어플리케이션 수준의 락을 사용하는 과제라고 생각했습니다.  해결- 문제를 어.. 2024. 10. 2.
[항해 99] 시작하는 마음 1. 지금까지의 회고 항상 단순히 기능이 동작하는 것 이상의 것에 목말라 있었다. 나름 신기술과 좋은 기술들을 많이 공부했으나 실무에서 경험할 기회가 없었다. 두번째로 옮긴 곳은 원하던 스택이 있는 커머스 회사였다. MSA환경에서 트랜잭션 전략을 고민하고, Redis를 활용해 성능을 개선하며 테스트코드 기반으로 안정적인 주문 시스템을 고민했다.   잠시 내려두었던 공부에 다시 의욕이 생겼고 더 잘하고 싶었다. 지금도 혼자서 테스트코드를 작성하며 클린코드와 코드리뷰 문화를 전파하기 위해 고군분투 중이다. 같은 파트원 분들부터 조금씩 전파하려고 한다. 현재의 고민은 테스트코드 기반 다지기, 성능 개선하기, 장애에 빠르게 대응하는 모니터링 방안 마련하기이다.  2. 항해플러스 참여 계기 첫째, 항해 플러스는 .. 2024. 9. 21.
그림으로 보는 도커 개념 + 명령어 정리 * 개요 이번 글의 내용 및 사진은 따라하며 배우는 도커와 CI환경 , 생활코딩 Docker 입구 수업 기반으로 작성하였습니다. 도커를 쓰는 이유 가상화 기술 등장 이전 가상화 기술 등장 이전에 하나 서버에 하나의 응용 프로그램만을 설치해야만 했습니다. 웹서버, Database를 구성하기 위해 '모든 서버마다 OS를 설치'하는 것은 메모리가 매우 비효율적인 일이었습니다. 하이퍼 바이저 기반 VM 등장   하이퍼 바이저의 등장으로 '논리적으로 공간을 분할'하여 VM(Virtual Machine)이라는 '독립적 가상 환경의 서버'를 사용할 수 있게 되었습니다. 하이퍼 바이저는 다수의 게스트 OS를 구동할 수 있도록 소프트웨어, 하드웨어 자원을 가상화하면서 하드웨어와 VM을 모니터링하는 중간 관리자역할입니다... 2024. 9. 13.
[도서] 힘든 일을 먼저 하라 미루기를 좋아하는 사람들의 다양한 원인과 극복 방법을 다루는 책이다.  나는 누구일까? '미루기'를 논하기 전에 먼저 나를 돌아보았다. MBTI로 나의 성향을 파악하자면 P인데 심지어 거의 99%에 육박한다. 갑작스럽게 정해지는 일이 오히려 이벤트라고 신나 하는 사람이며, 내일 부산여행을 가기로 했지만, 갑자기 경주로 바뀐다고 해도 동행자들이 괜찮다면 순수히 따른다. 여행은 굵직굵직한 장소를 선정하지만 세세하게 다 고려하지는 않으며 유동적으로 관리한다.   이 책을 읽으면서 좋게 말하면 다소 즉흥적이고 쾌활하지만 한편으로 나는 산만한 사람이라는 생각이 들었다. 일반적이고 무난한 대화 흐름 속에서 변주를 주는 위트를 좋아해서 언제든지 엉뚱하거나 웃길법한 멘트와 몸동작을 고민한다. 내 머릿속은 이것저것 생각.. 2024. 9. 13.
반응형