본문 바로가기

자바9

Spring에서 XML 형식 응답 처리 방법 Spring에서 API의 응답을 일반적인 JSON 형식이 아니라 XML 형식으로 응답하는 방법에 대해 정리합니다. 1. build.gradle에 jackson-dataformat-xml 라이브러리를 추가합니다. https://mvnrepository.com/artifact/com.fasterxml.jackson.dataformat/jackson-dataformat-xml 를 참고하여 현재 프로젝트의 의존성에 맞는 버전으로 추가합니다. implementation (group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-xml', version: '2.13.3') 2. JacksonConfig 클래스를 추가합니다. @Configuration.. 2023. 12. 6.
JUnit5를 이용하여 Java 테스트 코드 작성하기 (JUnit5 기준 작성) 자주 사용하는 assert 관련 method assertTure assertFalse assertEquals assertNotEquals assertThrowsExactly assertInstanceOf assertThrowsExactly example assertThrows(ExpectedException.class, () -> Method to test); 다른 bean과 의존 관계 있는 경우 Mock 사용 class ServiceTest { private AutoCloseable openMocks; private Service service; @Mock private OtherService otherService; @BeforeEach void setUp() { openM.. 2022. 12. 22.
[디자인 패턴] Template Method Pattren(템플릿 메소드 패턴) 템플릿 메소드 패턴(Template Method Pattren) 공통적인 프로세스를 묶어 주기 학습 목표 일정한 프로세스를 가진 요구사항을 템플릿 메소드 패턴을 이용하여 구현할 수 있다. 알고리즘의 구조를 메소드에 정의하고 하위 클래스에서 알고리즘 구조의 변경없이 알고리즘을 재정의하는 패턴 수정할 때는 구현 클래스만 수정 효과적인 유지 보수 가능 기본 설계 어떨 때 사용하는 가 구현하려는 알고리즘이 일정한 프로세스가 있다. 여러 단계로 나눌 수 있다. 구현하려는 알고리즘이 변경 가능성이 있다. 사용하는 단계 알고리즘을 여러 단계로 나눈다. 나눠진 알고리즘의 단계를 메소드로 선언한다. 알고리즘을 수행할 템플릿 메소드를 만든다. 하위 클래스에서 나눠진 메소드들을 구현한다. 예제 요구 사항 신작 게임의 접속을.. 2020. 7. 19.
[Java] 오버로딩(overloading)과 오버라이딩(overriding) 차이점 이번에는 오버로딩(overloading)과 오버라이딩(overriding)에 대해 알아보겠습니다. 이 두 개념은 동일한 메서드명을 기반으로 동작한다는 공통점 때문에 많이 헷갈리는 개념인데요! 1. 오버로딩은 같은 이름의 메서드이지만 매개변수 부분을 다르게 정의하는 것입니다. 2. 오버라이딩은 상위 클래스의 메서드를 하위 클래스에서 재정의하는 것입니다. 오버로딩 예시 코드를 살펴볼까요❓ 이렇게 같은 이름의 메서드이지만 매개변수의 개수나 종류를 다르게 정의가 가능합니다. 생성자도 마찬가지입니다. 오버로딩을 사용하는 이유는 무엇일까요? 만약 오버로딩이 허용되지 않는다면 위의 코드에서 메서드명이 add 하나로 처리될 수 없고, addNumTwo, addNumThree, addStringTwo 이런식으로 메서드명.. 2020. 5. 3.