본문 바로가기

Spring

(57)
Vue.js / Springboot / 웹소켓 (Stomp) [velog.io/@skyepodium/vue-spring-boot-stomp-%EC%9B%B9%EC%86%8C%EC%BC%93 참고하여 간단하게 정리만 했습니다.] Vue.js 가 localhost:8080/receive 로 보내고 Springboot 가 localhost:8080/send 받아서 다른 Vue.js 로 보내준다. [서버] 0. 의존성 # web - 스프링 부트의 MVC 패턴을 사용 # websocket - stomp 가 들어있어서 웹소켓을 사용할 수 있다. # lombok - 게터,세터, 생성자 1. 구조 메시지 정보를 담는 vo ( 유저 정보 , 내용 ) controller ( 메세지를 받는 컨트롤러 ) config ( 웹소켓 endpoint 설정 , cross origin 해재 ) ..
Business Exception 처리 요구사항에 맞지 않을 경우 발생하는 Exception을 어떻게 발생시킬까 고민해보자. 예를들어 쿠폰을 사용하고 싶은데, 이미 사용한 쿠폰인 경우에는 더이상 로직을 이어가면 안된다. 그러므로 , 적절한 Exception 을 발생시키고, 로직을 종료시켜야 한다. 즉, 개발자가 로직의 흐름상 필요에 의해서 직접 발생시키는 Exception 들을 말한다,. 로직 도중 stop 해야할 곳에서는 반드시 .Exception을 이용해서 끊어주어야 한다. 그렇지 않으면, 다음 로직에서 책임이 더 커지고, 코드가 무거워지게 된다. 먼저 Exception을 적절히 이용하지 않고, 에러 메세지 출력으로 로직을 짠 코드르 보이겠다. 가독성이 좋지 못해서 핵심 비즈니스를 파악하기 어렵다. if else처리 코딩도 어려울 것이다...
Exception Guide 예외처리 방법 [Spring] 스프링은 예외처리를 위해서 다양한 어노테이션을 제공하고 있습니다. 일관성 있는 코드 스타일을 유지하면서 Exception 을 처리하는 방법이 있다. ErrorResponse 를 이용해서 처리해보자. Error Response 객체 class 형식 - errorResponse.getXXX 형식으로 쉽게 가져올 수 있다. - Exception에 대해서 ErrorResponse 객체를 어떻게 만들 것인가에 대한 책임을 명확하게 갖는 구조로 설계할 수 있습니다 @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) public class ErrorResponse { private String message; private int status; private Li..
SpringSecurity 설정후 Post 요청 불가능 ( 403에러 ) 해결 Security 설정후 잘 작동하던 PostMapping 컨트롤러가 작동하지 않았다. CSRF() 로인해서 post 요청이 막히는것. SecurityConfig.java 의 configure 메소드에 다음을 추가해주면 된다. http.csrf().disable();
[JPA] Error executing DDL "alter table post drop foreign key jpa: database-platform: org.hibernate.dialect.MySQL5InnoDBDialect open-in-view: false show-sql: true hibernate: format_sql: true ddl-auto: create >> 기존에 있던 테이블을 버리고 새롭게 생성하는것. ddl-auto : create 를 update로 변경하면 문제해결
SOCKJS ( 웹소켓 ) 어플리케이션이 웹소켓 API 를 사용할 수 있도록 해준다. ( 코드 변경없이 런타임에 필요시 비웹소켓으로 자동 대체해준다.) SockJS 클라이언트(자바스크립트) : 브라우저에서 사용하는 클라이언트 라이브러리 - “GET /info” 정보를 전송하여 서버에서 기본 정보를 받는다 - 브라우저에 알맞는 어떤 전송수단을 사용해야 할지 선택 ( 웹소켓 or HTTP 스트리밍옵션 or HTTP 폴링 ) - http://host:port/myApp/myEndpoint/{server-id}/{session-id}/{transport} 형식으로 전송 요청 SockJS 서버 ( 스프링프레임워크 ) : Spring-WebSocket 모듈을 포함하여 구현한다.
JPA 매핑에 관하여 ( 엔티티 매핑 )
JPA 영속성에 관하여