티스토리 뷰

Back-end

[Spring Boot] 패캠 5번쨰 수업

jhkang-dev 2018. 11. 3. 17:59

Jar 파일 만드는 방법

- Intellij 우측에 Maven project 클릭.

- Life Cycle에서 Package 클릭 --> 빌드

- target 폴더의 jar 파일 생성

- java -jar jar 이름을 실행.


커스터마이징 스타터 제작하기

- starter 프로젝트


Stickershop 프로젝트 실행하기

- import maven 프로젝트

- Maven project - lifecylce : test는 실행 스킵하게 설정

- life cycle package 더블클릭 : 자동으로 Q 클래스 빌드한다




아스키 아트 추가하기

http://patorjk.com/software/taag/#p=display&f=Graffiti&t=Type%20Something%20

- resource 폴더 아래 banner.txt 파일을 만들고 아스키 문장을 입력하고 서버 재실행



Spring Boot features(80페이지)

- application.properties에서 로그 레벨을 정할 수 있다.



SpringApplication 재정의


- 서버를 실행시키면 pid가 설정된다.


SpringApplication - Application Events and Listeners


리액티브 프로그래밍

- 스트림으로 서버에서 클라이언트로 주는 것. 기존에는 JSON 데이터를 모두 받고 나서 페이지에 띄워줬다. 그러면 많은 데이터가 모두 응답될 동안 사용자는 기다려야 했다.

- 하지만 리액티브 프로그래밍은 Stream으로 잘라서 보내주기 때문에 사용자가 덜 지루하게 기다릴 수 있다.


Spring Boot - starter

- 스타터 프로젝트를 만들기 위해서는 3가지 라이브러리 의존성이 있어야한다

0) Spring Boot autocnofigure processor

1) spring boot configuration-processor

2) spring boot autoconfigure 



Starter의 Bean이 사용자가 만든 Bean을 덮어쓸 때?


@ConditionalOnClass : DataSource.

starter를 만드는 사람은 고민을 해야한다. 


Starter를 이해하면 


웹소켓

Single 페이지 웹 소켓 연결 : 페이지가 정말 다른 것으로 이동되기 전까지는 계속해서 연결을 유지하는 것. 그러면 연결이 되어 있는 상태에서는 푸쉬 알람 받을 수 있다.


--------------------------------------------


[Spring websocket]

구글 검색 : Spring Websocket


STOMP라는 개념이 나온다. 이게 무엇이지??

STOMP : 


구글 검색 : Rabbitmq stomp


STOMP라는 것은 프론트에서 사용되고, 백엔드에서도 사용된다. 


1. 웹 소켓 연결

2. 1번 방에 입장 --> 브로커가 여러 회원들한테 브로드캐스팅 하는것


RabbitMQ --> STOMP 브로커


사이트 : https://spring.io/guides/gs/messaging-stomp-websocket/



 @Override
    public void configureMessageBroker(MessageBrokerRegistry config) {
        config.enableSimpleBroker("/topic");
        config.setApplicationDestinationPrefixes("/app");
    }

브로커 설정



@Override
    public void registerStompEndpoints(StompEndpointRegistry registry) {
        registry.addEndpoint("/gs-guide-websocket").withSockJS();
    }

withSockJS() : Sock js는 자바스크립트로 서버에 접속하는 것

연결 이후에 주고 받는 데이터는 STOMP를 이용해서 한다.



1. Web소켓 시큐리티 추가

2. 1번방 사람은 1번방끼리, 2번방은 2번방끼리 하는 기능 구현

3. 안녕이라는 메시지를 보냈다 --> 그러면 1번방에 있는 사람들에게 보내줘야 하는데, 1번방에 누가 있는지를 알아야한다. 그래야 1번방에 있는 사람들에게 메시지를 전송할 수 있다.

4. 



요구사항

1. 로그인을 해야한다

2. 대화방 목록이 떠야한다.

3. 채팅방 1번에 접속할 때, 입력하고 치면 이름이 뜬다.





댓글