⌨️ 인프런 워밍업 클럽 2기 미션 Day-18이번 미션은 @Mock, @MockBean, @Spy, @SpyBean @InjectMock의 차이점과 주어진 테스트 상황의 구조를 수정하는 미션 두 가지이다. 먼저 Test Double에 대해서 정리를 하도록 하겠다.1. @Mock, @MockBean, @Spy, @SpyBean, @InjectMock의 차이1.1 Test Double과 각 Annotation의 차이https://www.martinfowler.com/bliki/TestDouble.html bliki: Test DoubleTest Double is generic term for fakes, mocks, stubs, dummies and spies.martinfowler.com 마틴 파울러의 ..
LIFE/공부
⌨️ 인프런 워밍업 클럽 2기 미션 Day-15이번 미션은 Layerd Architecture의 각 레이어별로 어떤 특징이 있고, 어떻게 테스트하면 좋을지 나만의 언어로 정리하는 것이다.1. 레이어 별 특징레이어를 3단계 혹은 4단계로 나누는데 나는 3단계로 나누어서 작성토록 하겠다.1.1 Persistence Layer✅ Data Access의 역할✅ 비즈니스 가공 로직이 포함되어서는 안 된다. Data에 대한 CRUD에만 집중한 레이어 DB의 연결만을 위한 Layer라고 생각한다. 간혹 비즈니스 레이어 (서비스 레이어)에 DB의 연결과 쿼리까지 있는 경우가 있는데,유지 보수하기도 힘들었던 기억이 있다. 크게는 두 분류의 프레임워크를 사용하는데 ORM과 SQL Mapper다.간혹 ORM이 SQL Map..
⌨️ 인프런 워밍업 클럽 2기 미션 Day-4인프런 박우빈님의 백엔드 과정 진행 중 미션을 작성해야 하는데 마땅한 곳이 없어 끄적끄적인다.1. 리팩토링 public boolean validateOrder(Order order) { if (order.getItems().size() == 0) { log.info("주문 항목이 없습니다."); return false; } else { if (order.getTotalPrice() > 0) { if (!order.hasCustomerInfo()) { log.info("사용자 정보가 없습니다."); return false; ..
⌨️ DB 최적화 및 고민 미처 진행하지 못했던 DB의 최적화와 이해 그리고 고민 등을 이번 주, 길게는 2주에 걸쳐 진행 그리고 계속 늘어지는 일정 관리 때문에 약간은 스프린트 식으로 1주, 2주 단위로 계획을 끊고, 작은 것부터 분할해서 정복해 나가는 기법으로 공부할 예정 기한: 2023.04.09 ~2023.04.16. JPA 연관관계 매핑 JoinColumn 과 JoinTable 고민 -> 컬럼으로 연관 관계를 매핑했는데, 조회가 자주 발생하는 것은 따로 조인 테이블을 설계해서 조인테이블을 조회하는 것이 어떤 가 하는 고민 -> 해당 부분을 조인 컬럼과 조인 테이블 등 JPA에 대한 공부를 진행 후 작성 그리고 프로젝트에 적용 현재 ERD에서 정규화/반(비)정규화를 진행할 부분에 대한 고민 -> ..
⌨️ DB 최적화 및 고민 미처 진행하지 못했던 DB의 최적화와 이해 그리고 고민 등을 이번 주, 길게는 2주에 걸쳐 진행 그리고 계속 늘어지는 일정 관리 때문에 약간은 스프린트 식으로 1주, 2주 단위로 계획을 끊고, 작은 것부터 분할해서 정복해 나가는 기법으로 공부할 예정 기한: 2023.04.03 ~2023.04.09. JPA 연관관계 매핑 JoinColumn 과 JoinTable 고민 -> 컬럼으로 연관 관계를 매핑했는데, 조회가 자주 발생하는 것은 따로 조인 테이블을 설계해서 조인테이블을 조회하는 것이 어떤 가 하는 고민 -> 해당 부분을 조인 컬럼과 조인 테이블 등 JPA에 대한 공부를 진행 후 작성 그리고 프로젝트에 적용 현재 ERD에서 정규화/반(비)정규화를 진행할 부분에 대한 고민 -> ..
💬 회고 프로젝트를 리뷰하는 방식의 인터뷰를 진행했고 개인적으로 모자랐던 부분과, 좋은 기회를 준 회사의 선배분들에게 배울 점을 다시 한번 기록해두어 복기하려한다. 🌟FACT 자신있다고 생각했던 프로젝트의 리뷰에서 생각처럼 명확히 답을 못했다. -> Java 17을 사용한 이유와 Record에 대하여 ->이어서 레코드를 사용한 이유에 대해 불변객체를 얘기했으나 불변객체의 필요성에 대한 이해 부족 조금은 더 why? 를 중요시하며 회고했다 생각했지만, 깊이 혹은 빈도가 부족했다. 따라서 개념을 명확히 구분 짓지 못했다 -> Spring 프레임워크 사용 이유 (Spring 프레임워크의 장점) 과 DI 그리고 싱글톤 패턴의 명확한 차이 DDD를 염두에 두었다면 AOP는 연관이 있어 잘 공부했어야했는데, 깊이가..
긴 부트 캠프의 끝, 그리고 취업 준비의 시작 어느새 6개월간 긴 부트캠프의 끝이 보인다. 그 동안 밀렸던 기술적인 회고들과, 마지막으로 취업을 준비하며 다듬을 것들은 꼭 꾸준히 작성해 보기로 한다
프로젝트 시작 전 스프링 부트 기초 복습 Spring MVC API 계층 Spring MVC API 서비스 계층 Spring MVC API 예외 처리 Spring MVC API JPA 기반 데이터 액세스 계층 ( Opt. JDBC 기반) Spring MVC API 트랜잭션 Spring MVC API 테스팅 Spring MVC API 문서화 밀린 블로깅 하기