Home
Dohyun's Blog
Cancel

테스트 + 테스트 작성 요령

테스트는 말 그대로 구현한 기능에 대해 잘 구현되었는 지 확인하는 것을 의미한다. 즉 의도된 대로 정확히 작동하는 지 검증하는 절차이다. 테스트의 종류 테스트는 테스트 대상 범위나 성격에 따라 크게 3가지로 구분된다. Unit Test (단위 테스트) 소형 테스트에 속하는 테스트이다. 클래스 범주 내 작은 단위(메서드)의 기...

프리코스 1주차 회고

저는 대학 4년동안 중간에 편입학을 했음에도, 첫 대학교 입학때나 편입학 이후나 모두 프로그래밍 관련 전공을 계속 유지했었습니다. 하지만 진로 탐색의 과정에서 개발자로서의 관심 개발 분야는 계속 바뀌었기 때문에 현재 진로로 선택한 지 1년 정도 된 웹 백엔드 개발자의 부족한 개발 지식을 채우고자 우아한테크코스에 지원하게 되었습니다. 우아한테크코스...

getter 대신 객체에 메시지를 보내자 (+깊은 복사)

보통 getter()는 멤버 변수의 값을 호출하는 메서드로 사용되고, setter()는 멤버 변수의 값을 변경시키는 메서드이다. 상태 값을 갖는 객체에서는 상태 값을 외부에서 직접 접근해 변경하지 못하도록 메서드만 노출시킨다. 즉 멤버 변수는 접근 제한자를 private으로 설정해 직접적인 접근을 막는다. 그런데 getter, setter는 pri...

일급 컬렉션

객체 지향적이고, 리팩토링이 쉬운 코드를 위해 일급 컬렉션의 활용이 필요하다고 한다. 객체 지향 생활 체조 원칙에도 언급되어 있다. 일급 컬렉션이 무엇이고, 어떻게 활용하는 지 알아본다. 일급 컬렉션이란? Collection을 Wrapping하며 Collection 이외의 다른 멤버 변수가 없는 상태를 일급 컬렉션이라고 한다. 아래 예시를 보자....

애플리케이션 구동 환경이 변하는 것을 고려해보자.

숫자 야구 미션에서 나는 OutputView나 InputView 같은 View 클래스에서 System.out.println() 메서드를 사용했다. public class OutputView { public void startGame() { System.out.println(GameMessage.GAME_START); } ...

자바 정규표현식

정규 표현식 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용되는 언어. 자바에서는 정규 표현식을 사용하기 위해 java.util.regex 패키지에 있는 클래스들을 사용한다. 주로 Pattern, Matcher 클래스가 사용된다. Pattern 클래스 정규식이 컴파일된 클래스로, 문자열에 대한 검증을 수행할 수 있다. static ...

인스턴스 필드가 없는 클래스는 정적으로 공개해야 하는가? (유틸리티 클래스)

프리코스 1주차 숫자 야구 미션에서 나는 아래와 같이 입력 값을 받는 코드를 작성했었다. InputView public class InputView { public String inputUserNumber() { System.out.print(GameMessage.INPUT_NUMBER); return Console.r...

객체지향 생활체조 원칙

개발자는 의도한대로 잘 동작하는 코드를 짜는 것도 중요하지만 대부분이 협업으로 이루어지기 때문에 자신이 짠 코드를 남들도 잘 이해할 수 있어야 한다. 그리고 기능 개발보다 유지 보수하는 것이 대부분을 차지하기 때문에 유지 보수의 편리함을 위해서라도 처음부터 클린 코드를 실천하는 것이 좋다. 개발 생산성을 높여준다. 유지보수성을 위한 코드작성을 위해...

IntelliJ 자동 코드 포맷팅 및 플러그인

자동 코드 포맷팅 파일로 코드 스타일을 저장하고 등록하면 해당 파일의 코드 전체를 설정한 코드 스타일에 맞게 자동으로 포맷팅해줄 수 있다. XML형식의 코드 스타일 파일을 가져온다. Settings -> Editor -> Code Style -> Java -> 상단 톱니바퀴 -> Import Scheme -&gt...

스프링 트랜잭션 전파 활용

트랜잭션 전파 포스트에서 설명한 트랜잭션 전파를 활용하는 방법을 코드로 알아본다. 비즈니스 요구사항 회원 등록 및 조회 회원에 대한 변경 이력을 추적할 수 있도록 회원 데이터가 변경될 때 변경 이력을 DB log 테이블에 남겨야 한다. 트랜잭션 전파가 없을 때의 문제 Member와 Log 클래스는 JPA를 활용하도록 되어있고, 각각 ...