유튜버 헬로카일 님이 진행하시는 사이드 프로젝트에 참여하게 되었다.
포토앨범 프로젝트는 대부분 비공개로 할 예정이며 (헬로카일님 요청)
진행 상황이나 개발 기록을 남기는 용도로 사용할 예정이다.
다만, 프로젝트 진행 중 개인적인 깨달음은 공개할 예정.
> 내 이야기
그 전에 잠깐 이 프로젝트를 참여하게 된 이유부터 말하고 가야겠다.
나는 지난 6개월간 IT교육을 이수하며 두 번의 프로젝트를 진행한 경험이 있다.
한 번의 프로젝트는 Kurly (컬리) 클론 코딩으로, 팀원으로 참여하였다.
또 한 번의 프로젝트는 공유 플래너 서비스 개발(배포 X)로, 팀장으로 참여하였다.
지난 두 번의 프로젝트에서 나는,
아이디어 회의, 기능정의서 작성, ERD 등에서부터 개발까지 모두 참여하였는데
매 번 부족함과 의아함을 느꼈다.
- 아이디어의 막연함
- 기능정의는 어느 정도로 구체적이어야 하는지,
- ERD의 테이블은 어떻게 구분하며, 어떤 정보를 담아야 하는지,
- 클래스는 각 메소드를 어떻게 설계해야 하는지,
등등 매 번 어려움에 부딪혔다.
특히나 클래스 설계는 기본적인 Rest API 설계 규칙도 모르는 상태에서 진행했기에
이름도 제각각으로 지었고, 중복되는 기능을 여러 메소드로 작성하기도 하였다.
나는 이러한 경험들을 통해 작은 프로젝트를 실무처럼 완성해보는 경험의 필요성을 깨달았고,
유튜브를 통해 원하는 기회를 얻을 수 있었다.
이번 기회를 통해서 내가 얻고자 하는 건,
- 개발이 비교적 간단하고 유리하게 진행될 수 있는 요구사항 분석
- 효율적으로 데이터를 활용할 수 있는 데이터베이스 설계
- 신뢰성 있는 Rest API 설계
이 세 가지이다. 이러한 측면에서 집중적으로 공부하고 기록하도록 하겠다.
> 프로젝트 개요
포토앨범 서비스의 백엔드 Rest API를 개발한다.
국내 업계에서 가장 많이 사용되는 기술 스택인 Java, Spring, MySQL로 개발을 진행한다.
실무 경험과 유사하게 진행
- 디자이너가 만들어주는 디자인 파일로
- 어떻게 API를 만들어야 하는지 요구사항 분석
- MySQL DB 설계 및 문서화
- 후, 실제 개발
(각 기능을 구현하면서 필요한 지식을 제공받으며, 이후 섹션에는 스스로 구글링 진행하도록 구성)
> 프로젝트 시작 전 알면 좋은 것들
기술 | 이해도 | 세부 사항 |
Java | ⭐⭐⭐ | OOP 개념 이해 파일 읽기, 쓰기 관련 경험 있으면 좋음 |
SQL/관계형 Database | ⭐ | 테이블간 관계 이해 |
Rest API | ⭐⭐ | CRUD Operations 개념 이해 JSON Object 이해 MVC 패턴 |
Spring | ⭐ | Container, Controller, Service, Entity 어노테이션 개념 이해 DI (Dependency Injection) 개념에 대한 이해 |
> 사용할 디자인 파일
> 포토앨범 서비스 기능
토픽 | 기능 |
계정 | 로그인 회원가입 |
앨범 | 앨범 생성 앨범 삭제 앨범명 변경 앨범목록 조회 앨범 검색 |
사진 | 사진 업로드 사진 상세정보 조회 사진 목록 조회 사진 다운로드 사진 삭제 다른 앨범으로 사진 옮기기 |
'프로젝트 > 포토앨범' 카테고리의 다른 글
[프로젝트][포토앨범] 진행상황 (0) | 2023.02.25 |
---|---|
[프로젝트][포토앨범] 5. API Documentation 작성하기 (1) (0) | 2023.02.18 |
[프로젝트][포토앨범] 2. 개발환경 준비 (0) | 2023.02.10 |