0. 단계
신입 백엔드 개발자 포트폴리오를 찾아본결과 자신이 이렇게 구성하고 만들어봤다 이런거를 어필할 필요가 있기때문에
보통 주제로 쇼핑몰, 게시판을 많이 선택하므로 둘다 만족할만하며서 내가 자주 애용하는 앱을 좋을것 같아 쇼핑몰+ 게시판의 역할을 하는 '오늘의 집'을 클론하기로 하였다. 먼저 일차 완성인 게시판을 하였다.

1. 백엔드 개발전 사전작업
- 요구사항 정의: 프로젝트의 목적과 요구사항을 명확히 정의해야 합니다. 어떤 기능을 개발해야 하는지, 어떤 데이터를 다루어야 하는지 등을 파악하여 개발에 필요한 방향성을 결정합니다.
- 기술 스택 선택: 어떤 프로그래밍 언어, 프레임워크, 데이터베이스 등을 사용할지 결정합니다. 이는 프로젝트의 특성과 개발자들의 스킬에 따라 달라집니다.
- 프로젝트 구조 설계: 백엔드 애플리케이션의 구조를 설계합니다. 이는 폴더 구조, 모듈화, 라우팅, 데이터베이스 스키마 등을 포함합니다.
- 데이터베이스 설계: 사용할 데이터베이스의 테이블 구조와 관계를 설계합니다. 데이터의 유형과 정규화를 고려하여 데이터베이스 스키마를 설계합니다.
- 보안 및 인증: 사용자 인증과 권한 관리를 위한 방법을 결정하고, 보안적인 측면을 고려하여 개발합니다.
- 개발 환경 설정: 개발에 필요한 IDE(통합 개발 환경) 또는 텍스트 에디터, 개발 서버, 데이터베이스 서버 등을 설정합니다.
- 버전 관리: 프로젝트 코드를 버전 관리 시스템(Git 등)으로 관리하여 변경사항을 추적하고 협업을 용이하게 합니다.
- 개발 가이드라인: 개발자들이 일관된 코드 스타일을 유지할 수 있도록 코드 컨벤션과 가이드라인을 정의합니다.
- 테스트 계획: 단위 테스트, 통합 테스트, 기능 테스트 등을 어떻게 진행할지 계획합니다.
- CI/CD 설정: 앞서 언급한대로 CI/CD 파이프라인을 구축하고 설정하여 지속적인 통합과 배포를 자동화합니다.
- 개발 일정 수립: 프로젝트 일정과 마일스톤을 설정하여 개발 진행 상황을 추적하고 목표를 달성하기 위한 로드맵을 수립합니다.
이러한 사전 준비 작업들을 철저히 수행함으로써 백엔드 개발을 더 효율적으로 진행할 수 있으며, 개발 초기에 발생할 수 있는 문제를 미리 예방하는 데 도움이 됩니다. 또한 팀원들 간의 협업이 원활하게 이루어지도록 도움을 줄 수 있습니다.
2. 개요
- 프로젝트 명칭 : ohouse clone
- 개발인원 :1명
- 개발기간 : 23.08.11 ~ 23.10.31
- 주요기능
- 사용자 회원가입 페이지
- 이메일과 비밀 번호로 회원가입할 수 있는 엔드 포인트
- 이메일과 비밀번호에 대한 유효성 검사를 구현 및 암호화 중복검사
- 이메일 조건: @ 포함 , 비밀번호 조건: 8자 이상
- OAuth 2.0 구글,카카오로그인
- 메인 페이지
- 게시글리스트, 페이징 처리 조회순 및 검색기능
- 게시글 페이지
- 메인 페이지에서 글쓰기 클릭하는 페이지
- 사용자 회원가입 페이지
- 개발언어 : java 17
- 개발환경 : Springboot 3.0.6 , jpa,querydsl, SpringSecurity, thymleaf, Oauth 2.0
- 데이터베이스 : mysql 8.0.33
- 형상관리 툴 : Github
3. 요구사항 분석
1. 회원가입 페이지
- 유효성 검사
- 닉네임은 최소 2~10자이며, 특수문자를 제외한 한글 (ㄱ~ㅎ, 가~힣), 알파벳 대소문자(a~z, A~Z), 숫자(0~9)로 구성
- 이메일 형식 패턴 적용해 확인
- 한 개의 칸이라도 공백 혹은 빈칸이 있는지 확인하고 있다면, "OOO는 필수 입력 값입니다."의 메시지 보여주기
- 비밀번호는 최소 8~16자 이상이며, 영문 대 소문자, 숫자, 특수문자를 사용하게 하기
- 비밀번호는 반드시 암호화하여 저장
- 소셜로그인(카카오)
- 중복확인
- 데이터베이스에 존재하는 아이디를 입력한 채 회원가입 버튼을 누른 경우 "이미 사용중인 아이디입니다."의 메시지를 보여주기
- 데이터베이스에 존재하는 이메일을 입력한 채 회원가입 버튼을 누른 경우 "이미 사용중인 이메일입니다."의 메시지를 보여주기
- 데이터베이스에 존재하는 닉네임을 입력한 채 회원가입 버튼을 누른 경우 "이미 사용중인 닉네임입니다."의 메시지를 보여주기
- 모든 검사가 통과되었다면 로그인 페이지로 이동시키기
2. 로그인 페이지
- 로그인을 하지 않을경우 아래페이지 이용가능
- 회원가입페이지
- 로그인 페이지
- 메인페이지
- 게시글 작성페이지
- 게시글 리스트 페이지
4. ERD-Diagram


