RestController 테스트

RestController 테스트하기 (MockMvc)

RestController 테스트에 대해서 왜 알아둬야 할까요? 조금 공부해두면 여러분의 시간을 아낄 수 있는 무기로 사용할 수 있기 때문입니다. MockMvc을 활용한 RestController 테스트 방법을 익히면, REST API 개발 시 서버를 띄우고 직접 URL을 입력하여 요청을 보내고 응답을 눈으로 일일이 확인하는 일을…

테스트 코드 작성하는 이유

테스트 코드를 작성하는 이유(테스트 자동화)

우리는 테스트 코드를 작성할 시간이 없습니다. 기능만 구현하기에도 시간이 부족하다고 생각하기 때문이죠. 테스트 코드를 프로덕션 코드만큼 중요하게 생각하기는 쉽지 않습니다. 모두가 테스트 코드를 프로덕션 코드만큼 중요하게 생각한다면 일정을 산정할 때 테스트 코드 작성에 필요한 비용을 충분히 고려할 텐데, 슬프게도 그런…

SOLID 원칙 핵심 정리

SOLID 원칙 핵심만 콕!! (OOP)

객체 지향 프로그래밍의 SOLID 원칙 핵심에 대해서 정리한 글입니다. 이 글의 목적은 SOLID에 대해 상대방에게 설명하고 싶을 때 깔끔하게 핵심만 전달할 수 있도록 도와드리는 것입니다. 저의 주관적인 해석이 들어가 있을 수 있다는 점 참고 부탁 드립니다. SOLID 원칙 핵심 5가지…

vim 쉽게 배우고 익히는 방법

vim 입문하기 (핵심 vim 단축키 정리)

대학생 시절 vim 에디터를 접하게 되면서 무시무시하게 많은 단축키들을 만났을 때, 이 단축키들을 잘 익히기만 하면 생산성이 대폭 향상되겠다는 생각을 했습니다. vim을 잘 다루는 게 진정한 개발자의 소양인 것처럼 보였죠. 그래서 vim에 익숙해지려고 노력했지만 결국 진입 장벽을 넘지 못하고 vim…

Stub과 단위 테스트 (Mockito or 직접 구현)

Stub과 단위 테스트 (Mockito or 직접 구현)

단위 테스트(Unit Test)는 ①각각 독립된 하나의 기능을 테스트하면서 ②언제나 같은 결과를 기대할 수 있어야 하고, ③빠르게 결과(성공/실패)를 확인할 수 있어야 하며, ④테스트 스위트 실행 후 결과를 취합할 수 있도록 작성되어야 합니다. 단위 테스트를 작성하다 보면 ②를 만족시키기 위해서 특정 메서드를…

jjwt 사용 방법

JWT 생성 및 검증하기 (jjwt 사용 방법)

이번 글에서는 jjwt(Java Json Web Token)라는 오픈소스 라이브러리를 사용해서 JWT를 생성하고 검증하는 방법을 알아보겠습니다.jjwt 사용 방법을 이해하실 수 있도록 기본적인 JWT 생성 예시와 JWT 검증 예시, 테스트 코드를 작성해 보았습니다. https://jwt.io/libraries 👈여기에서 JWT를 생성하고 검증하기 위해 제공되는 오픈소스 라이브러리들을 찾을…

JWT 구조 이해하기

JWT는 토큰 기반 인증 방식에서 주로 사용되는 토큰입니다. 주로 로그인 된 특정 사용자를 인증하기 위해서 사용됩니다. REST API 서버의 확장성을 높이는 데 JWT 인증 방식이 한 몫을 하고 있습니다. 이번 글에서는 JWT 구조에 대해 알아보겠습니다. JWT란? JWT는 Json Web Token의…

높은 응집도 낮은 결합도

유지보수와 결합/응집의 관계 (OOP)

코드의 유지보수성에 대해서 이야기할 때 꼭 나오는 단어가 있습니다. 바로 응집도와 결합도 입니다. 유지 보수는 소프트웨어 생명 주기의 가장 큰 부분을 차지합니다. 요구사항에 따라 소프트웨어는 계속해서 변경되기 때문이죠. 우리는 코드의 변경에 유연하게 대처할 수 있는 코드를 작성해야 합니다. 응집도, 결합도의…

멀티테넌시 개념과 적용 방안

멀티테넌시(Multi-tenancy) 개념과 적용 방안

멀티테넌시란? 멀티 테넌시(Multi-tenancy)는 소프트웨어 애플리케이션의 단일 인스턴스가 여러 고객(테넌트, tenant)에게 서비스를 제공할 수 있게 설계된 아키텍처입니다. 오로지 소프트웨어에 의해서 테넌트가 분리됩니다. 주로 SaaS 클라우드 서비스를 설계할 때 멀티테넌시 아키텍처를 고려합니다. 테넌트를 영어 사전에서 검색해보면 세입자, 임차인이라는 뜻이 검색됩니다. 즉, 우리가…

스프링 부트 로깅레벨 변경하기

[Spring Boot] 특정 클래스의 로깅 레벨 변경하기

스프링부트를 사용해 웹 애플리케이션을 운영하다 보면 특정 클래스의 로깅 레벨을 변경하고 싶을 때가 있습니다. 스프링부트에서 모든 클래스의 로깅 레벨을 변경하는 방법부터 시작해서 특정 패키지의 클래스들 그리고 특정 클래스 하나의 로깅 레벨을 변경하는 방법까지 알아보겠습니다. 모든 클래스의 로깅 레벨 변경 모든…