책/스프링 부트와 AWS로 혼자 구현하는 웹 서비스(5)
-
[혼자 구현하는 웹 서비스] 5장 스프링 시큐리티 & OAuth 2.0
5장 스프링 시큐리티와 OAuth으로 로그인 기능 구현하기 스프링 시큐리티와 OAuth 모두 인프런 또는 생활코딩 강의를 통해 한 번씩 접해본 기술이다. 하지만 실제 서비스에 사용되는 것처럼 코드를 작성해 본 적이 없었기 때문에, 흥미롭게 진행하였다. 1. 스프링 시큐리티와 OAuth 스프링 시큐리티는 막강한 인증과 권한부여 기능을 가진 프레임 워크이다. 사실상 스프링 기반의 애플리케이션에서는 보안을 위한 표준이라고 보면 된다. 수많은 서비스에서 소셜 로그인을 사용하는 이유는 해당 과정을 직접 구현할 경우 굉장히 많은 내용을 구현해야 하기 때문이다. 대표적으로 로그인 시 보안, 비밀번호 찾기, 비밀번호 변경, 회원가입 시 인증절차 등이 있다. OAuth를 이용한 소셜 로그인 기능을 사용하면 해당 기능들을..
2020.07.17 -
[혼자 구현하는 웹 서비스] 4장 머스테치로 화면 구성
4장 머스테치로 화면 구성 책이 아닌 강의로 스프링 공부를 할 때, 화면 구성을 위해서 Thymeleaf를 많이 사용하였다. 화면 구성 자체가 관심 분야가 아닌 탓인지, 문법이 어려운 탓인지 흥미가 잘 가지 않았었다. 이해하며 작성하기 보단, 그때그때 필요한 내용을 검색하여 무작정 사용한 적이 많았던 것 같다. 머스테치는 그보다 훨씬 간단해서 사용하기 편하다고 하니 열심히 공부해서, 잘 사용하는 템플릿 엔진으로 만들고 싶다. 1. 서버 템플릿 엔진과 머스테치 일반적으로 웹 개발에 있어 템플릿 엔진이란, 지정된 템플릿 양식과 데이터가 합쳐져 HTML 문서를 출력하는 소프트웨어를 이야기한다. 그렇다면, 서버 템플릿 엔진은 말 그대로 서버 측에서 동작하는 템플릿 엔진이다. 대표적으로 JSP, Freemarke..
2020.07.08 -
[혼자 구현하는 웹 서비스] 3장 JPA로 데이터베이스 다뤄보자
3장 JPA JPA가 무엇인지는 알고 있었지만, 직접 사용해보게 된 것은 처음이었다. 실제로 스프링 프로젝트를 JPA 없이 몇 번 진행해 보았는데, 쿼리문을 작성하는데 꽤나 많은 시간이 필요했다. 자사 서비스를 개발하는 대부분의 곳에서 SpringBoot와 JPA를 전사 표준으로 사용한다고 하니, 개념을 잘 익히고 연습해 봐야겠다. 1. JPA란? 현대의 웹 애플리케이션에서 관계형 데이터베이스는 빠질 수 없는 요소이다. 관계형 데이터베이스는 쉽게 말해 키와 값으로 이루어진 데이터 베이스 형태이다. 관계형 데이터베이스는 SQL만 인식할 수 있기 때문에, 프로젝트에는 애플리케이션 코드보다 SQL이 더 많아지는 상황이 벌어지게 되었다. 실제 현업에서는 수십, 수백 개의 테이블이 있는데, 각각의 테이블에 CRU..
2020.07.06 -
[혼자 구현하는 웹 서비스] 2장 스프링 부트에서 테스트 코드를 작성하자
2장 스프링 부트에서 테스트 코드 테스트 코드는 내가 관심있게 공부한 분야이기도 하다. 어떠한 책이나 플랫폼을 통해 공부해도 테스트 코드의 중요성은 항상 강조하는 것 같다. 이 책에서 또한 스프링 부트에서의 테스트 코드 작성법에 대해 기본적인 내용을 배울 수 있었다. 1. 테스트 코드 개발자로 취업하기 위해 공부중인 사람이라면 누구나 한번쯤 우대사항에 적혀있는 테스트 코드 작성경험을 본 적이 있을 것이다. 그만큼 대부분의 IT 서비스 회사가 테스트 코드를 중요시 하고 있다. 견고한 서비스를 만들기 위해서는 TDD를 하거나 최소한 단위 테스트 코드를 꼭 작성해야 한다는 이유이다. TDD와 단위 테스트 코드에는 차이점이 있다. TDD는 테스트가 주도하는 개발을 뜻한다. 즉, 테스트 코드를 먼저 작성하는 개발..
2020.07.01 -
[혼자 구현하는 웹 서비스] 1장 인텔리제이로 스프링 부트 시작하기
1장 인텔리제이로 스프링 부트 시작 '스프링 부트 시작하기'라는 교재를 통해 환경설정부터 배포까지의 과정을 한번 겪었던 나는, 당시에 버전문제 때문에 꽤 많은 시간을 잡아먹었다. 이 책은 친구의 추천으로 보기 시작하였는데 버전이 비교적 최신이어서 구매하게 되었다. 이 책의 마지막까지 끝내고 나면 무중단 배포가 이루어진 하나의 애플리케이션을 배포할 수 있을것으로 기대하고 있다. 더불어 환경설정부터 전 과정을 다시한번 반복하여 연습한다는 것에 의의를 두고 정리를 시작하게 되었다. 1. 인텔리제이 자바 웹 개발에 있어 대표적인 개발 도구는 이클립스이다. 하지만 이클립스에 비해 인텔리제이가 갖는 여러 강점이 있다고 한다. 강력한 추천기능 훨씬 더 다양한 리팩토링과 디버깅 기능 이클립스의 깃에비해 훨씬 높은 자유..
2020.07.01