5. API 명세서

6. KanbanBoard


7. WBS

8. CI/CD
9. 참고자료
ERDCloud
Draw ERD with your team members. All states are shared in real time. And it's FREE. Database modeling tool.
www.erdcloud.com
https://whatisthenext.tistory.com/123
Nginx 이해하기 및 기본 환경설정 세팅하기
NGINX Nginx의 개요 엔진엑스(Nginx)는 Igor Sysoev라는 러시아 개발자가 동시접속 처리에 특화된 웹 서버 프로그램이다. Apache보다 동작이 단순하고, 전달자 역할만 하기 때문에 동시접속 처리에 특화되
whatisthenext.tistory.com
Free bootstrap snippets and html examples
Bootstrap snippets and examples. A curated list of ready to use UI design elements, themes, templates, code snippets and playground
bootdey.com
Bootstrap
강력하고 확장 가능하며 기능이 풍부한 프론트엔드 툴킷. Sass로 빌드 및 커스터마이징하고, 사전 빌드된 그리드 시스템 및 구성 요소를 활용하고, 강력한 JavaScript 플러그인으로 프로젝트에 생기
getbootstrap.kr
CodePen
An online code editor, learning environment, and community for front-end web development using HTML, CSS and JavaScript code snippets, projects, and web applications.
codepen.io
3-05 스프링 시큐리티
* `[완성 소스]` : [https://github.com/pahkey/sbb3/tree/3-05](https://github.com/pahkey/sbb3/tree/3-05) …
wikidocs.net
https://www.inflearn.com/roadmaps/373
우아한형제들 최연소 기술이사 김영한의 스프링 완전 정복 - 인프런 | 로드맵
Spring, MVC 스킬을 학습할 수 있는 개발 · 프로그래밍 로드맵을 인프런에서 만나보세요.
www.inflearn.com
책
- 스프링 부트와 AWS로 혼자 구현하는 웹 서비스:인텔리제이 JPA JUnit 테스트 그레이들
- 자바 ORM 표준 JPA 프로그래밍
'포트폴리오 > ohouseClone' 카테고리의 다른 글
5. SpringSecurity 설정 및 customlogin페이지 제작 (0) | 2023.09.05 |
---|---|
4. 게시판 작성 front & member api (0) | 2023.09.05 |
3. 커뮤니티 게시판 서비스 api 개발 & 메인 페이지 (0) | 2023.08.19 |
2. Entity 작성 및 구조도 체크 (0) | 2023.08.16 |
1. 기본 Intellj setting 및 db연결 & 칸반보드 작성 (0) | 2023.08.11 |
0. 단계
신입 백엔드 개발자 포트폴리오를 찾아본결과 자신이 이렇게 구성하고 만들어봤다 이런거를 어필할 필요가 있기때문에
보통 주제로 쇼핑몰, 게시판을 많이 선택하므로 둘다 만족할만하며서 내가 자주 애용하는 앱을 좋을것 같아 쇼핑몰+ 게시판의 역할을 하는 '오늘의 집'을 클론하기로 하였다. 먼저 일차 완성인 게시판을 하였다.

1. 백엔드 개발전 사전작업
- 요구사항 정의: 프로젝트의 목적과 요구사항을 명확히 정의해야 합니다. 어떤 기능을 개발해야 하는지, 어떤 데이터를 다루어야 하는지 등을 파악하여 개발에 필요한 방향성을 결정합니다.
- 기술 스택 선택: 어떤 프로그래밍 언어, 프레임워크, 데이터베이스 등을 사용할지 결정합니다. 이는 프로젝트의 특성과 개발자들의 스킬에 따라 달라집니다.
- 프로젝트 구조 설계: 백엔드 애플리케이션의 구조를 설계합니다. 이는 폴더 구조, 모듈화, 라우팅, 데이터베이스 스키마 등을 포함합니다.
- 데이터베이스 설계: 사용할 데이터베이스의 테이블 구조와 관계를 설계합니다. 데이터의 유형과 정규화를 고려하여 데이터베이스 스키마를 설계합니다.
- 보안 및 인증: 사용자 인증과 권한 관리를 위한 방법을 결정하고, 보안적인 측면을 고려하여 개발합니다.
- 개발 환경 설정: 개발에 필요한 IDE(통합 개발 환경) 또는 텍스트 에디터, 개발 서버, 데이터베이스 서버 등을 설정합니다.
- 버전 관리: 프로젝트 코드를 버전 관리 시스템(Git 등)으로 관리하여 변경사항을 추적하고 협업을 용이하게 합니다.
- 개발 가이드라인: 개발자들이 일관된 코드 스타일을 유지할 수 있도록 코드 컨벤션과 가이드라인을 정의합니다.
- 테스트 계획: 단위 테스트, 통합 테스트, 기능 테스트 등을 어떻게 진행할지 계획합니다.
- CI/CD 설정: 앞서 언급한대로 CI/CD 파이프라인을 구축하고 설정하여 지속적인 통합과 배포를 자동화합니다.
- 개발 일정 수립: 프로젝트 일정과 마일스톤을 설정하여 개발 진행 상황을 추적하고 목표를 달성하기 위한 로드맵을 수립합니다.
이러한 사전 준비 작업들을 철저히 수행함으로써 백엔드 개발을 더 효율적으로 진행할 수 있으며, 개발 초기에 발생할 수 있는 문제를 미리 예방하는 데 도움이 됩니다. 또한 팀원들 간의 협업이 원활하게 이루어지도록 도움을 줄 수 있습니다.
2. 개요
- 프로젝트 명칭 : ohouse clone
- 개발인원 :1명
- 개발기간 : 23.08.11 ~ 23.10.31
- 주요기능
- 사용자 회원가입 페이지
- 이메일과 비밀 번호로 회원가입할 수 있는 엔드 포인트
- 이메일과 비밀번호에 대한 유효성 검사를 구현 및 암호화 중복검사
- 이메일 조건: @ 포함 , 비밀번호 조건: 8자 이상
- OAuth 2.0 구글,카카오로그인
- 메인 페이지
- 게시글리스트, 페이징 처리 조회순 및 검색기능
- 게시글 페이지
- 메인 페이지에서 글쓰기 클릭하는 페이지
- 사용자 회원가입 페이지
- 개발언어 : java 17
- 개발환경 : Springboot 3.0.6 , jpa,querydsl, SpringSecurity, thymleaf, Oauth 2.0
- 데이터베이스 : mysql 8.0.33
- 형상관리 툴 : Github
3. 요구사항 분석
1. 회원가입 페이지
- 유효성 검사
- 닉네임은 최소 2~10자이며, 특수문자를 제외한 한글 (ㄱ~ㅎ, 가~힣), 알파벳 대소문자(a~z, A~Z), 숫자(0~9)로 구성
- 이메일 형식 패턴 적용해 확인
- 한 개의 칸이라도 공백 혹은 빈칸이 있는지 확인하고 있다면, "OOO는 필수 입력 값입니다."의 메시지 보여주기
- 비밀번호는 최소 8~16자 이상이며, 영문 대 소문자, 숫자, 특수문자를 사용하게 하기
- 비밀번호는 반드시 암호화하여 저장
- 소셜로그인(카카오)
- 중복확인
- 데이터베이스에 존재하는 아이디를 입력한 채 회원가입 버튼을 누른 경우 "이미 사용중인 아이디입니다."의 메시지를 보여주기
- 데이터베이스에 존재하는 이메일을 입력한 채 회원가입 버튼을 누른 경우 "이미 사용중인 이메일입니다."의 메시지를 보여주기
- 데이터베이스에 존재하는 닉네임을 입력한 채 회원가입 버튼을 누른 경우 "이미 사용중인 닉네임입니다."의 메시지를 보여주기
- 모든 검사가 통과되었다면 로그인 페이지로 이동시키기
2. 로그인 페이지
- 로그인을 하지 않을경우 아래페이지 이용가능
- 회원가입페이지
- 로그인 페이지
- 메인페이지
- 게시글 작성페이지
- 게시글 리스트 페이지
4. ERD-Diagram


5. API 명세서

6. KanbanBoard


7. WBS

8. CI/CD
9. 참고자료
ERDCloud
Draw ERD with your team members. All states are shared in real time. And it's FREE. Database modeling tool.
www.erdcloud.com
https://whatisthenext.tistory.com/123
Nginx 이해하기 및 기본 환경설정 세팅하기
NGINX Nginx의 개요 엔진엑스(Nginx)는 Igor Sysoev라는 러시아 개발자가 동시접속 처리에 특화된 웹 서버 프로그램이다. Apache보다 동작이 단순하고, 전달자 역할만 하기 때문에 동시접속 처리에 특화되
whatisthenext.tistory.com
Free bootstrap snippets and html examples
Bootstrap snippets and examples. A curated list of ready to use UI design elements, themes, templates, code snippets and playground
bootdey.com
Bootstrap
강력하고 확장 가능하며 기능이 풍부한 프론트엔드 툴킷. Sass로 빌드 및 커스터마이징하고, 사전 빌드된 그리드 시스템 및 구성 요소를 활용하고, 강력한 JavaScript 플러그인으로 프로젝트에 생기
getbootstrap.kr
CodePen
An online code editor, learning environment, and community for front-end web development using HTML, CSS and JavaScript code snippets, projects, and web applications.
codepen.io
3-05 스프링 시큐리티
* `[완성 소스]` : [https://github.com/pahkey/sbb3/tree/3-05](https://github.com/pahkey/sbb3/tree/3-05) …
wikidocs.net
https://www.inflearn.com/roadmaps/373
우아한형제들 최연소 기술이사 김영한의 스프링 완전 정복 - 인프런 | 로드맵
Spring, MVC 스킬을 학습할 수 있는 개발 · 프로그래밍 로드맵을 인프런에서 만나보세요.
www.inflearn.com
책
- 스프링 부트와 AWS로 혼자 구현하는 웹 서비스:인텔리제이 JPA JUnit 테스트 그레이들
- 자바 ORM 표준 JPA 프로그래밍
'포트폴리오 > ohouseClone' 카테고리의 다른 글
5. SpringSecurity 설정 및 customlogin페이지 제작 (0) | 2023.09.05 |
---|---|
4. 게시판 작성 front & member api (0) | 2023.09.05 |
3. 커뮤니티 게시판 서비스 api 개발 & 메인 페이지 (0) | 2023.08.19 |
2. Entity 작성 및 구조도 체크 (0) | 2023.08.16 |
1. 기본 Intellj setting 및 db연결 & 칸반보드 작성 (0) | 2023.08.11 |