개발 목표 : 개인 프로젝트 진행, 신 기술 연습
1. 주제: 소셜미디어 개발
- 기능: 실시간 채팅, 커뮤니티, 회원 관리, 사용자 인증, 댓글 관리
- 프론트엔드: React (개발 프레임워크: VScode)
- 백엔드: Java(Spring Boot)
- 웹소켓: JavaScript 라이브러리를 사용하여 구현
- 인증: Spring Security를 사용한 JWT(JSON Web Tokens) 기반 회원 인증
- 도커: Docker를 사용하여 개발 환경 구축 및 애플리케이션 컨테이너화
2. AWS 활용
- 서버 배포: AWS Elastic Beanstalk, EC2 등을 사용하여 Spring Boot 애플리케이션 배포
- 보안 및 SSL 인증서 관리: AWS ACM(AWS Certificate Manager)을 사용하여 SSL 인증서 관리
- 데이터베이스: MySQL 데이터베이스 사용
3. CI / CD 구성
- 젠킨스: Jenkins를 사용하여 CI/CD 파이프라인 구성
- 코드 통합: GitHub 또는 GitLab과 연동하여 코드 변경 사항의 통합
- 빌드: 젠킨스를 사용하여 빌드 작업 자동화
- 테스트: 자동화된 테스트 수행 및 테스트 결과 확인
- 배포: 젠킨스를 사용하여 배포 작업 자동화
4. 부가 설명
- 프론트엔드 개발에서는 React를 사용하여 사용자 인터페이스를 구현하고, 개발 프레임워크로는 VScode를 사용합니다.
- 백엔드 개발에서는 Java와 Spring Boot를 사용하여 RESTful API를 구현하고, Spring Security를 활용하여 JWT 기반 회원 인증을 구현합니다. 또한, 도커를 사용하여 개발 환경을 구축하고 애플리케이션을 컨테이너 화합니다.
- 웹소켓은 JavaScript 라이브러리를 사용하여 구현하며, 실시간 채팅 기능을 구현합니다.
- AWS를 활용하여 서버를 배포하고 보안 및 SSL 인증서 관리에는 ACM(AWS Certificate Manager)을 사용합니다. 데이 터 베이스로는 MySQL을 사용하여 데이터 저장을 처리합니다.
- CI/CD 구성에는 젠킨스를 사용하여 CI/CD 파이프라인을 구축합니다. 코드 변경이 발생하면 젠킨스를 통해 자동으로 빌 드, 테스트, 배포 작업을 수행하여 개발 과정을 자동화합니다.
5. 개발 진행 계획
1. 환경 구성:
- 필요한 개발 도구 설치: VScode, Java JDK, Node.js, Docker, 젠킨스 등
- 프로젝트 디렉토리 구성: 필요한 폴더 및 파일 구성
2. 백엔드 개발:
- Spring Boot 프로젝트 생성: Spring Initializr 또는 Maven/Gradle을 사용하여 프로젝트 생성
- 필요한 의존성(Dependency) 추가: Spring Web, Spring Security, Spring Data JPA 등
- 데이터베이스 연동: MySQL과의 연동 설정
- API 설계: 소셜미디어 API의 엔드포인트 및 데이터 구조 설계
- API 구현: Spring Boot를 사용하여 API 엔드포인트를 구현하고, 필요한 서비스와 리포지토리를 개발
- Spring Security 설정: JWT 기반의 인증 및 인가 설정
3. 프론트엔드 개발:
- React 프로젝트 생성: Create React App을 사용하여 프로젝트 생성
- 필요한 라이브러리 설치: react-router-dom, axios 등
- 사용자 인터페이스(UI) 설계: 실시간 채팅, 커뮤니티, 회원 관리, 댓글 등의 UI 구성 요소 설계
- UI 구현: React를 사용하여 UI 구성 요소를 개발하고, API와의 통신을 위해 axios 등을 활용
4. 웹소켓을 활용한 실시간 채팅 구현:
- WebSocket 라이브러리 설치: 예를 들어, Socket.io 등을 사용하여 웹소켓을 구현
- 채팅 기능 구현: WebSocket을 사용하여 실시간 채팅 기능을 개발
5. AWS 활용:
- AWS 계정 생성: AWS 서비스를 사용하기 위해 AWS 계정을 생성
- 서버 배포: AWS Elastic Beanstalk, EC2 등을 사용하여 Spring Boot 애플리케이션 배포
- SSL 인증서 관리: AWS ACM(AWS Certificate Manager)을 사용하여 SSL 인증서를 생성 및 관리
6. 도커 및 젠킨스 설정:
- 도커 이미지 빌드: 프로젝트의 도커 이미지를 빌드하여 컨테이너화
- 젠킨스 설정: Jenkins를 설치하고, CI/CD 파이프라인 구성을 위한 설정 수행
각 단계는 순차적으로 진행되며, 백엔드 개발부터 시작하여 프런트엔드 개발, 실시간 채팅 구현, AWS 활용, 도커 및 젠킨스 설정 순서대로 진행할 예정