- SSAFY 10기 프로젝트
- 6인 1팀, Backend 담당
구현 사항 | 프로젝트 전 | 프로젝트 후 |
랭킹 API | Python 으로 변수 선언하고, 반복문과 조건문을 사용할 수 있음 | Java 로 변수 선언하고, 반복문과 조건문을 사용할 수 있음 |
Django 를 이용해 CRUD 를 수행할 수 있음. | Spring 에서 3계층 (Presentation/Service/Persistence) 의 역할에 대해 이해함. | |
Spring 에서 controller , service , entity , repository 패키지의 역할과 그 안에 들어가는 자바 클래스를 작성할 수 있음. | ||
Spring Data Redis 를 사용해서 자료구조 Sorted Set 을 사용한 CRUD 를 Spring 을 통해 구현할 수 있음. | ||
프로필 사진 변경 API | Django 를 통해 TMDB API 로 불러온 사진을 SQLite 에 저장하고, 웹사이트에 띄울 수 있음 | AWS S3 버킷에 Java 를 사용하여 사진 파일을 업로드 할 수 있음. |
mariaDB에 기존에 저장된 프로필 사진이 있는지 없는지를 검사하여 변경된 사진의 AWS S3 URL 을 저장할 수 있음. |
- SSAFY 10기
- 6인 1팀, Backend, Infra 담당
구현 사항 | 프로젝트 전 | 프로젝트 후 |
AWS EC2 를 이용한 WAS 구성 |
서버에 접속하는 방법을 모름 | 리눅스 명령어를 통해 서버에 접속할 수 있음 |
로컬에서만 디버깅이 가능함 | 배포된 상태에서 서버에 접속해서 디버깅에 필요한 로그를 읽을 수 있음 | |
Git 관련 | Git branch 전략에 따라 feat/** branch 를 생성, 수정, 삭제할 수 있음 | develop 브랜치에 merge 후 conflict 발생 시 IntelliJ 내장 git 을 사용하여 필요한 소스 코드를 남길 수 있음 |
냉장고에 들어 있는 재료 CRUD API | Monolithic 환경에서만 개발이 가능함 | MSA 가 구축된 환경에서 OpenFeign 을 사용해 서비스 간 통신하여 API 를 구현할 수 있음 |
- SSAFY 10기
- 6인 1팀, Infra 담당
구현 사항 | 프로젝트 전 | 프로젝트 후 |
Docker 를 이용한 Image , Container 관리 | 기존에 작성된 Dockerfile 을 활용할 수 있음 | 필요에 따라 Dockerfile 을 작성할 수 있음 |
미리 작성된 Docker 명령어를 입력할 수 있음 | Docker Image , Container 의 개념을 이해함 | |
container 가 생성되고 삭제될 때마다 정보를 다시 불러옴 | Docker mount 의 개념을 이해하고 필요한 정보를 host <-> container 간 공유하도록 할 수 있음 | |
NGINX 를 이용한 Web Server 구축 | 미리 작성된 NGINX 파일을 복붙할 수 있음 | NGINX 의 역할을 이해하고, URL 에 따라 프론트엔드 혹은 백엔드로 요청을 보내도록 설정 파일을 작성할 수 있음 |
Jenkins 를 이용한 CI/CD 구축 | 미리 작성된 Jenkinsfile 을 사용할 수 있음 | Jenkins 의 secret text 기능을 이용해 중요 정보가 Gitlab 에 노출되지 않도록 할 수 있음 |
제공된 .pem 파일을 통해 리눅스에 SSH 방법을 사용해 로그인 할 수 있음 | shell script 명령어를 사용해 원격으로 리눅스에 SSH 방법으로 로그인 할 수 있음 |
- 개인 프로젝트 (진행중)
- 사용한 교재 : 스프링 부트 3 백엔드 개발자 되기: 자바 편
- Github Issue 내역
https://github.com/shinsunyoung/springboot-developer-2rd/issues/15
[Ch06 / p.152, 154, 159 / BlogApiController] @PathVariable -> @PathVariable("id") 변경 고려 요청 · Issue #15 · shinsunyo
선영 저자님 안녕하세요 :) 코드가 깔끔하고 가독성이 좋아서 많이 배우고 있습니다. 제가 실습했던 환경에서는 parameter 를 명시해주지 않았을 때, Exception 이 발생해서 리뷰 남깁니다. 찾아보니
github.com
https://github.com/shinsunyoung/springboot-developer-2rd/issues/16
[Ch07/p.186] @RequestParam(required = false) Long id -> @RequestParam(value="id", required = false) Long id 변경 고려 요청
선영 저자님 , 늘 감사합니다 :) 명시적으로 id parameter 를 작성하는 것보다 혹시 작성하지 않는 편이 유지 보수에 나은지 궁금합니다 ! 기존 코드 @GetMapping("/new-article") public String newArticle(@RequestPara
github.com
https://github.com/shinsunyoung/springboot-developer-2rd/issues/17
[Ch08] Spring Security .and() deprecated 에 따른 Lambda DSL 형태로 변경 요청 · Issue #17 · shinsunyoung/springboot-d
선영 저자님께 👍 책 집필해주시고 github 로 계속 답변도 달아주셔서 학습에 큰 도움이 되고 있습니다 ! 정말 감사드립니다. 책 실습 내용을 따라하다 보니, Spring Security 가 7.0 을 준비하면서 6 에
github.com
https://github.com/shinsunyoung/springboot-developer-2rd/issues/18
[Ch10] Spring Security의 Lambda DSL 사용 강제로 인한 WebOAuthSecurityConfig변경 요청 · Issue #18 · shinsunyoung/sp
Spring Security 7 에서 반드시 Lambda DSL을 사용하도록 하고 있습니다. 아래는 Spring 에서 제시한 Lambda DSL 사용 목적입니다. 가독성: 코드 들여쓰기가 자동으로 적용되어 설정 코드를 읽기 쉽게 합니다.
github.com
구현 사항 | 프로젝트 전 | 프로젝트 후 |
회원가입, 로그인, 로그아웃 API | Spring Security 를 활용할 줄 모름 | Spring Security 를 이용해 기본적인 폼 로그인을 구축할 수 있음 |
Spring Security 의 기본적인 내부 구조를 이해할 수 있음 | ||
Lambda DSL 을 반영한 코드 | 교재의 코드를 따라칠 수 있음 | 교재의 오타, Spring Security 7 이 반영되지 않은 부분을 저자에서 Github Issue 를 통해 공유하고 답변을 통해 배울 수 있음 |
JWT 를 이용한 회원가입, 로그인, 로그아웃 API | JWT 가 뭔지 모름 | JWT 의 작동 원리를 알게 됨 |
OAuth 를 활용한 구글 회원가입, 로그인, 로그아웃 API | OAuth 가 뭔지 모름 | OAuth 를 이용한 소셜 로그인을 구축할 수 있음 |
블로그 글 CRUD API | 구축 가능 | 교재를 통해 깔끔한 코드를 알게 됨 |
Elastic Beanstalk 를 활용한 WAS 구축 | EC2 내부에 database 를 구축함 | Elastic Beanstalk 를 사용하여 EC2 autoscaling , RDS 를 사용할 수 있음 |
