본문 바로가기
728x90

Java Spring17

Java 버전 관리 하기 temurin 하나의 PC 에서 여러 자바 버전을 개발해야할 때,어떻게 하는가?매번 환경변수를 바꿔주던지, 다 설치해놓고 설치된 경로에 하나하나씩 연결하진 않는가? 이럴때 유용하게 사용할 수 있는 툴이 temurin 이다! [설치 - Mac]brew install --cask temurin@21brew install jenv 설치된 jenv 를 zshrc 에 등록해보자밑에 명령어를 입력해서 편집기로 접속하면 된다.~/.zshrc 편집기에서 하단의 내용을 추가하고 저장!export PATH="$HOME/.jenv/bin:$PATH"eval "$(jenv init -)" 그리고 밑에 명령어들을 하나씩 입력해주자//jenv 설정$ eval "$(jenv init -)"$ jenv enable-plugin export$ ex.. 2024. 11. 28.
모키토 (Mockito) - Java Spring Test Code 기초 스프링 기반의 Test Code 의 대부분은클래스를 불러와서 값을 input 해보고 의도한 결과값이 나오는지를 확인하는 것이다. 이때 특정 클래스를 불러와서 (상속 포함) 테스트 코드를 짜야할 경우가 생기는데,이럴때 사용할 수 있는 라이브러리가 바로 Mockito 인 것이다. Mockito 는 간단하게 mock 객체를 생성할 수 있고 mock 객체에 stub 을 정의하고,테스트 할 수 있게 해준다.(Mockito 를 쓰지않을 경우 직접 interface를 구현해서 테스트를 해야할 수도 있는데,그럴 경우 작업량과 가시성이 매우 떨어지게 된다. 그럼 어떻게 써야하는가?(생각보다 간단하다).   @Mock : 의존성 주입(모의 객체 용), 사용하지 않을 시 실제 클래스 구현채를 사용하게 되므로         .. 2024. 9. 21.
Test Code 기본 - Java Spring Boot 서비스 레벨에서 간단한 메쏘드 하나 만들고(껍데기만)인텔리제이 기준으로 단축키 (CMD+N) 이나 마우스 우측 클릭 후 Generate(생성)을 클릭 후Test 옵션을 클릭하면 "Create Test" 라는 팝업창을 뛰울 수 있다.JUnit 5버전이 기본값으로 설정되어있는데,옵션항목에 보면 /@Before, @After라는 영역을 확인할 수 있을 것이다. class ReserveServiceTest { @BeforeEach void setup() {} @AfterEach void afterSetup(){} @Test Void getReserveInfo(){}} 테스트할때 @SpringBootTest 어노테이션은 webEnvironment 매개변수를 지원하는데.. 2024. 9. 18.
@Builder 빌더패턴 레거시한 소스를 보면은 아래와 같이 객체를 생성하고 값을 할당하는 것을 흔하게 보았을 것이다.ReservationInfo reservationInfo = new ReservationInfo(1, "reserved"); 하지만, 이렇게 구성하는데에는 몇가지 단점이 존재한다. 1. (위에는 고작 2개이지만) 생성자 파라메타가 많을 경우 가독성이 좋지않다.2. 값을 입력하는 순서가 매우 중요하다.3. 어떤 값에 어떻게 매핑했는지 코드만 보고 정확하게 알기 힘들다.   이를 해결하기 위한 방법으로, 빌더패턴을 사용할 수 있다!! Java spring 기반으로 백엔드 개발을 하다보면DTO, Domain, Entity level 에서 객체에 값을 입력 시 Lambok 의 builder 를 사용하는것을 보았을 것이다.. 2024. 9. 17.
단위테스트 (unit test) - Spring Boot Test !! 단위테스트라고 개발하다보면 종종 들어봤을것이다.(또는 자주) 단위테스트는 무엇일까?단위테스트란, 애플리케이션 테스트 중 코드 단위를 가능한 작게(메쏘드 단위까지) 분리해서 하나의 메쏘드를 테스트 하는것을 말합니다.오류 관점과 Data 유효성 관점 모두를!(단위 테스트와 통합테스트를 구분못하는 신입 개발자도 자주 보이죠?) 그럼 단위 테스트를 하는 이유는?그것 바로 개발 운영 관점에서 가장 빠른시점에 오류를 발견하고 수정할 수 있다는데 있습니다.왜? 운영배포 후 오류 발견하고 빠르게 해결하면 되지 않나?라는 질문을 한번씩 받는데요(스타트업에서만)굉장히 위험한 행위가 되겠죠? 이커머스 도메인만 보더라도...User 는 사이트의 신뢰성을 잃을 것이고, 재고가 없거나 잘못된 금액으로 결제가 되었을 경우, 또는 .. 2024. 9. 17.
영속성 이란? (Java Spring Boot 완전기초) 흔히 백엔드 개발을 처음 접하다 보면, 영속성이란 말을 듣게된다. 영속성? 영속성 컨텍스트?JPA?JDBC (interface, Driver)? 영속성을 사전적 정의부터 말하고 들어가는게 이해하기가 쉬울꺼같아,사전적의미는: 영원히 계속되는 성질이나 능력(네이버 국어사전 참조) 자 그럼 영원히 계속 되게 하는 성질이 Java spring 에는 어떤게 있을까?바로 Data 처리가 그 중 하나이다! 간단한 온라인 쇼핑몰을 개발하면,고객정보, 상품정보, 결제정보, 주문정보는 필수적이다.이러한 Data 가 시스템 개발 초기때와 운영중일때가 같을까?당연히 아니다!(아무도 사용안하고 아무도 관리 안 한다면 모를까?) 한명이라도 회원가입해서 사용하면 그정보는 어딘가 저장되어야한다그럼 그 정보는 어디에 저장을 할까?Da.. 2024. 9. 16.
728x90