0. 시작하며프로젝트에 Test 코드를 추가하며 Controller를 Junit으로 Test 하는 작업을 진행했습니다. 이 과정에서 @WebMvcTest와 MockMvc, BDDMockito를 학습하여 적용했습니다. 1. @WebMvcTest스프링 부트에서 MVC관련 컴포넌트를 테스트하기위한 어노테이션으로 주로 Controller를 테스트할때 많이 사용됩니다. 테스트시에 필요한 레이어만 로드하여 테스트 속도가 빠릅니다. 동시에 전체 어플리케이션 동작을 테스트할때는 적합하지 않습니다.2. MockMvc실제 서버의 동작 없이 스프링 웹 MVC를 모의로 테스트할 수 있는 도구입니다. 자세한 설명은 공식문서를 활용하면 좋을거같습니다 3. BDDMockitoMockito를 기반으로 BDD스타일의 테스트 작성을 ..
0. 시작하며https://nooroongzi.tistory.com/19 [SonarQube] 소나큐브 연동하기0. 시작하며 개인적으로 프로젝트 리팩토링을할때 "기존 대비 ~~의 향상!" 이라는 부분이 필요하다고 느꼈습니다. 따라서 프로젝트 코드의 기존 상태를 파악하기위해 사용한 소나큐브에대한 기nooroongzi.tistory.com저번글에 이어서 Jacoco도 같이 사용하는 방법을 가져왔습니다. Gradle 프로젝트 기반으로 진행하겠습니다! 또한 제가 사용한 소나큐브와 자코코의 버전은 java17과 호환합니다. 1. Jacoco란?Jacoco란 Java코드의 테스트 커버리지를 체크하는 라이브러리입니다. 테스트로 얼마나 커버가 되는지 수치와 html, xml등의 리포트로 확인할 수 있어서 직관적으로 바..
0. 시작하며 저번에 이어서 Gof 생성 패턴 중 하나인 Builder 패턴을 알아보겠습니다. 알아 보면서 개인적으로 팩토리 메서드 패턴과 유사하다고 느꼈지만 목적에 있어서 차이점을 보여주는거같습니다. 두 패턴의 공통점과 차이점을 생각해보면 더 좋을거 같습니다. 1. 기존 코드 1. Client public class App { public static void main(String[] args) { TourPlan shortTrip = new TourPlan(); shortTrip.setTitle("오레곤 롱비치 여행"); shortTrip.setStartDate(LocalDate.of(2021, 7, 15)); TourPlan tourPlan = new TourPlan(); tourPlan.setTi..
0. 시작하며 생성 디자인 패턴 중 하나인 팩토리 메서드 패턴을 알아 보겠습니다. 이 패턴을 공부하며 느낀점은 객체 지향 원칙 중 OCP를 위해 만들어진게 아닌가 싶을 정도로 정확하게 해당 원칙을 지킬 수 있도록 해주었습니다. 기존 코드에서 팩토리 메서드 패턴을 적용해가는 과정을 작성하며 함께 보도록 하겠습니다. 1. 기존 코드 Client 코드 public class Client { public static void main(String[] args) { Phone iPhone = PhoneFactory.order("iPhone", "nrz@mail.com"); System.out.println(iPhone); Phone galaxy = PhoneFactory.order("galaxy", "nrz@ma..
0. 시작하며개인적으로 프로젝트 리팩토링을할때 "기존 대비 ~~의 향상!" 이라는 부분이 필요하다고 느꼈습니다. 따라서 프로젝트 코드의 기존 상태를 파악하기위해 사용한 소나큐브에대한 기록을 하려고합니다. 1. 소나큐브란?SonarQube란 여러가지 프로그래밍 언어에서 버그, 취약점, 테스트 커버리지 등을 분석해주는 정적 코드 분석 도구입니다. 간단한 연동을 통해 자동으로 분석해주니 지속적 관리에 좋다고 생각하여 연동했습니다. 소나 큐브 구성SonarQube Server : 웹 어플리케이션의 형태로 SonarQube Scanner 로 업로드한 소스 코드를 분석하고 보여줍니다SonarQube Database : SonarQube 분석 결과를 저장SonarQube Scanner : SonarQube 분석을 위..
0.시작하며 Spring Boot 프레임워크를 사용하며 개발할때 자주 사용하게되는 어노테이션인 @Transactional에 대하여 알아보며 생각보다 많은 기능이 있어서 놀랐고 이를 정리해보겠습니다. 1. 트랜잭션이란? 데이터베이스의 상태를 변경시키기위해 수행하는 작업의 단위입니다. 이때 작업은 select, update, insert, delete등의 쿼리가 될 수 있습니다. 2. 트랜잭션의 성질, ACID Atomicity, 원자성 트랜잭션 내의 모든 연산이 완전히 반영되거나 반영되지 않아야합니다. 즉, 하나라도 오류가 발생한다면 모든 변경사항이 취소되어야합니다. rollback할때 savepoint를 지정하여 같은rollback할 수 있습니다. 단, rollback한 savepoint 이후로 설정되어..
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.