프로젝트 후기

프로그래밍 중앙동아리 SOLUX : PYI (Plan Your Idea)

melitina 2024. 4. 6. 23:02

Notion

https://occipital-currency-c78.notion.site/cfe45c3fb15a4a49b811378767b4de5f?v=805df08ec5984733b53e646b7b4079bf

 

작업 | Notion

Built with Notion, the all-in-one connected workspace with publishing capabilities.

occipital-currency-c78.notion.site

 

API 명세서

https://melitina915s-organization.gitbook.io/pyiplanyouridea

 

API 명세서 | PYI (Plan Your Idea)

PYI (Plan Your Idea)

melitina915s-organization.gitbook.io

 

ERD Cloud

https://www.erdcloud.com/d/Kzhf8ZLuvdvqm7y5b

 

PYI (Plan Your Idea)

Draw ERD with your team members. All states are shared in real time. And it's FREE. Database modeling tool.

www.erdcloud.com

 

GitHub

https://github.com/PYI-Solux/Spring_Backend

 

GitHub - PYI-Solux/Spring_Backend: Solux PYI-Plan Your Idea Backend Spring

Solux PYI-Plan Your Idea Backend Spring. Contribute to PYI-Solux/Spring_Backend development by creating an account on GitHub.

github.com

 

사용한 기술들

- Spring

- AWS

- MariaDB

- 협업한 프론트엔드 팀 : Kotlin

 

 

 

겨울 방학동안 프로젝트 세 개 끝나고 계속 축 처져있다가 GDSC Solution Challenge Top 100 선정됐다는 소식 듣고 미루고 미뤄왔다가 이제서야 부랴부랴 쓰는 프로젝트 후기이다.

 

 

 

사담 & 느꼈던 점들

2021년 겨울방학 때 프론트엔드 관련된 언어로 깔짝 해보면서 용의 머리와 뱀의 꼬리의 형상과 같은 사이트를 만들었었고,

2022년 여름방학에는 UC Berkeley로 교환 갔다왔다가 2022년 하반기부터 SOLUX 부원이 되었고,

겨울방학에 Node.js로 프로젝트 해보면서 백엔드에 처음 입문했었다.

그런데 이 때는 내가 GitHub도 제대로 다룰 줄 모른다는 것조차 인지하지 못하고있는 심각한 상황이었다.

2023년 상반기부터 Spring을 공부하기 시작했는데,

GitHub는 고사하고 백엔드 팀으로서 스프링 프로젝트를 어떻게 다뤄야 하는지를 전혀 모르고 있었어서 결국 팀원들이 버스태워줬었다.

당시에 너무 미안하고 주눅들어서 도와준 팀원들에게 표현은 못했지만,

내게 시간내서 깃허브 다루는 법과 스프링 프로젝트 하는 법을 알려준 팀원들에게 도움이 하나도 되지 못해 굉장히 미안했고 지금만큼이라도 성장할 수 있는 발판을 만들어줬어서 고마웠다.

그런 일을 겪고 다음 PYI(Plan Your Idea) SOLUX 프로젝트에서 함께하게 되는 팀원들에게 피해주고싶지 않아서 스프링 부트와 AWS로 혼자 구현하는 웹서비스 책으로 스프링 공부를 처음부터 다시 시작했고,

이전 팀원들에게서 어깨 넘어 배운 GitBook과 ERDCloud로 API 명세서를 작성하는 것과 데이터베이스 디자인까지도 가능하게 되었다.

2023년 하반기에 함께했던 스프링 팀원이 이전의 내 상태랑 비슷하길래 깃허브 다루는 법부터 데이터베이스 디자인하는거랑 API 명세서 작성하는 법 독학하는 데에 도움될 수 있는 링크도 찾아서 줄 수 있었다.

어쨌든 PYI 프로젝트를 완성해낼 정도가 되었기에 GDSC Solution Challenge도 참여할 수 있게 되었다고 생각한다.

물론 주변을 보면 난 아직 한참 부족하다는 걸 느끼지만,

대학원으로 목표가 바뀌었더라도 휴학하면서 최대한 해볼 수 있는건 해보고 마무리를 지어보려고 한다.

 

 

 

배운 점들

- API 명세서 & 데이터베이스 디자인 가능하게 됨

백엔드 개발의 기초가 되어야 할 부분들을 이때에서야 터득하게 되었다.

물론 완전하게 터득했다고 생각되진 않았지만, 최소한 프론트엔드와 협업이 가능하게 될 정도로는 성장했다고 생각한다.

- 스프링 구조를 드디어 어느 정도 이해함

DTO, Domain, Controller, Service, Repository 예전에는 얘네가 각각 어떤 역할을 맡고 있는지, 어떻게 작동하는지에 대한 이해도 벅찼는데,

프로젝트를 진행하면서 책을 반복적으로 보고 활용할 수밖에 없게 되어서 결국 어느 정도 머리 속으로 익히게 되었다.

- @OneToMany

이를 이 시기에 이해한 것은 나에게 있어서 장족의 발전이라고 할 수 있다.

인프런 김영한 강의를 이해도 못하지만 꾸역꾸역 들은 보람이 있다고 생각되었다.

부모 데이터베이스?에서 자식 데이터베이스?의 정보를 읽어와야 할 때 쓰인다.

반대로는 @ManyToOne이다.

 

 

 

개선해야할 점들

- Spring Security

이건 솔직히 아직도 잘 모르겠는 부분이다.

스프링 개발을 할 수 있다고 말한다면 스프링 시큐리티까지는 이해하고 있어야 한다고 생각하는데,

이 때는 이전 팀원의 코드를 보면서 따라하는 정도로밖에 못했다.

이걸 효율적으로 공부할 수 있는 자료가 있을까... 인터넷 구글링으로는 항상 한계가 있다.

인간관계가 넓게는 너무 얕고 깊게는 너무 좁아서 그런지 어떻게 방향을 잡아야 시행착오를 덜 거칠 수 있을지가 항상 내게 최대의 난제다.

 

 

 

공부해봐야 할 것들

- @Transactional

이것의 개념을 정확히 알고 작동하게 하는 방법을 터득하면 좀 더 효율적이게? 개발할 수 있을 것 같은데,

아직 어떻게 다뤄야하는지는 명확히 모르겠다.

- 로그 찍는거

Node.js 프로젝트 하면서 들은 강의에는 로그를 쉽게 찍어낼 수 있어서 DB에서 불러오는 정보도 쉽게 봤는데,

스프링은 아직도 어떻게 로그를 찍어오는지 모르겠다.

아마 올해 상반기 중에 배우지 않을까 싶다.

- CRUD 기능 이외의 PATCH같은 것들

PUT과 PATCH의 차이는 Solution Challenge 진행하면서 알게 되었다.

POST, GET, PUT, DELETE 외에도 많은 API Method?들이 있어서,

제대로 다루려면 다른 Method들도 어떻게 활용하는지 알아봐야한다.

 

 

 

마무리

한 너덧 달 지나니까 벌써부터 기억이 흐릿해진다.

이래서 프로젝트 진행하고 후기 웬만하면 바로 쓰라고 하는구나...

후기 쓸 때 중요한 것이 배운 점, 개선해야할 점, 공부해봐야 할 점이라고 생각된다.

그래야 나중에 어떤 분야에서든 메타인지를 계속하면서 발전해나갈 수 있을 것 같다.