전체 글

행복한띠용이의 코딩 블로그입니다.
·Programming/Spring
1. 개요 채팅 기능을 구현하기 위해 WebSocket 에 대한 공부를 시작했다. 웹소켓을 왜 사용하는 지, 동작부터 구현까지 정리해보도록 하겠다.(1) HTTP vs WebSocket가장 일반적으로 서버와의 통신은 HTTP 를 통해 이루어진다.하지만 이 경우 서버는 요청이 오지 않으면 응답을 줄 수 없는 치명적인 단점이 존재한다.다시말해 채팅 혹은 주식 가격 등 실시간성으로 변하는 데이터를 클라이언트가 확인하기 위해서는 계속해서 HTTP 요청을 보내고 받아야한다.당연하게도 클라이언트가 매번 똑같은 요청을 보내고 있는 것은 비효율적이다. 이를 위해 2 가지 해결책이 존재한다.Server-Sent EvnetWebSocketSSE(Server-Sent Event) 는 단방향 데이터 통신이다. HTTP 프로토..
·Programming/Spring
1. 개요 API 문서화 툴을 중에서도 특히 Swagger 는 Springdoc 보다도 쉽게 사용할 수 있는 편리한 도구이다. Spring 3.0 버전에서의 API 문서화 툴 사용법을 익히고 적용시켜보자.2. Swagger 란?Swagger는 API 문서화 및 테스트에 사용되는 강력한 도구로, RESTful API를 설계, 빌드 및 문서화하는 데 도움을 준다. Swagger를 사용하면 API 엔드포인트, 매개변수, 응답 형식 및 기타 세부 정보를 정의하고 문서로 자동 변환할 수 있다. 이를 통해 API의 이해도를 높이고 개발자 간의 협업을 용이하게 한다.3. Swagger 사용법(1) 종속성 추가implementation 'org.springdoc:springdoc-openapi-starter-webmv..
·Programming/Spring
Kotest 를 사용한 Repositroy, Service Test Code 를 직접 작성해보도록 하겠다. Kotest 의 BehaviorSpec 을 사용하였다.1. Repository Test@DataJpaTest@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)class UserRepositoryTest( @Autowired private val userRepository: UserRepository) : BehaviorSpec() { init { beforeSpec { userRepository.save( User( ..
·Programming/Spring
TDD 및 테스트 코드의 중요성은 어디에서나 쉽게 찾아볼 수 있다.하지만 단편적인 코드만 존재할 뿐 실제 어떻게 사용해야할 지 감이 안잡혔었는데, 최범균님의 세미나 공유 - TDD 소개 및 시연 유튜브를 통해 살짝 감을 잡을 수 있었다. 매우 쉽게 이해할 수 있어 추천한다. 실제 코드와 함께 TDD 를 어떻게 진행해야할 지 살펴보자.1. Test Codeclass UserTest() : BehaviorSpec() { init { given("정상적인 유저가 존재할 때") { `when`("유저의 비밀번호를 암호화하면") { then("비밀번호가 암호화되어야 한다") { } } ..
·Programming/Spring
회원가입을 위해 Dto 를 생성 시에 validation 방법과 Kotest 를 사용한 테스트 코드를 작성해보자.1. Dtoclass UserDtoRequest( @field:NotBlank @field:Email @JsonProperty("email") private val _email: String?, @field:NotBlank @field:Pattern( regexp = "^(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[!@#\$%^&*])[a-zA-Z0-9!@#\$%^&*]{8,20}\$", message = "영문, 숫자, 특수문자를 포함한 8~20자리로 입력해주세요" ) @JsonProperty("password")..
행복한띠용이
행복한띠용이의 코딩