- Today
- Total
목록Category (318)
개발하는 고라니
# RestController 일반적인 Controller의 역할처럼 문서를 만들어 제공하는 것이 아닌, 주로 데이터(String, JSON 등)를 만들어서 제공하는 Controller 프로젝트를 진행하다 보면 문서를 만들어서 보여줄 것이 아닌 데이터를 줘야하는 경우가 있는데 그럴 때 @RestController 어노테이션을 사용해 컨트롤러를 만든다. @ResponseBody를 사용하는 것과 같은 효과를 나타낸다. 문자열을 반환할 때 영어는 정상적으로 잘 처리하지만, 한글은 깨져서 나타난다. # String을 반환하는 @RestController 예 * @RestController("apiController") 처럼 ()안에 명칭을 줌으로써 Spring에게 apiController라는 이름으로 빈을 만들..
# 학습목표 동적 프로그래밍이 무엇인지 이해한다. 어떤 특성을 가진 문제가 동적 프로그래밍의 적용 대상인지 감지할 수 있도록 한다. 기본적인 몇 가지 문제를 동적 프로그래밍으로 해결할 수 있도록 한다. # 배경 재귀적 해법 큰 문제에 닮음꼴의 작은 문제가 깃든다. 잘 쓰면 보약, 잘못 쓰면 맹독 관계중심으로 파악함으로써 문제를 간명하게 볼 수 있다. 재귀적 해법을 사용하면 심한 중복 호출이 일어나는 경우가 있다. 재귀적 해법의 양면성 바람직한 예 퀵정렬, 병합정렬 등의 정렬 알고리즘 계승(Factorial) 구하기 그래프의 DFS(Depth First Search) 등 치명적인 예 피보나치수 구하기 행렬곱셈 최적순서 구하기 # 도입 문제 : 피보나치수 구하기 * f(n) = f(n-1) + f(n-2) ..
# 학 습 목 표 그리디 알고리즘의 특징을 파악한다. 그리디 알고리즘으로 최적해가 보장되는 예와 그렇지 않은 예를 관찰한다. # 그리디 알고리즘 눈 앞의 이익만 취하고 보는 알고리즘 현재 시점에 가장 이득이 되어 보이는 해를 선택하는 행위를 반복한다. 대부분 최적해와의 거리가 멀다. 드물게 최적해가 보장되는 경우도 있다. (최소 신장 트리, 최단 경로 등)do do { 우선 가장 좋아 보이는 선택을 한다 } until (해 구성 완료) # 그리디 알고리즘의 전형적 구조 Greedy(C) C : 원소들의 총 집합 { S 5원 짜리 -> 1원 짜리 - 이렇게 동전의 액면이 모두 바로 아래 액면의 배수가 되면 그리디 알고리즘으로 최적해가 보장 된다. But, 액면이 바로 아래의 액면의 배수가 되지 않으면 그리..
평소와 같이 프로그래밍을 하고, Github에 올리기 위해 $git push origin master 을 했으나, 위와 같은 오류가 발생했다. 구글링 한 결과, Git의 원격 저장소와 현재 로컬 저장소가 동기화되어있지 않은 것이 원인이라고 했다. 그러므로 해결방법 또한 동기화 시켜주면 된다고 한다. git pull --rebase 원격저장소별칭 master --> $git pull --rebase origin master 을 했으나, 다음과 같은 오류가 발생했다. Git에 익숙하지 않은 나는 이 또한 무엇인지 몰랐다... 그래서 더 찾아본 결과 $git push origin +master 하면 강제(?)로 push해주는 것 같다. 하지만 기존의 데이터는 보장하지 못한다고 한다. 만일 기존의 데이터가 신경..
기존 공부 용도의 게시판(?)에 여러 기능을 추가하던 차, 관리자와 멤버 간 채팅 기능을 구현하고 싶었다. 채팅을 하려면 웹 소켓이 필요하다고 한다. 간단하게 구현하는 것은 어렵지 않으므로 웹 소켓이 무엇인지 짚어본다. (+추가) Spring Boot 환경에서 구현 및 구체적으로 학습 진행중.. 1장 - 웹소켓만으로 구현 (완) 2장 - 웹소켓 + SockJS 구현 (완) 3장 - STOMP + 채팅방 나누기 (완) 4장 - RabbitMQ 메세지 브로커 (완) [Spring Boot] WebSocket과 채팅 (1) 일전에 WebSocket(웹소켓)과 SockJS를 사용해 Spring 프레임워크 환경에서 간단한 하나의 채팅방을 구현해본 적이 있다. [Spring MVC] Web Socket(웹 소켓)과..
Spring 프레임워크를 공부하던 도중, 문득 회원가입 시 E-mail 인증이 필요할 경우 서버에서 E-mail을 보내게 되는데, 이는 어떻게 작동하는건지 궁금해서 찾아보고 실습해보았다. 이메일 보내는 것을 하기 전, 간단히 메일 전송의 원리와 전자우편, 프로토콜에 대해 알아보았다. 메일 전송의 원리 사용자는 Mail Client와 같은 프로그램을 통해 메일을 작성 후, SMTP(Simple Mail Transfer Protocol)를 이용해 메일 데몬으로 메세지를 전송한다. 메일 데몬은 종단 간 Client의 주소를 분석하고 가장 가까운 (송신자 소속)Mail Server로 메세지와 정보를 넘긴다. (메일 데몬은 일종의 process로, 송신자의 메일과 정보를 메일 서버가 해석 가능하도록 가공한다.) ..