기록하며 성장한다 - 개발, 회고

분류 전체보기 45

[ 개발 회고록 ] Self - Invocation 에 대한 간단한 이야기

서론 현재 배달과 관련 된 토이프로젝트를 진행하고 있다. 토이 프로젝트 링크 Transaction 정리 2. 해결 방법 사실 AspectJ 나, 클래스 내 로직을 AOP로 완전히 묶는 방법등이 있지만, 둘 다 추천하는 방식은 아니다. 그래서 제일 좋은건 Self-Invocaton 이 발생하는 경우 자체를 막는 것이다. 그래서 필자는 OrderTransactionService 라는 별도의 서비스 클래스를 만들었고, 위의 order 나 payment 와 같은 메서드를 해당 서비스로 분리해내었다. @Service public class OrderService { // ... @Transactional public void registerOrder() { orderTransactionService.order()..

개발 회고록 2024.01.23

[ 개발 회고록 ] Redis INCR 를 활용하여 선착순 쿠폰 발급 기능 만들기

쿠폰은 100개인데, 왜 104명한테 발급이 됐지...??? 서론 현재 배달과 관련 된 토이프로젝트를 진행하고 있다. 토이 프로젝트 링크 capacity.getDescription() ) { throw new ApiException(COUPON_END); } try { Coupon coupon = Coupon.builder() .memberId(memberId) .couponType(couponType) .status(Status.DEFAULT) .expireDateTime(LocalDateTime.now().plusYears(1)) // 쿠폰은 발급 후 1년 안에 사용해야 하는 정책이 있는 거로 설계. .build(); couponRepository.save(coupon); } @Repository @..

개발 회고록 2024.01.23

[ F-lab ] 멘토링 13주차 회고록 : 개발 속 철학 (2)

개발의 스타일을 다 다르고, 완벽한 코드라는 것은 없다. 좋은 코드에 가까워지기 위해 노력할 뿐이다. 서론 열 세번째 멘토링 시간이 되었다. 이번 주 역시 프로젝트 개발을 하느냐 시간을 다 보냈던 것 같다. 프로젝트가 곧 나의 실력을 보여주는 것이니 허술하게 만들 수는 없다. 멘토님의 피드백을 받아 수정 할 부분을 수정하고, 추가해야 할 로직은 더 추가하고 있다. 특히, 핵심 로직과 서버 구축에 대한 고민이 더 필요한 시기이다. >>> 해당 프로젝트 깃허브 12주차 이론 내용 정리 * 12주차에는 이론에 대한 문답이 없었다. 본론 오늘은 저번주에 이론 문답을 하지 않아 바로 이론 문답을 시작하였다. 먼저 객체지향의 특징과, SOLID 그리고 IoC, DI 에 대하여 질문 답변을 나눴다. 이 부분은 쉬울 ..

일반 회고록 2024.01.15

[ F-lab ] 멘토링 12주차 회고록 : 개발 속 철학

왜 이렇게 개발하였는지를 설명할 수 있어야한다. 즉, 자기만의 철학을 가지고 있어야 한다. 서론 열 두째 멘토링 시간이 되었다. 이번 주는 열심히 프로젝트 개발을 하느냐 시간을 다 보냈던 것 같다. 어느정도 큰 틀이 완료되었고, 멘토님의 피드백을 받아 수정 할 부분을 수정하고, 추가해야 할 로직은 더 추가할 예정이다. >>> 해당 프로젝트 깃허브 11주차 이론 내용 정리 * UML 과 관련하여 공부하여 TIL 블로그에 정리한 글을 포스팅 하였다. >>> 포스팅 클릭 * Stack 과 Stack Frame 에 관련하여 공부하여 TIL 블로그에 정리한 글을 포스팅 하였다. >>> 포스팅 클릭 * Process 와 Thread 에 대하여 좀 더 심화적으로 공부하여 TIL 블로그에 정리한 글을 포스팅 하였다. ..

일반 회고록 2024.01.10

[ 개발 회고록 ] 테스트 코드 작성 시, @Transactional 어노테이션을 사용하는 것에 대한 짧은 생각

현재 필자가 진행하고 있는 배달 토이프로젝트가 있다. ( 프로젝트 링크 > 필자 TIL 블로그 ( 트랜잭션 ) 3. 결론 @Tranasactional 어노테이션을 테스트 코드에서 무조건 쓰지 말라는 것이 아니다. 필요한 부분에서는 충분히 사용할 수 있다. 그러나, 위와 같은 문제점이 발생할 수 있다는 것을 알아야 테스트에서 발생하는 여러 문제들을 사전에 막을 수 있고, 발생하여도 대처할 수 있다. 그래서 특히, @Transactional 이 붙은 실제 서비스 메서드를 테스트 할 때는 더욱 주의해야 한다. 마지막으로 적어도 팀 내에서는 @Transactional 을 테스트 코드에서 사용할 지 말지를 통일 하는 것이 좋다고 생각한다. @Transactional 을 사용하지 않을 거라면, 명시적으로 데이터를 ..

개발 회고록 2024.01.10

[ F-lab ] 멘토링 11주차 회고록 : 객체지향과 스프링의 시작

1. 모든 것에 근거를 가져라. 2. 새로운 것을 배우는 것을 즐겨라. 3. 내가 개발한 프로그램을 사랑하라. 서론 열 한번째 멘토링 시간이 되었다. 2023년이 끝났고, 나는 내가 얼마나 열심히 공부하고 개발을 해왔는지 돌아보았다. F-lab 을 시작하기 전의 나와, 지금의 나를 비교해보면 개발자로써의 마인드부터 달라졌다고 생각한다. 모든 것에 근거를 가지게 되었고, 논리적으로 생각하는 능력이 생겼다. 그리고 스스로 개발한 코드도 보면 한층 부드러워졌고, 객체지향의 원칙을 잘 지키며 개발을 하게 되었다. 개발 현황은 아직 큰 틀을 개발하는 중이다. 이번 주까지는 큰 틀을 개발 할 것 같다. >>> 해당 프로젝트 깃허브 10주차 이론 내용 정리 * 쿠키와 세션 관련하여 공부하여 TIL 블로그에 정리한 글..

일반 회고록 2024.01.03