목록자바 (4)
코딩 해파리

오늘은 실제로 서비스를 마무리하고!요청도 보내고!답변도 받아볼게요! 저번에 작성하지 않은 config 클래스와 service, controller에 대해 작성을 해볼게요! 1. OpenAiConfigimport org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.http.MediaType;import org.springframework.web.client.RestTemplate;@Configurationpublic clas..

클래스 작성을 시작해 보자! 이번에 알려드릴 Open AI 쪽에 요청을 보내기 위한 Request 구조와요청에 대한 답을 받기 위한 Response 구조의 아주 간략화된 DTO 클래스 구조를 작성할 겁니다! 일단,https://platform.openai.com/docs/api-reference/chat이 API Reference를 보면 Request 쪽과 Response 쪽에 구조를 보면,,,뭐가 너~~~ 무 많습니다... 그러니까, 오늘은 모든 기능과 모든 상황을 처리할 수 있는범용성이 높은 클래스 구조를 작성하기보다는처음 입문하는 느낌으로다가 messages에 User Message만 담아서 보내보도록 할게요!그리고 "Required"만 사용하면 보낼 수는 있으니까, 이것들만 작성을 해보겠습니다! ..

스프링(서버)에서 응답 데이터를 만드는 방법은 3가지 정도가 있습니다. 1. 정적 리소스 -> 웹 브라우저에 정적인 상태의 HTML, CSS, JS를 제공하는 것입니다. 간단한 예를 들자면... 웰컴 페이지가 있겠네요! 스프링 부트에서는 '/static', '/public', 'resources', '/META-INF/resources' 디렉토리에 있는 정적 리소스를 제공합니다! 'src/main/resources'는 리소스를 보관하는 곳이고, 클래스패스의 시작 경로입니다. 그러므로, 'src/main/resources/static' 디렉토리에 리소스를 넣으면 스프링 부트는 정적 리소스로 서비스를 제공하게 되는것이죠! 2. 뷰 템플릿 -> 뷰 템플릿을 거쳐서 HTML을 생성하고, 뷰가 응답을 만들어서 웹..

Junit4에 익숙하시던 분들이나 예전 강의를 보게 되는 경우 예외 상황 케이스가 잘 작동하는 지 테스트를 할 때 @Test(expected = IllegalStateException.class) 이런 식으로 작성을 하셨던 분이 많으실 겁니다... 그런데 이게 Junit5로 넘어오면서 없어졌습니다... 그 대신에 Assertions.assertThrows를 쓰면 되는데요...! 이게 처음에만 보기에 어렵지 쓰다 보면 그냥 전처럼 쓰실 수 있습니다...! 굳이 fail 같은 걸 쓸 필요도 없어지고, 여러 개를 검증해 볼 수 있어서 이점이 더 많습니다! 사용방법은 @Test public void 중복회원_예외() throws Exception { Member member1 = new Member(); mem..