본문 바로가기
728x90

전체 글69

Spring REST Doc 적용기 현재 사내에서 api 문서를 postman으로 관리를 하고 있는데 곧 외부망을 내부망으로 교체할 예정이라 외부망을 사용하지 못할 시에 postman으로 api를 문서화하지 못하기 때문에 다른 방식으로 api를 문서화할 수 있는 방법을 찾아야 했고 같은 팀의 대리님이 문서 작업을 자동화할 수 있는 방법을 찾아보시다가 RESTful 서비스에 대한 문서 생성을 도와주는 Spring REST Doc이라는 라이브러리를 알게 되었고 직접 사용해 보신 후 팀 내에 도입하기로 결정하였습니다. Spring REST Doc이란? RESTful 서비스에 대한 정확하고 읽기 쉬운 문서를 생성해주는 자바 라이브러리 입니다. Asciidoctor를 사용하여 필요에 맞게 스타일이 지정된 HTML, PDF 등을 생성해줍니다. Spr.. 2023. 4. 2.
스프링의 템플릿/콜백 패턴 이번 포스트에서는 스프링에서 자주 등장하는 템프릿/콜백 패턴에 대해서 알아보도록 하겠습니다. 템플릿/콜백 패턴을 설명하기 전에 확장에는 자유롭게 열려있고 변경에는 굳게 닫혀 있다는 객체지향 설계의 핵심 원리인 개방 폐쇄 원칙(OCP)을 다시 한번 생각해 봅시다. 이 원칙은 코드에서 어떤 부분은 변경을 통해 그 기능이 다양해지고 확장하려는 성질이 가지고, 어떤 부분은 고정이 되어있어 변하지 않으려는 성질을 가지고 있습니다. 변화의 특성이 다른 부분을 구분 해주고(변하는 것과 변하지 않는 것), 각각 다른 목적과 다른 이유에 의해 다른 시점에 독립적으로 변경될 수 있는 효율적인 구조를 만들어주는 것이 개방 폐쇄 원칙입니다. 템플릿/콜백 패턴은 이렇게 바뀌는 성질이 다른 코드 중 거의 변경이 일어나지 않으며 .. 2023. 4. 2.
Spring - 테스트와 TDD 테스트란? 개발자가 예상하고 의도했던 대로 코드가 정확히 동작하는지 확인해서 만든 코드를 확신할 수 있게 해주는 작업입니다. 테스트하고자 하는 대상이 명확하다면 그 대상에만 집중해서 테스트하는 것이 바람직합니다. 테스트하려는 범위가 클수록 테스트가 힘들어지고 오류가 발생했을 때 정확한 원인을 찾기가 힘들어지므로 가능하면 테스트의 관심이 다르다면 테스트할 대상을 분리(관심사의 분리) 하고 작은 단위로 쪼개서 테스트를 하는 것이 좋습니다. 이것을 단위 테스트라 합니다. 이전 포스트에서 테스트를 하기 위해 사용했던 main() 메소드를 보시면 테스트를 하기 위해서 프레젠테이션, 서비스 계층이 필요 없고 한 가지 관심에 집중해서 작은 단위로 테스트를 할 수 있기 때문에 단위 테스트를 적용했다 할 수 있습니다. .. 2023. 3. 26.
Spring - 오브젝트와 의존관계(스프링의 IoC와 DI) 2023.03.19 - [Spring] - Spring - 오브젝트와 의존관계(관심사의 분리) Spring - 오브젝트와 의존관계(관심사의 분리) Spring 이란? 스프링은 자라를 기반으로 한 기술입니다. 스프링의 철학은 자바 엔터프라이즈 기술의 혼란 속에서 잃어버렸던 객체지향 기술의 진정한 가치를 회복시키고, 그로부터 객체지향 프로 rbsks.tistory.com 2023.03.19 - [Spring] - Spring - 오브젝트와 의존관계(상속을 통한 확장과 인터페이스의 도입) Spring - 오브젝트와 의존관계(상속을 통한 확장과 인터페이스의 도입) 2023.03.19 - [Spring] - Spring - 오브젝트와 의존관계(관심사의 분리) Spring - 오브젝트와 의존관계(관심사의 분리) S.. 2023. 3. 21.
Spring - 오브젝트와 의존관계(상속을 통한 확장과 인터페이스의 도입) 2023.03.19 - [Spring] - Spring - 오브젝트와 의존관계(관심사의 분리) Spring - 오브젝트와 의존관계(관심사의 분리) Spring 이란? 스프링은 자라를 기반으로 한 기술입니다. 스프링의 철학은 자바 엔터프라이즈 기술의 혼란 속에서 잃어버렸던 객체지향 기술의 진정한 가치를 회복시키고, 그로부터 객체지향 프로 rbsks.tistory.com 이전 포스트에서 리팩토링 메소드 추출 기법을 사용하여 관심사를 분리해 변화에 좀 더 유연하게 대처할 수 있는 코드를 만들어 보았습니다. 이번 포스트에서는 변화를 반기는 DAO를 만들어 보겠습니다. 앞에서 만들었던 UserDao가 인기를 끌면서 N 사와 D 사에서 사용자 관리를 위해 UserDao를 구매하겠다는 주문이 들어왔다고 가정해 봅시다.. 2023. 3. 19.
Spring - 오브젝트와 의존관계(관심사의 분리) Spring 이란? 스프링은 자라를 기반으로 한 기술입니다. 스프링의 철학은 자바 엔터프라이즈 기술의 혼란 속에서 잃어버렸던 객체지향 기술의 진정한 가치를 회복시키고, 그로부터 객체지향 프로그래밍이 제공하는 폭넓은 혜택을 누릴 수 있도록 기본으로 돌아가자는 것입니다. 스프링이 가장 관심을 많이 두는 대상은 오브젝트입니다. 애플리케이션에서 오브젝트가 생성되고 다른 오브젝트와 관계를 맺고, 사용되고, 소멸하기까지의 전 과정을 자세히 살펴보아야 합니다. 결국 오브젝트에 대한 관심은 오브젝트의 기술적인 특징과 사용법을 넘어서 오브젝트의 설계로 발전하게 됩니다. 객체지향 설계의 기초와 원칙, 다양한 목적을 위해 재활용 가능한 설계 방법인 디자인 패턴 좀 더 깔끔한 구조가 되도록 지속적으로 개선해나가는 작업인 리팩.. 2023. 3. 19.
728x90