Monthly Archives: 4월, 2019

Spring Boot Oauth2 – AuthorizationServer

Spring 프레임웍에서 제공하는 Oauth2 프로젝트를 이용하여 Oauth Authorization Server를 구축해 보겠습니다. Oauth Authorization은 클라이언트가 서비스 제공자로부터 회원 리소스를 제공받기 위해 인증 및 권한 부여를...

Java Collections – List, Map, Set, Tree, Stack, Queue, Deque

Java에서 데이터의 목록을 저장하는 자료구조인 Collections에 대하여 알아봅니다. Collection에 속해있는 다양한 자료구조를 살펴보고 특징 및 사용법에 대하여 실습해 보겠습니다. List Collection 다수의 데이터(객체)를 순서대로 저장하는 자료구조.저장...

Redis – install

Redis는 데이터베이스, 캐시 및 메시지 브로커로 사용되는 오픈 소스 in-memory 데이터 구조 저장소입니다. string, hashes, lists, sets, sorted sets 데이터 구조를 지원하며. pub/sub를 통한...

Intellij에서 Github의 Spring Gradle Project import 하기

Intellij에서 Github의 Spring Project를 로컬로 Clone 하여 프로젝트를 구성하는 방법에 대해 알아보겠습니다. 참고로 Gradle로 구성된 SpringBoot 기준입니다. Github 프로젝트 주소 복사 Github로 이동하여 clone or...

Spring initializr로 Spring 프로젝트 생성하기

이번 실습에서는 Spring initializr를 이용하여 스프링 프로젝트를 생성해 보겠습니다. 스프링 프로젝트는 초기 생성시 설정이 간소화 되었다고 해도 초심자가 구성하기에는 어려움이 있는것이 사실입니다. 그런 사실을 인지해서인지...

Linux Command – touch, mkdir, rm, cp, mv, du, df

touch - 빈 파일 생성 $) touch hello.txt mkdir - 디렉터리 생성 $) mkdir hellodir rm - 파일 삭제 $) rm hello.txt rm - 확인 없이 파일 삭제 $) rm -f...

Linux Command – cd, dirname, basename, id, uname, cpuinfo, meminfo, locale, ps, kill, top

커서 이동 맨앞으로 : Ctrl+a, 맨뒤로 : Crtl+e pwd : 현재 디렉터리 확인 $ pwd /home/ubuntu cd : 디렉터리 이동 # 계정의 home 디렉터리로 이동 $)...

Java Collectors 알아보기

Stream 의 마지막 단계에서 사용되는 Java Collector에 대해 살펴보겠습니다. 1. Stream.collect() Stream.collect()는 데이터의 중간 처리 후 마지막에 원하는 형태로 변환해 주는 역할을 합니다. collector는 아래와...

SpringBoot2로 Rest api 만들기(10) – Social Login kakao

이번 장에서는 Rest api에 카카오 로그인 연동을 해보겠습니다. 카카오의 로그인은 Oauth2 방식을 따르고 있습니다. Oauth2에 대한 자세한 플로우는 다음 링크를 참고하시기 바랍니다. https://d2.naver.com/helloworld/24942Facebook...

SpringBoot2로 Rest api 만들기(9) – Spring Starter Unit Test

이번 시간에는 지금까지 만든 api를 Unit Test 하여 검증해보는 시간을 갖겠습니다. 현재 개발한 api는 별다른 로직이 없어 Unit Test가 공수 대비 효용성이 없어 보입니다. 하지만...

소나큐브(Sonarqube)를 통한 코드 분석 및 코드 품질 향상

