본 포스팅은 백기선님의 스프링과 JPA 기반 웹 애플리케이션 개발 강의를 참고하여 작성하였습니다. 소스 코드는 여기 있습니다. (commit hash: 821d983) > git clone https://github.com/lcalmsky/spring-boot-app.git > git checkout 821d983 ℹ️ squash merge를 사용해 기존 branch를 삭제하기로 하여 앞으로는 commit hash로 포스팅 시점의 소스 코드를 공유할 예정입니다. Overview 프로필 뷰를 구현합니다. Description 프로필은 누가 보느냐에 따라 달라지고 정보 입력 유무에 따라 달라져야 합니다. 인증된 사용자가 자기 프로필 화면을 조회할 때는 편집 가능해야하고, 다른 사람의 프로필을 조회할 때는 ..
본 포스팅은 백기선님의 스프링과 JPA 기반 웹 애플리케이션 개발 강의를 참고하여 작성하였습니다. 소스 코드는 여기 있습니다. (commit hash: f4673f8) > git clone https://github.com/lcalmsky/spring-boot-app.git > git checkout f4673f8 ℹ️ squash merge를 사용해 기존 branch를 삭제하기로 하여 앞으로는 commit hash로 포스팅 시점의 소스 코드를 공유할 예정입니다. Overview 로그인과 로그아웃 기능을 구현합니다. 로그인 화면을 작성하고 spring security 패키지를 활용해 로그인을 처리합니다. Implementation 먼저 SecurityConfig 클래스를 수정하여 로그인, 로그아웃 관련 ..
본 포스팅은 백기선님의 스프링과 JPA 기반 웹 애플리케이션 개발 강의를 참고하여 작성하였습니다. 소스 코드는 여기 있습니다. (commit hash: 64fc2aa) > git clone https://github.com/lcalmsky/spring-boot-app.git > git checkout 64fc2aa ℹ️ squash merge를 사용해 기존 branch를 삭제하기로 하여 앞으로는 commit hash로 포스팅 시점의 소스 코드를 공유할 예정입니다. Overview 가입 이후 이메일 인증을 유도할 수 있는 안내를 추가하고, 이메일 인증 메일을 재전송 할 수 있는 기능을 구현합니다. Implementation 먼저 가입을 모두 마쳤을 때 홈 화면으로 돌아가게 되는데 그 때 이메일 인증을 안내..
본 포스팅은 백기선님의 스프링과 JPA 기반 웹 애플리케이션 개발 강의를 참고하여 작성하였습니다. 소스 코드는 여기 있습니다. (commit hash: a7de4fe) > git clone https://github.com/lcalmsky/spring-boot-app.git > git checkout a7de4fe ℹ️ squash merge를 사용해 기존 branch를 삭제하기로 하여 앞으로는 commit hash로 포스팅 시점의 소스 코드를 공유할 예정입니다. Overview 이번 포스팅에서는 내비게이션 바에 아이콘 추가하고, 프로필 기본 이미지(아바타)를 설정합니다. 라이브러리 설치 사용할 라이브러리를 static resource 디렉토리에 설치합니다. > cd src/main/resources/s..
본 포스팅은 백기선님의 스프링과 JPA 기반 웹 애플리케이션 개발 강의를 참고하여 작성하였습니다. 소스 코드는 여기 있습니다. (branch: feature/10) Overview 스프링 부트에서 프론트엔드 라이브러리 설정하는 방법을 알아봅니다. NPM (Node Package Manager)을 사용하여 dependency를 관리하고 package.json을 이용해 빌드합니다. Front-end 라이브러리 설정 스프링 부트에서는 src/main/resources/static 디렉토리 하위 디렉토리들을 모두 정적 리소스로 제공합니다. (기본 설정이고 변경할 수 있습니다.) 즉, 어떤 툴을 이용해서든 해당 디렉토리 안에 리소스가 존재하도록 설정하게 되면 라이브러리를 이용할 수 있습니다. 리소스가 존재하게 하..
본 포스팅은 백기선님의 스프링과 JPA 기반 웹 애플리케이션 개발 강의를 참고하여 작성하였습니다. 소스 코드는 여기 있습니다. (branch: feature/9) ⚠ Warning: 기존에 프로젝트 생성시 의도했던 것은 multi module 프로젝트를 구성하는 것이었는데 굳이 그렇게 할 필요성을 느끼지 못해 사용하던 패키지명을 수정하였습니다. 이전 포스팅을 따라서 작성하시던 분들이 계시다면 이 점 유의해주시기 바랍니다. Overview 회원 가입 완료(이메일 인증 완료)시 자동 로그인처리가 되도록 합니다. [Spring Security 내에서 로그인을 다루는 방법] SecurityContext - Authentication(Token) UsernamePasswordAuthenticationToken [..
본 포스팅은 백기선님의 스프링과 JPA 기반 웹 애플리케이션 개발 강의를 참고하여 작성하였습니다. 소스 코드는 여기 있습니다. (branch: feature/8) Overview 회원 가입시 전송한 이메일을 확인하여 회원을 인증하는 절차를 개발합니다. 회원 가입시 다시 서버로 요청할 수 있게 토큰을 포함한 링크를 전송하고 사용자가 해당 링크를 클릭했을 때 토큰이 일치하면 가입 완료 처리합니다. 이메일 인증을 하는 이유는 무작위로 생성하는 이메일 계정을 허용하지 않기 위함이고, 서비스 내에서의 메일 전송 기능을 제대로 활용할 수 없기 때문입니다. 이메일 인증을 대체할 수 있는 방법은 소셜 인증 등이 있습니다. 인증 링크로 접근했을 때 노출될 화면과 인증 로직을 개발해야 합니다. 이메일 인증 개발 입력 값에..
본 포스팅은 백기선님의 스프링과 JPA 기반 웹 애플리케이션 개발 강의를 참고하여 작성하였습니다. 소스 코드는 여기 있습니다. (branch: feature/6) Overview 지금까지 작성한 코드를 리펙터링합니다. 리펙터링 전에 테스트 코드를 작성하면 리펙터링 이후에도 견고한 테스트 코드를 작성했는지 추가로 확인할 수 있습니다. 테스트 할 것을 정의합니다. 회원 가입시 이상한 값이 입력된 경우 다시 회원 가입 화면으로 리다이렉트 하는지 확인 에러가 잘 노출 되는지 확인 회원 가입시 정상적인 값이 입력된 경우 가입한 회원 데이터가 존재하는지 확인 이메일이 보내지는지 확인 리팩터링시 고려해야할 부분입니다. 메서드의 길이 너무 길면 메서드를 나눔 코드 가독성 코드의 위치 객체들 사이의 의존 관계 클래스의 ..
본 포스팅은 백기선님의 스프링과 JPA 기반 웹 애플리케이션 개발 강의를 참고하여 작성하였습니다. 소스 코드는 여기 있습니다. (branch: feature/5) Overview 회원 가입 폼을 검증하는 방법과 회원 가입을 처리하는 방법에 대해 공부합니다. 애너테이션을 이용한 검증과 커스텀 검증을 모두 사용하고, 에러가 있을 경우 회원 가입을 처리하지 않습니다. 모든 값이 유효할 회원 정보를 저장하고, 이메일 정보를 발송한 뒤 홈으로 이동하는 과정까지 개발합니다. Prerequisite Dependencies build.gradle의 dependencies에 spring-boot-starter-validation 패키지를 추가합니다. dependencies { // 생략 implementation 'or..
본 포스팅은 백기선님의 스프링과 JPA 기반 웹 애플리케이션 개발 강의를 참고하여 작성하였습니다. 소스 코드는 여기 있습니다. (branch: feature/4) Overview Bootstrap, Thymeleaf, HTML, CSS를 사용하여 회원 가입 페이지를 작성하고 요청시 보여줍니다. 회원 가입시 받을 수 있는 정보를 폼 객체로 제공합니다. Prerequisite 부트스트랩(Bootstrap) 설정 위 값을 복사해서 sign-up.html 파일의 head 태그 안쪽에 추가하고 title 태그 안쪽의 값을 원하는 제목으로 수정합니다. ... 생략 그리고 body 태그 안쪽에 아래 스크립트를 추가합니다. 위 스크립트는 부트스트랩에서 필요로하는 JS function 들을 사용할 수 있게 해줍니다. 예..
- Total
- Today
- Yesterday
- 스프링 부트 애플리케이션
- 함께 자라기 후기
- Spring Boot Tutorial
- 헥사고날 아키텍처
- JSON
- gRPC
- r
- 함께 자라기
- proto3
- Linux
- Spring Data JPA
- JPA
- Spring Boot JPA
- 스프링부트
- Jackson
- spring boot application
- 스프링 부트 튜토리얼
- QueryDSL
- spring boot app
- Spring Boot
- 스프링 부트
- @ManyToOne
- intellij
- 클린 아키텍처
- Java
- 알고리즘
- 스프링 부트 회원 가입
- leetcode
- 스프링 데이터 jpa
- spring boot jwt
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |