Spring (17) 썸네일형 리스트형 SpringBoot + WebSocket server 간단하게 구현해보기 스프링부트에서 웹소켓 서버 세팅을 하여 실시간으로 메세지를 주고받을 수 있는 서버를 만들어 보겠습니다. 정말 간단합니다. 먼저 의존성을 주입해줍시다. [Gradle] implementation 'org.springframework.boot:spring-boot-starter-websocket' [Maven] org.springframework.boot spring-boot-starter-websocket 그다음에는 websocket에 대한 전반적인 설정을 해줘야 합니다. 어떤 요청에 대한 어떤 응답을 할것인지에 대한 정의를 결정합니다. @Configuration @EnableWebSocket @RequiredArgsConstructor public class WebSocketConfig implement.. SpringBoot Paging(페이징)에서 제공하는 변수 커스터마이징 하기. public void pagingInfo(Pageable pageable){ } Pageable 객체는 개발자가 페이징을 쉽게 할수 있도록 도와줍니다. Pageable 객체 안에는 기본적으로 제공하는 메소드 기능들이 있습니다. 그중 저희는 getPageSize와 getPageNumber 를 볼 겁니다. getPageSize는 나타내고자 하는 요소의 수를 나타냅니다. getPageNumber는 현재 페이지를 나타냅니다. 기본적으로 요소의 수는 파라미터명이 = size, 현재페이지 정보는 = page 로 되어있습니다. 예시를 보면 url : http://localhost:8080/api/v1/members 설명 : 멤버의 전체목록리스트를 불러오는 api 입니다. 가정 : 유저100명. 이대로 API 요청을 .. Springboot + chatGPT API 연동해보기. springboot 에서 chatGPT API를 연동해보겠습니다. 생각보다 어렵지 않으니 순서대로 따라오시면 됩니다. 우선 chatGPT API 를 이용하기 위해 API-KEY가 필요합니다. https://platform.openai.com/account/api-keys OpenAI API An API for accessing new AI models developed by OpenAI platform.openai.com 링크를 따라 들어가면, 로그인 해야할겁니다. 로그인 후 위에 링크를 다시 들어가면, 아래에 + Create new secret key 를 발급 받으실 수 있습니다. 추후에 api 사용을 위한 api-key 이니, 알고계셔야 합니다. 이제 프로젝트를 생성해봅시다. id 'org.sprin.. spring 에서 @Async 어노테이션 사용하기(비동기) spring에서 @Async 를 이용하여 비동기로 서버를 구축할 수 있다. [AsyncConfig.java] @EnableAsync public class AsyncConfig { @Bean public Executor getAsyncExecutor(){ ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); executor.setCorePoolSize(8); executor.setMaxPoolSize(8); executor.setQueueCapacity(500); executor.setThreadNamePrefix("test-pool-"); executor.initialize(); return executor; } } 먼저 비동기를 위한 기본 .. List -> Page 변환 List members = memberRepository.findAllByNickname(nickname); 위의 코드는 리스트 타입으로 되어 있다. int page = 0; //페이지 수 int size = 0; //범위 PageRequest pageRequest = PageRequest.of(page.size); 요청으로 들어온 page와 size를 PageRequest 객체를 이용해 파라미터에 담아준다. int start = (int) pageRequest.getOffset(); int end = Math.min((start + pageRequest.getPageSize()),members.size())); start 와 end 의 값을 위의 코드와 같이 가져온다. Page membersPage =.. Could not write JSON: Infinite recursion (stackOverflowError) 해당 오류가 난 원인은 무한적인 재귀호출로 인한 스택오버플로우가 난거다. Member 테이블 과 Team 테이블이 있다. (Member : Team = N : 1) 다 대 1 관계다. public class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; @ManyToOne @JoinColumn(name = "team_id") private Team team; } public class Team { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String teamName;.. @ModelAttribute 와 @RequestParam 간단하게 설명 하고 마치도록 하겠습니다. @RequestParam @RestController public class exampleController{ @GetMapping("/search-user") public String test(@RequestParam("username")String username{ //생략... } } @RequestParam 은 사용자가 /search-user?username=아무값 요청을 하게 되면 username변수에 값을 받을 수 있습니다. 사용자가 요청 시 전달하는 값을 Controller의 매개변수로 1:1 Mapping 할 때 사용됩니다. @ModelAttribute @Data //Lombok public class TestVO { private String us.. SpringBoot 란?(스프링부트) 국비학원을 다니던 분들이 회사에 취업하게되면 마주하게 되는 프레임워크 이다. (전부는 아님) 본인도 학원을 다니면서 Spring 프레임워크를 사용했지만, 회사를 다니게 되면서 SpringBoot 프레임워크를 사용하게 되었다. 간단하게 SpringBoot가 뭔지에 대해 알아보자. (회사다니기전에 알아두면 좋다.) SpringBoot를 알기전에 Spring에 대하여 간단하게 알아야한다. https://yjkim-dev.tistory.com/2 Spring(스프링) 이란? 뭘까? Spring Framework 가 뭐지? 자바 플랫폼을 위한 오픈 소스 애플리케이션 프레 임워크 일상 생활에서 불을 사용하기 위해 '라이터' 나 '성냥' 라는 도구를 사용합니다. 라이터 혹은 성냥이 없다면? 고대 yjkim-dev.t.. 이전 1 2 3 다음