Loading...
2020. 8. 26. 13:00

[Spring] Jib(지브)를 이용한 Docker 이미지 만들기

https://blog.neonkid.xyz/228 [Spring boot] 애플리케이션을 Docker 이미지로 만들기 Old & New Spring boot로 개발한 서버를 운영하기 위해서는 인스턴스에 서버 애플리케이션을 배포해야 합니다. 애플리케이션을 배포하는 방법에는 WAS로 배포하는 방법도 있지만 Docker 컨테이너 이미지를 만�� blog.neonkid.xyz 위 포스트에서 두 가지 방법을 이용해 Spring boot 애플리케이션을 Docker 이미지로 만들 수 있었습니다. 그러나 Dockerfile을 직접 작성하기에는 스크립트를 작성하기 어려운 분들한테는 러닝 커브가 부담이었다는 것이 다소 아쉬웠던 부분이었는데요. Google Jib 위와 같이 보통 Docker 이미지를 만들고자 한다면, 프..

2020. 8. 10. 18:12

[Spring boot] Spring boot Security를 이용한 OAuth2 인증 구현 1 - Google 계정 인증

지난 포스트에 이어서, 오늘은 새로운 프로젝트를 생성하여 Spring boot Security 디펜던시를 이용해 OAuth2 인증을 구현하는 시간을 가져보고자 합니다. 지난 포스트에서 OAuth2 인증을 구현하기 위해 인증 토큰과 액세스 권한을 얻는 방법에 대해 알아봤습니다. 클라이언트에서 권한 서버를 통해 권한을 확인하고, 부여 받은 ID와 Secret를 이용하여 토큰을 받는 방식이었죠. 이를 토대로 Spring boot security를 이용하여 회원 가입과 인증을 동시에 어떻게 구현할 수 있는지 지금부터 살펴보도록 하겠습니다. 이 포스트는 기본 애플리케이션으로 하여금, OAuth2 로그인부터 User Entity 연동까지 다룰 것이며 이번에 다룰 것은 기본적인 Spring boot security ..

2020. 6. 4. 11:48

[Spring boot] 애플리케이션을 Docker 이미지로 만들기 Old & New

Spring boot로 개발한 서버를 운영하기 위해서는 인스턴스에 서버 애플리케이션을 배포해야 합니다. 애플리케이션을 배포하는 방법에는 WAS로 배포하는 방법도 있지만 Docker 컨테이너 이미지를 만들어서 Docker 이미지로 배포하는 방법도 존재합니다. 이번 포스트에서는 Spring boot에서 개발한 애플리케이션을 Docker로 만드는 방법에 대해 이야기 해보도록 하겠습니다. Install Docker 먼저 Docker 이미지를 만들기 위해서 내 컴퓨터에 Docker가 설치되어 있어야 합니다. 아래의 포스트를 참고하여 Docker를 설치해주세요. 2016/07/06 - [Infrastructure/Docker] - Docker, 그것은 무엇이고, 설치는 어떻게할까? Docker, 그것은 무엇이고, ..

2020. 5. 19. 21:47

[Spring boot] MVC 패턴을 이용한 REST API 개발

지난 포스트에서 REST API가 무엇인지, 어떻게 설계를 해야하는지에 대해서 다뤄봤습니다. REST API는 HTTP Method를 이용하여 행위를 정하고, URI를 이용해서 리소스를 정하는 방식으로 동작하는 서버였는데요. 이번 포스트에서는 MVC 패턴 + Spring boot 2.x 조합을 이용하여 간단한 REST API 서버를 개발해보도록 하겠습니다. What is MVC ? MVC 패턴에 대해서는 아래의 글에서 다뤄 본적이 있는데요. 혹시 MVC 패턴에 대해 다시 복습해보시거나, 잘 모르신다면, 아래의 글을 보시기 바랍니다. 2016/12/29 - [Programming/JavaFX] - MVC Pattern에 기반한 GUI 라이브러리 JavaFX MVC Pattern에 기반한 GUI 라이브러리 ..

2020. 5. 19. 18:40

[Spring boot] REST API의 기초와 설계

Spring boot가 기존의 Spring에 비해 다양한 설정들을 자동화 시켜 개발자가 설정해야 할 부분을 줄이고, 임베디드 톰캣을 탑재하여 더 쉬운 개발들이 가능해졌다는 것을 알았습니다. 이번 포스트에서는 Spring boot로 서버를 개발해보는 첫 단추인 REST API에 대해 알아보도록 하겠습니다. What is REST API ? REST API란, REST(Representational State Transfer)의 약자로 '대표적인 상태 전달'이라는 의미를 담고 있습니다. 웹과 같은 분산 하이퍼미디어 시스템에서 사용하는 통신 네트워크 아키텍처라고 보시면 됩니다. 본래 웹은 전송 방식으로 HTTP 프로토콜을, 식별 방법으로 URI를 사용하는데, 여기서 혼동하면 안되는 것은 URL과 URI는 다릅..

