본문 바로가기

분류 전체보기115

@ResponseBody @RequestBody 이 어노테이션이 붙은 파라미터에는 HTTP 요청의 본문 body 부분이 그대로 전달된다. RequestMappingHandlerAdapter에는 HttpMessageConverter 타입의 메시지 변환기(message converter)가 여러 개 등록되어 있다. @RequestBody가 붙은 파라미터가 있으면 HTTP 요청의 미디어 타입과 파라미터의 타입을 먼저 확인한다. (dispatcher-servlet.xml 에서 확인) 메시지 변환기 중에서 해당 미디어 타입과 파라미터 타입을 처리할 수 있다면, HTTP 요청의 본문 부분을 통째로 변환해서 지정된 메소드 파라미터로 전달해준다. 쉽게 말하자면 @RequestBody 어노테이션을 이용하면 HTTP 요청 Body를 자바 객체로 .. 2020. 6. 4.
프로그래머스 다음 큰 숫자 자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니다. 조건 3. n의 다음 큰 숫자는 조건 1, 2를 만족하는 수 중 가장 작은 수 입니다. 예를 들어서 78(1001110)의 다음 큰 숫자는 83(1010011)입니다. 자연수 n이 매개변수로 주어질 때, n의 다음 큰 숫자를 return 하는 solution 함수를 완성해주세요. 제한 사항 n은 1,000,000 이하의 자연수 입니다. 입출력 예 nresult 78 83 15 23 입출력 예 설명 입출력 예#1 문제 예시와 같습니다. 입출력 예#2 15(1111)의 다음 큰 숫자는 23(10.. 2020. 6. 4.
0603 프로젝트 일기 어제 못했던 stomp통신을 성공했다. stomp에 대한 통신 개념 흐름을 이해하고 정리했다. https://y00ns00.tistory.com/41 spring websocket + stomp /app은 메세지를 처리할 수 있도록 서버측의 annotated method 로 흐르도록 하기 위한 라우팅 /topic , /queue 는 broker로 흐르도록하기 위한 라우팅 STOMP는 여러 prefix를 통해 흐름을 결정하는데 자주쓰인p y00ns00.tistory.com 하지만 부트 예제를 보고 바꾸다 보니까 boot에서만 지원하는 annotation들이 스프링에서는 어떻게 적용해야 할지 낯설면서 너무 어려웠고 조금 더 공부해야겠다. spring에서는 많은 annotation들이있는데 아직 모르는 부분이.. 2020. 6. 4.
spring websocket + stomp /app은 메세지를 처리할 수 있도록 서버측의 annotated method 로 흐르도록 하기 위한 라우팅 /topic , /queue 는 broker로 흐르도록하기 위한 라우팅 STOMP는 여러 prefix를 통해 흐름을 결정하는데 자주쓰인prefix는 아래와 같다 1. 클라이언트에서 destination에 /app 이라는 prefix를 주었을때 흐름 해당 request는 @messagemapping된 스프링 컨트롤러로 흘러가고 컨트롤러에서 메세지를 수신한 후 여러 작업들을 처리한 후에 /topic이라는 prefix를 통해 브로커에게 전달하면 브로커는 STOMP MESSAGE 메소드를 이용해서 특정 토픽을 구독하는 구독자들에게 reponse를 보낸다. 2. 클라이언트에서 destination에 /top.. 2020. 6. 3.
0602 프로젝트 boot....stomp 저번에 이어서 websocket과 stomp를 이용하여 채팅을 구현해보려고하였다. 하지만 구글링을 더 열심히 해도 boot를 사용한 예제가 대다수 였다. 그래서 boot를 잘모르지만 boot 의 구조를 이해해서 예제를 spring설정으로 바꾸는 작업을 해보려서 애썻다. boot는configuration annotation을 이용하여 설정하지만 spring은 xml을 이용하여 설정했다. 방식을 찾다가 너무 예제가 없어서 좌절했지만 어느정보 성공했다. 하지만 문제가 끝이 아니였다 에러가 터졌는데 어디서 터졌는지를 모르겠다 애초에 boot 구조를 잘 모르고 해석을 한다는게 어려운 일이었다. 내일은 꼭 성공하여 소켓통신까지 구현하는게 목표이다. https://github.com/yssy3135/projectchat 2020. 6. 2.
MVC 구조란? M 모델 V 뷰 C 컨트롤러의 약자로 디자인 패턴의 하나이다 비즈니스 처리 로직과 사용자 인터페이스를 서로 구분시켜 서로 영향없이 개발이 가능하다는 장점이 있다. 모델(Model)은 어플리케이션이 "무엇"을 할 지에 대한 정의한다. 처리되는 데이터,데이터베이스, 내부 알고리즘 등 내부 비즈니스에 로직에 관한 의 처리를 수행한다. 뷰(view)는 말그대로 사용자에게 보여지는 영역이다. JSP등 사용자 인터페이스를 담당한다. 컨트롤러(Controller) 모델에게 어떻게 할 것인지를 알려주며 모델과 뷰를 연결해주는 역할을 한다. 사용자의 입출력을 받아 데이터를 처리한다. 2020. 6. 2.
프레임워크 vs 라이브러리 프레임워크란 - 소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 협업화된 형태로 클래스들을 제공하는것 ex) 자동차의 프레임, 즉 기본적으로 구성하고 있는 뼈대 라이브러리란 - 자주 사용되는 로직을 재사용하기 편리하도록 잘 정리한 일련의 코드들의 집합 ex) 자동차의 기능을 하는 부품 2020. 6. 2.
백준 1,2,3, 더하기(동적 프로그래밍) 문제 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 1+1+1+1 1+1+2 1+2+1 2+1+1 2+2 1+3 3+1 정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다. n은 양수이며 11보다 작다. 출력 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. 1부터 3까지는 수동으로 구해야 한다. 1일때 경우에 수는 1개 2일때는 경우에수는 2개 3일때는 경우에 수의 4개 ​ 4일떄의 개수는 3 + 2+ 1 이므로 n 일때 (n-.. 2020. 6. 2.
0601 프로젝트일기 stomp!!! 본격적으로 프로젝트 프로그래밍이 시작되었다 나는 websock을 이용하여 채팅을 구현해볼생각이였지만 강사님이 stomp를 사용하는 방식을 추천해주셨다. 예제를 참고하여 구현해보려고 했지만 spring-boot를 사용하는 예제들 밖에 안보였고 포기함고 sockJS를 통해 해보려고 했지만 잘 구현되지 않았다. socket을 채팅방 단위로 만들어 주어야하는데 이것이 첫번쨰 문제였고 새로고침을하면 새로운 소켓이 접속이 되는것이 였다. spring websocket을 배우지 않은 상태로 구글링을 하며 구현해 보려고 하니깐 막히는 부분이 너무 많았고 이해가 되질 않았다. 그래도 포기하지않고 내일은 stomp예제를 꼭 찾아서 구현해봐야겠다. 2020. 6. 2.