본문 바로가기

회고 모음/Project16

URL 트래킹 사이트 만들기 기간: 2023.10.05 ~ 2023.10.18 토이프로젝트로 2주간, 방문자를 조회하는 URL 트래킹 사이트를 개발해보기로 하였습니다. 개요 사람들이 사이트를 얼마나 방문하는지 추적하고, 데이터를 어떻게 잘 저장하는 방법을 생각하는 좋은 주제인 것 같습니다. 구조잡기 Layer VS Domain 멀티모듈, 핵사고날 선택지는 많은데, 시간대비 유지보수하기 좋게 해볼 구조는 역시 도메인 구조를 잡는 것이 좋은 것 같습니다. 조회모델을 만드는 것부터해서 개발초기에는 이것저것 해보고 싶은게 많은 것 같습니다. 하지만 요구사항을 빠르게 구현할 수 있는 구조를 우선으로 두었습니다. 어떻게 잘 저장할 수 있을까? 프로젝트의 핵심기능이다보니 어떻게하면 주소를 잘 저장하고 불러올 수 있을지 고민하게 됩니다. 가장 쉬.. 2023. 10. 17.
웹소설 서비스 만들기-5 프로젝트 피드백 프로젝트로 얻고 싶은 점 고민해보기 프로젝트를 보는 3자의 입장에서는 코드를 하나하나 상세하게 보는 것이 아니다. 의사 결정을 왜 했고, 어떤 순서대로 했고, 어떤 문제들을 해결했는지 정리해두는 것이 좋다. 가독성 패키지 구조 정리가 잘 되었다. 전략패턴을 사용한 부분이 있는데, 당장 필요하지 않으면 사용하지 않아도 괜찮을 것 같다. 이벤트를 주고 받는 부분. 이벤트 사용과 더불어 트랜잭션 처리의 정리가 필요할 것 같다. 이벤트를 사용할 때 어떻게 작동하는지 주석으로 설명해두면 좋을 것 같다. 유효성에는 validate로 표현해보면 더 좋을 것 같다. 트랜잭션 경합이 발생할 부분에서는 원자적 업데이트를 처리를 하는 것이 좋다. JPA사용하면서 충돌 구체화가 되는 컬럼은 주의하는 것이 좋다.. 2023. 4. 30.
웹소설 서비스 만들기-4 SPRING BOOT 3 이번 프로젝트에서는 스프링부트3 으로 개발을 진행해보았습니다. 기능 구현을 진행하면서 만났던 이슈들을 정리해보았습니다. QueryDSL 스프링부트2 에서 사용했던 설정이 안되서 새롭게 3.0의 설정을 찾아보았습니다. https://www.inflearn.com/chats/700670/querydsl-springboot-3-0%EC%9D%98-gradle-%EC%84%A4%EC%A0%95%EC%9D%84-%EA%B3%B5%EC%9C%A0%ED%95%A9%EB%8B%88%EB%8B%A4 Security WebSecurityConfigurerAdapter가 deprecated 되었기때문에 새롭게 security 설정을 학습하여 적용했습니다. Swagger Swagger를 붙였을때는 평.. 2023. 4. 17.
웹소설 서비스 만들기-3 결제 결제. 쉽지 않다. 무난하게 생각하면 필요한 상품정보 받고, 돈을 지불하면 끝이지만, 갑자기 여러명이 동시에 요청을 했다면?! 한번만 어떻게 결제를 처리할 수 있을까? 우선 생각나는 아이템은 메시지큐, 레디스 정도이다. 레디스를 사용하면 동시성 제어의 장점을 살리면서 처리할 수 있다. 싱글 스레드로 작동해서 결제하기전 정보와 요청정보를 비교함으로서 중복결제를 피할 수 있을 것 같다. 하지만 지금은 레디스는 사용하지않고 해결해보기로 했다. 비용적인 측면에서 메시지큐도 제외. 락 결국은 동시에 못가져가게 막아야한다. 대체 결제에 무엇을 못가져가게 막아야할까? 재고처럼 키를 두고, 사용했는지 안했는지 확인하면 되지 않을까? 발급키를 주고 사용했는지 안했는지 여부로 중복을 막아보기로 했다. 일부 개념은 카.. 2023. 4. 17.