2020. 4. 23. 12:50

[Spring boot] Spring boot test starter를 이용한 테스트 코드 작성

지난 포스트에서 잠깐, 테스트 코드에 대해 다뤄봤었습니다. 테스트 코드를 이용하면, 확실히 Postman이나 Curl과 같은 테스트 도구없이도 자동화 된 테스트 프레임워크를 이용해서 쉽게 테스트를 할 수 있었죠. 실제로 테스트 프레임워크를 이용한 테스트 코드 구현은 현업에서 많이 이용합니다. 단순하게 내가 구현한 기능 한 단위만 테스트를 하는 것이 아닌 종합적으로 테스트할 때는 이러한 자동화가 필요합니다. 특히 프로젝트가 커지고, 그 규모가 엔터프라이즈급이 되면 애플리케이션 코드도 방대해지고, 그렇게 되면 테스트해야 할 함수도 많아지겠죠. Spring boot Test Spring boot에서는 기본적인 테스트 스타터를 제공하는데, 이 모듈에는 Junit 뿐만 아니라 왠만한 Java 계열의 언어에서 사용..

2020. 4. 22. 12:23

[Spring boot] 나만의 환경 설정 만들기

지난 포스트에서 자동 환경 설정과 개발, 프로덕션, 테스트 환경을 나누는 방법에 대해 포스팅하였습니다. 이번 포스트는 그거에 이어서, 나만의 환경 설정 파일을 만드는 방법에 대해 알아보겠습니다. @Value 우리는 환경설정에서 Property의 키를 사용하여 특정한 값을 호출할 수 있었습니다. 하지만 이 Key로 우리가 무엇을 할 것인지를 프로그래밍 코드에서 구현해야 하며, 일단 그러기 위해서는 우리는 이 값을 어떻게 가져올 수 있는지를 알아야 합니다. 그럴 때 사용하는 것이 @Value 어노테이션입니다. # application.yml server: port: 8080 spring: profiles: active: dev property: app: hello: hello world 먼저 우리는 서버의 ..

2020. 4. 21. 12:18

[Spring boot] 환경 설정의 동작 원리와 애플리케이션 환경 나누기

Spring boot 프로젝트를 생성하고 난 후, Embedded Tomcat을 이용해 쉽게 애플리케이션을 시작해보고, 테스트할 수 있는 것 까지는 좋은 것이긴 한데, Embedded Tomcat에 대한 포트 주소 등의 설정은 어떻게 하는 것일까? Property 기존의 Spring에서는 모든 설정을 XML 파일로 사용했다면, Spring boot에서는 Embedded Tomcat, Application 설정 관련 및 기타 정적인 값을 키 값 형식으로 관리합니다. Spring boot 프로젝트를 생성하면, 자동 만들어지는 application.properties는 이러한 설정을 해주는 파일입니다. 현재 애플리케이션을 실행하면 8080 포트로 설정되지만, 이 포트 주소를 바꾸고 싶다면, 아래와 같이 설정을..

2020. 4. 21. 10:59

[Spring boot] 다양한 어노테이션을 활용한 HTTP API 구현

지난 포스트에서 IntelliJ IDEA를 이용하여 Spring boot 프로젝트를 만드는 시간에 대해 알아봤습니다. 확실히 기존의 Spring에 비하여 프로젝트 생성 절차가 간단하고, 개발 환경 설정도 까다롭지 않은 모습이었습니다. 이번 포스트에서는 그에 이어서 간단한 HTTP API를 구현하는 시간을 가져보도록 하겠습니다. Hello World 가장 먼저 애플리케이션이 제대로 실행되는지 테스트하는 방법은 어떤 문구를 출력해보는 방법이 가장 좋겠죠? REST API에서 파라미터도 받지 않고, 가장 간단한 메소드로 사용할 수 있는 GET 메소드를 이용해 Hello World를 출력해보도록 하겠습니다. package xyz.neonkid.blogexample import org.springframework..

[GP] Spring boot에서 REST API 개발 시작해보기

이 글은 N.K Dev Lab에서 작성된 글입니다. 안녕하세요. N.K Dev Lab에 글을 안쓴지가 정말 오래되었네요. 올해는 저의 취업 시즌인 만큼 블로그에 글을 쓰는 것에 많이 소홀했었습니다. 더욱이 Dev Lab 리뉴얼과 관련하여 여러 일들이 있었는데, 저의 Dev Lab이 다시 Jekyll로 돌아오게 되었습니다. 이유는 여러가지가 있지만 이제 제가 취업을 하게 되면 현재 하고 있는 일들을 조금 미리 간소화 하는 작업이라고 보시면 될 것 같습니다. 한 가지 예를 들어, 이제 Dev Lab에 올리는 글은 저의 손에 의해 수동으로 NKLAB(Tistory)에 게시되지 않고 자동화 된 코드에 의해서 올라가게 되는 작업 등 Hugo 보다는 Jekyll이 좀 더 편하더군요. 본론으로 넘어가서, 오늘은 Sp..