전체 글
-
5주차 회고노트항해 플러스 백엔드 5기 2024. 7. 21. 01:17
1. 이번 과제주제: e-커머스 서비스 개발Step9 : API Swagger 작성필요한 Filter, Interceptor 등의 기능 구현예외 처리, 로깅 등 유효한 부가로직의 구현Step10 : Usercase 별 통합 테스트 작성정상적으로 구동되는 서버 애플리케이션 완성제공해야 하는 API 완성서버구축 챕터 마무리 회고록 작성 (NICE TO HAVE)2. 회고✏️ 문제과제, 프로젝트를 진행하면서 부딪혔던 기술적인 문제이번 주차를 지나며 겪었던 문제가 무엇이었나요?Filter, Interceptor 란 무엇이고 각각 어떤 역할들을 수행하는가?Filter에 로깅 처리를 어떤식으로 구현 할 것 인가?AOP란 정확히 무엇이고 관점 지향 프로그래밍이란 무엇인가?비즈니스 로직에서 어떤 로그들을 어떤식으로 ..
-
1 ~ 5주차 서버구축 챕터 회고록항해 플러스 백엔드 5기 2024. 7. 19. 02:05
1. 현재까지 진행한 챕터 내용3 ~ 5주차 : 서버 구축 (e-커머스 서비스 개발)시나리오 선정 및 프로젝트 Milestone 제출시나리오 요구사항 분석 자료 제출 (e.g. 시퀀스 다이어그램, 플로우 차트 등 )ERD 설계 자료 제출API 명세 및 Mock API 작성Github Repo 제출 ( 기본 패키지 구조, 서버 Configuration 등 )API Swagger 작성주요 비즈니스 로직 개발 및 단위 테스트 작성비즈니스 Usecase 개발Usecase 별 통합 테스트 작성필요한 Filter, Interceptor 등의 기능 구현예외 처리, 로깅 등 유효한 부가로직의 구현제공해야 하는 API 완성2주차 : 클린 아키텍처ERD 작성클린 + 레이어드 아키텍처API 기능 개발 (특강 신청/특강 신청..
-
4주차 회고노트항해 플러스 백엔드 5기 2024. 7. 13. 17:13
1. 이번 과제주제: e-커머스 서비스 개발Step7 : API Swagger 작성API Swagger 작성주요 비즈니스 로직 개발 및 단위 테스트 작성Step8 : Usercase 별 통합 테스트 작성API 의 완성이 목표가 아닌, 기본 및 주요 기능의 비즈니스 로직 및 유즈케이스는 구현이 완료 되어야 함. ( Business Layer )DB Index , 대용량 처리를 위한 개선 포인트 등은 추후 챕터에서 진행하므로 목표는 기능 개발의 완료 로 합니다. 최적화 작업 등을 고려하는 것 보다 모든 기능을 정상적으로 제공할 수 있도록 해주세요. 특정 기능을 왜 이렇게 개발하였는지 합당한 이유와 함께 기능 개발을 진행해주시면 됩니다.2. 회고✏️ 문제과제, 프로젝트를 진행하면서 부딪혔던 기술적인 문제이번..
-
3주차 회고노트항해 플러스 백엔드 5기 2024. 7. 6. 16:59
1. 이번 과제주제: e-커머스 서비스 개발Step5 : 시나리오 선정 및 마일스톤, 시퀀스 다이어그램 작성시나리오 선정 및 프로젝트 Milestone 제출시나리오 요구사항 분석 자료 제출 (e.g. 시퀀스 다이어그램, 플로우 차트 등)Step6 : 설계 자료 제출 및 Mock API 개발ERD 설계 자료 제출API 명세 및 Mock API 작성Github Repo 제출 ( 기본 패키지 구조, 서버 Configuration 등 )2. 회고✏️ 문제과제, 프로젝트를 진행하면서 부딪혔던 기술적인 문제이번 주차를 지나며 겪었던 문제가 무엇이었나요? - 시퀀스 다이어그램 작성시 어떻게 작성해야하지? 기능의 전체 로직 전체를 다 작성해야하는 건가? - Milestone, 시퀀스 다이어그램, API 명세서 전부 ..
-
2주차 회고노트항해 플러스 백엔드 5기 2024. 6. 30. 23:10
1. 이번 과제주제: 특강 예약 서비스 개발Step3 : 특강 신청 서비스 구현ERD 작성특강 신청 API특강 신청 완료 여부 조회 API특강 선택 APIStep4 : 동시성 제어, 확장 가능한 엔티티 추가단 한번의 특강이 아닌 특강을 여러번 진행 할 수 있도록 확장 하기(동시성) 각 특강 별로 최대 30명까지만 정상적으로 요청되도록 기능 구현2. 회고✏️ 문제과제, 프로젝트를 진행하면서 부딪혔던 기술적인 문제이번 주차를 지나며 겪었던 문제가 무엇이었나요? - 클린 + 레이어드 아키텍처 구성 - 동시성에 대한 고민 : 특강에 1자리만 남았을 경우에 여러 사용자가 수강 요청시 먼저 요청이 들어온 사용자만 신청 완료처리✏️ 시도문제를 해결하기 위해 어떤 시도를 하셨나요? - 클린 + 레이어드 아키텍처 구..
-
1주차 회고노트항해 플러스 백엔드 5기 2024. 6. 22. 15:18
1. 이번 과제주제 : 사용자의 포인트를 충전/저장하는 엔드포인트 개발Step1 : TDD 작성하기Step2 : 동시성 문제를 해결하고 통합테스트 작성해보기2. 회고 ✏️ 문제과제, 프로젝트를 진행하면서 부딪혔던 기술적인 문제이번 주차를 지나며 겪었던 문제가 무엇이었나요? - 특정 사용자가 포인트 충전과 사용을 동시에 하는 경우의 테스트 케이스 작성에 대한 고민 - 특정 사용자가 포인트 충전과 사용을 동시에 하는 경우 동시성 처리를 어떤식으로 처리할 것 인지에 대한 고민 ✏️ 시도문제를 해결하기 위해 어떤 시도를 하셨나요? - 어떠한 given, when, then을 작성해야 테스트가 신뢰성이 있을지 고민해보았다. - 테스트 케이스 작성시 동시 요청을 위해 어떤 방식들을 많이 사용하는지 비슷한 사례..
-
JPA 영속성(persistence)란?JPA 2024. 4. 2. 15:31
영속성이란? 데이터를 생성한 프로그램이 종료되어도 사라지지 않는 데이터의 특성을 말한다. 영속성을 갖지 않으면 데이터는 메로리에서만 존재하게 되고 프로그램이 종료되면 해당 데이터는 모두 사라지게 된다. 그래서 우리는 데이터를 파일이나 DB에 영구 저장함으로써 데이터에 영속성을 부여한다. JPA에서의 영속성 JPA의 핵심 내용은 엔티티가 영속성 컨텍스트에 포함되어 있냐 아니냐로 갈린다. JPA의 엔티티 매니저가 활성화된 상태로 트랙잭션 안에서 DB에 데이터를 가져오면 이 데이터는 영속성 컨텐스트가 유지된 상태이다. 이 상태에서 해당 데이터 값을 변경하면 트랙잭션이 끝나는 시점에서 해당 테이블 변경 내용을 반영하게 된다. 따라서 우리는 엔티티 객체의 필드 값만 변경해주면 별도로 update() 쿼리를 날릴 ..