소나큐브는 지속적으로 코드의 품질을 높이고 유지 보수하는데 도움을 주는 정적 분석 애플리케이션입니다. 분석 기능이 탁월하고 개선사항도 자세하게 안내해 줍니다. 간단하게는 코딩 컨벤션부터 코드의 잠재적인 위험 사항까지 안내해주어 올바른 코딩 습관과 코드의 품질향상에 많은 도움을 줍니다. Sonarqube features Linux, Window, Mac 등 다양한 환경에서 모두 구동이 가능합니다. 20개가 넘는 프로그램 언어에 대한 코드 분석을 지원합니다. 개발된 코드의 품질을 어드민을 통해 확인해 볼 수 있고 지속적으로 관리가 가능합니다. 품질 게이트를 통해 표준화된 코드 품질 요구사항을 설정할 수 있습니다. Jenkins 같은 CI엔진과 통합되어 분석이 가능합니다. IDE와 연동되는 다수의 Plugin을 통해 분석이 가능합니다.  다운로드 및 설치 https://www.sonarqube.org/downloads/ 에서 다운로드하고 압축을 해제합니다. 소나큐브 서버 실행 실습은 윈도우 환경하에서 진행합니다. 서버 실행 후에는 어떤 플랫폼이든 사용에 별 다른 점은...

SpringBoot2로 Rest api 만들기(8) – SpringSecurity 를 이용한 인증 및 권한부여

이번 시간에는 SpringSecurity를 이용하여 api 서버의 사용 권한을 제한하는 방법에 대해 알아보도록 하겠습니다. 지금까지 개발한 api는 권한 부여 기능이 없어 누구나 회원 정보를 조회,...

WordPress에 Google Login 추가하기(NextEnd Social Login plugin)

Google Login을 WordPress에 설정하는 방법을 진행하겠습니다.아래 링크 내용 중 0. 선결 과제에 해당하는 내용은 중복되는 내용이라 따로 진행하지 않습니다. 워드 프레스 사이트가 https를 지원하지...

WordPress에 Facebook Login 추가하기(NextEnd Social Login plugin)

WordPress를 설치하고 Facebook Login을 설정하면서 겪은 내용을 정리합니다. 설정 완료할 경우 로그인 화면에 Continue with Facebook이라고 버튼이 생기고 Facebook으로 로그인이 가능하게 됩니다. 0. 선결 과제 페이스북...

SpringBoot2로 Rest api 만들기(7) – MessageSource를 이용한 Exception 처리

이번 시간에는 Spring에서 메시지를 처리하는 방법에 대해 알아보고, MessageSource를 이용하여 Exception Message를 고도화해 보도록 하겠습니다. Spring에서는 다국어를 처리하기 위해 i18n 세팅을 지원하고 있습니다. i18n이 무엇인가...

SpringBoot2로 Rest api 만들기(6) – ControllerAdvice를 이용한 Exception처리

이번 장에서는 api 처리 중 특정한 Exception이 발생할 경우 공통으로 처리하는 방법에 대해 알아보겠습니다. Spring에서는 이와같은 처리를 위해 ControllerAdvice annotation을 제공하고 있으며 이...

SpringBoot2로 Rest api 만들기(5) – API 인터페이스 및 결과 데이터 구조 설계

이번 시간엔 api 서버 개발을 본격적으로 진행해 보기 위해 현재 api 인터페이스 및 결과 데이터의 구조를 살펴보고 확장 가능한 형태로 설계해 보겠습니다. api는 제공...

SpringBoot2로 Rest api 만들기(4) – Swagger API 문서 자동화

앞서 개발한 api는 테스트를 위해 Postman을 따로 설치해야 하는 불편함이 있었습니다. 요번에 설명하려는 Swagger라는 문서 자동화 툴은 간단한 설정만으로도 테스트 가능한 Web UI를...

SpringBoot2로 Rest api 만들기(3) – H2 Database 연동

이번 시간에는 SpringBoot에 Database를 연동하는 방법을 실습합니다. 실습은 H2 database로 진행하겠습니다. H2 Database H2는 최소한의 리소스로 실행 가능한 경량 DB로서 테스트 용으로 사용하기 알맞은 DB입니다. 서버...

SpringBoot2로 Rest api 만들기(2) – HelloWorld

이번 시간에는 앞 장에서 실습한 프로젝트를 기반으로 HelloWorld를 만들어 보겠습니다.java code 개발은 src/main/java 하위에 package를 생성하고 진행합니다. package란? java 라이브러리들 간의 충돌을 막기 위해...

Most Read