전체 글
![[Swagger] Swagger를 이용해 API 문서를 자동으로 만들어보자](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmwjcI%2FbtqMJE3of5O%2FfznMRoKJOB4xJ5bqD2iBt0%2Fimg.png)
[Swagger] Swagger를 이용해 API 문서를 자동으로 만들어보자
[Swagger] API 명세도구를 사용해보자 왜 쓰게 됬나면... 사이드 프로젝트로 MSA 프로젝트를 하고있는데, API 명세가 확실하게 되어있지 않아 아래의 문제점이 발생했다. 내가 구현한 API가 정말 RESTful 한지 알 수 없었다. 클라이언트 프 logical-code.tistory.com 이전 포스팅에 이어, 이번에는 Swagger를 이용해서 API 문서를 자동으로 만들어보도록 한다. 아래 예제는 현재 진행중인 사이드 프로젝트를 대상으로 적용했다. 의존성 추가 사이드 프로젝트가 Maven 으로 의존성을 관리하고 있으므로, Maven 기준으로 설명합니다. pom.xml에 아래 의존성을 추가합니다. io.springfox springfox-swagger2 2.9.2 io.springfox spr..
![[Swagger] API 명세도구를 사용해보자](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Flj4Ax%2FbtqMcRYg9x1%2FJMswjT4yFyuqW1gZBJUfJK%2Fimg.png)
[Swagger] API 명세도구를 사용해보자
왜 쓰게 됬나면... 사이드 프로젝트로 MSA 프로젝트를 하고있는데, API 명세가 확실하게 되어있지 않아 아래의 문제점이 발생했다. 내가 구현한 API가 정말 RESTful 한지 알 수 없었다. 클라이언트 프로젝트에서 요청을 보내야할 API를 찾기위해 관련 프로젝트를 모두 열어 확인해야했다. Rabbit MQ를 이용해 프로세스간 통신을 구현해야 하는데, 설계에 대한 내용이 없어 프로세스간 통신을 설계하기가 힘들 것 같았다. 그래서 각 어플리케이션별 구현한 API를 취합해 엑셀로 정리를 해봤다. 그런데 여기서 또 문제가 발생했는데 일일이 엑셀 파일에 구현 내용이나 설계 내용을 입력해야했다. 그래서 매우 귀찮았다. 그런데 엑셀 파일이 없어지면 이 수고로움이 헛수고가 됬다. 그리고 세련되지 않은 방법이었다...
![[Github] 할로윈에는 Contribution 색상이 바뀐다](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJu9Zo%2FbtqMckmhlCC%2F7WFTPFeotUcycrfis9QFMk%2Fimg.png)
[Github] 할로윈에는 Contribution 색상이 바뀐다
오늘은 할로윈이다. 하지만 시국이 시국인지라 다른건 하지 않고 코딩이나 하기로했다. 사실 할로윈은 인싸들이나 챙기는 그런 명절이라 이시국이 아니어도 챙길일이 없다. 나는 요즘 항상 깃허브를 로그인해두고 다른 일을 시작한다. 그동안 쌓인 Contribution 뽕에 취하기 위함인데, 보면 볼수록 스스로 대견함과 만족스러움을 느낄 수 있기 때문이다. 만약 자존감이 부족하다면 쓸데없는짓 하지말고 1일 1커밋을 해보자. 오늘도 깃허브에 접속했는데 Contribution 색상이 낙엽 색깔로 바뀌어있었다. 가을이라 바꿔준건가 했는데, 할로윈 기념으로 바뀐거라고 한다. 크리스마스에는 어떻게 바뀌려나. 궁금하다.
Enum을 사용해보자
요즘 1일 1커밋을 목표로 사이드 프로젝트를 진행중입니다. 애견샵을 관리하는 사이트를 만드는 프로젝트인데, 개 품종, 결재 수단 같은 거의 반 고정적이면서 비즈니스 로직에서 활용하는 데이터가 존재해 어떻게 처리를 할 지 고민하다 Enum을 사용해 처리를 했죠. 그 과정을 아래에 정리해봤습니다. 왜 Enum 을 사용했냐면... 맨 처음 생각한 방법은 데이터별 코드 테이블을 만들어 사용하는 방법이었습니다. 현재 회사에서 같은 방식으로 구성중이라 가장 먼저 생각난 방법입니다. 그러나 같은 이유로, 단점 또한 바로바로 생각이 났죠. 데이터를 활용하기 위해서는 반드시 DB를 조회해와야 합니다. 실제 비즈니스 로직의 코드 상에는 코드 값이 사용되고있어, 이 값이 의미하는 것을 바로 이해하기 어려웠습니다. 만약 코드..
![[Naver Developer Open Class] 립스탑 백을 받았다](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmgRaZ%2FbtqIyc5Tei7%2FkIFkxL36Y6yXggdJ4YVPLk%2Fimg.jpg)
[Naver Developer Open Class] 립스탑 백을 받았다
이번 네이버 오픈 클래스를 듣게되었는데, 6회차까지 모두 출석을 한 사람을 대상으로 립스탑 백을 보내주셨다. 사실 오픈 클래스를 들으면서 알게된게 더 많았는데, 선물까지 주신다니 네이버의 은혜는 하해와도 같구나. 실제 지원 목적보다는 개발자로서 이런저런 팁을 얻으려고 신청했었는데... 선물까지? ㄴ'ㅇ'ㄱ 원래는 매 회차마다 리뷰를 써보고 싶었는데, 공부해야할 것도 많았고 회사 일도 많아 쉽지 않았다. 그리고 또... 내가 작문을 못해서 맘 잡고 글쓰기 시작하지 않으면 이력서도 못쓰는 타입인 것도 한 몫했다. 한마디로 귀찮아서 못했다 이말이다. 택배 포장을 뜯으니 NAVER 라는 로고가 박힌 지퍼백에 립탑백이 담겨있었다. 보고나서 처음 든 생각은 NAVER 라는 글자가 참 예쁘다 였고 그 다음은 가방이 ..
WebSocketSession에서 HttpSession를 얻는 방법
개발 환경 JDK : Oracle JDK 1.8 WS : Apache 2.4 WAS : Apache Tomcat 9 웹 소켓을 이용해 채팅 프로그램을 만들었는데, 채팅 UI에서 사용자 이름을 표현하거나 채팅 로그를 남길 때 HttpSession에 저장해둔 로그인 사용자 정보를 이용하고 싶어서 구현해보았습니다. 우선 알아두어야할 것은 아래와 같습니다. 웹 소켓 세션과 서블릿 세션은 다릅니다. 때문에, 웹 소켓 세션에서 우리가 흔히 이야기하는 세션(HttpSession)에 접근할 수가 없습니다. 00. 사전 준비 우선 Apache에 웹 소켓 통신을 위한 세팅을 해주어야합니다. 아파치 설치경로/conf/httpd.conf 파일을 열어 아래 모듈들을 로드해주세요. 아마 대부분 작성이 되어있고 주석을 해제하시면 ..