Intro
마지막 글을 작성한 이후로, 팀원과 함께 2인 프로젝트도 진행하고, 꽤 규모 큰 프로젝트도 진행을 하며 혼자서 공부를 진행하고 있었다.
그런데, 모종의 이유들로 인해서 어느 정도 개발이 진행되다가 무산되거나 현재까지 stop되어있는 부분이 많았다.
개발 공부를 시작한 이유가 내가 만들고 싶은 것을 만들어보고자 시작한 것이 가장 컸는데, 실제로 프로젝트의 끝(배포)까지 진행되지 못하다 보니 스스로 많은 아쉬움도 생기게 되었다. (물론 그 와중에서도 백엔드관련 지식이라던지, 좋은 동료분들을 만나서 같이 성장을 하고 있다.)
따라서, 어느정도 백엔드 기본지식 + 프론트 지식 전무 한 상태이기는 하지만, 끝까지 1인 프로젝트를 진행해보고 싶었고 그 중 가장 생각나는 것이 블로그를 만드는 것이었다. 이유는 다음과 같다.
- 백엔드 api 개발만 진행했었는데, 실제 프론트와의 연동을 통해서 내가 어떠한 부분이 부족한 지 느낄 수 있다.
- 현재 티스토리를 통해 블로그를 작성하고 있는데, 내 블로그가 생기면 포스팅을 더 열심히 할 것 같았다.
- Production은 결국 개발하고 끝! 이 아니라 개발 이후에도 지속적으로 유지보수가 되어야 하는데, 1인 프로젝트임에도 내가 크게 관심이 없는데 그냥 남들 하니까~ 하고 시작하게 되면 지속적인 체크를 하지 못할 것 같았다
- 결국 유저를 받고 피드백을 받는 부분에서 유지보수적인 측면이 발전할 수 있을 것 같은데, 블로그는 남들이 보지는 않더라도 '나' 라는 유저를 확보할 수 있다고 생각했다.
위와 같은 이유로 인해 2월 21일부터 개발을 시작했고 많은 시행착오를 거치며, 일정 부분 원하는 수준까지 진행이 되었다고 생각해서 정리를 하게 되었다.
프로젝트 세부 사항
계획 기간
2024.02.21 ~ 2024.03.31
프론트엔드
- next.js v14
- tailwind-nextjs-starter-blog 오픈소스 활용 (https://github.com/timlrx/tailwind-nextjs-starter-blog)
- Toast Ui Editor v3.2.2
- Webstorm
- tailwind css
- mui
백엔드
- Spring boot v3.2.2
- Java 17
- Gradle
- QueryDsl
- Mysql
- Intellij
인프라
- Aws EC2
- Aws S3
- Aws Route 53
- Github Action
<DB 설계도>
많은 기능을 넣기에는 스스로 부족한 점이 있을 것이라 생각하여, 기본적인 기능을 만든 후에 조금씩 추가해나가고자 한다.
또한 최종 결과물의 경우에는, Github Action을 이용한 CI/CD 파이프라인 구축 및 Aws EC2를 이용해 도메인을 구매하여 배포하는 것까지 1차 목표로 정하였다.
작업 시작 전 고민한 점들
- 프론트엔드에서 사용자에게 보여주는 레이아웃을 어떻게 가져갈 것인가?
- 직접 만드는 것은 좋지만, 시간적인 소모가 매우 심할 것으로 생각된다.
- 오픈소스인 tailwind-nextjs-starter-blog 을 이용해서 기초적인 레이아웃을 참고한다
- tailwind-nextjs-starter-blog의 경우에는 contentlayer 라는 정적 컨텐츠 관리 도구를 이용하여 markdown 파일을 띄워주는데, 이 기능은 자기소개에만 넣고, 글 댓글의 경우에는 toast ui editor을 사용해 벡엔드와의 상호작용으로 진행되도록 한다.
- (백엔드) 로그인 환경을 어떻게 구성하는 것이 좋을까?
- Oauth의 경우에는 꼭 넣고 싶었기 때문에 넣을 것이며, 일반 로그인 기능이 필요할까?
- 일반 로그인의 경우 현재로서는 필수라고 생각되지 않기 때문에 제외할 예정이다
- Jwt Token을 이용하여 유저의 상태를 관리할 수 있도록 한다(Refresh Token까지 진행하는 것이 보안상 좋지만, 1차 목표를 완성한 후에 추가적으로 넣고자 한다)
진행하며 고민한 부분이 더 많았지만, 작성하는 현재 시점에서는 모두 기억이 나지 않기 때문에 작성을 해가며 내가 어떠한 고민을 했고, 그 당시 어떻게 해결하고자 하는지 적으려고 한다.
참고하시는 분들이 계실지 모르겠지만.. 다들 화이팅!
'Project' 카테고리의 다른 글
[Project] 나만의 블로그 만들기 (6) - QueryDsl 을 이용해 페이징 + fetch join 한번에 수행하기 (0) | 2024.07.09 |
---|---|
[Project] 나만의 블로그 만들기 (5) - RefreshToken + Redis 통한 자동 로그인 기능 구현 (4) | 2024.07.09 |
[Project] 나만의 블로그 만들기 (4) - 댓글 CRUD 구현 (0) | 2024.07.08 |
[Project] 나만의 블로그 만들기 (3) - 게시글 CRUD 구현 (1) | 2024.04.23 |
[Project] 나만의 블로그 만들기 (2) - 로그인 환경 구현 (0) | 2024.04.15 |
댓글