활동내역.zip/Techeer

[Good Night Hackathon] SpringBoot! 맛 좀 보자!

  • -
728x90

2023 Serieses

 

[ 2023 ] CheckPoint, 2023년

2023년동안 작성했던 회고록들을 모아 둔 게시글이다 2023년 동안 작성한 회고들을 계속해서 업데이트 해 나갈 예정이다 [ January ] - 변화의 시작, 1월 [2022WinterBootcamp] 0~1주차 회고 개발자가 되기로

time-map-installer.tistory.com

실제 사용 된 이미지가 아닌 작성자 임의로 제작한 것임을 밝힙니다


[Good Night Hackathon] (2023/02/25/22:00 ~ 2023/02/27/02:50)

규모 : 약 50명
요약 : 팀 단위 Spring Boot API 과제 해결 프로그램, 팀원과 함께하지만 개인이 코드를 작성해야 하며, 제출도 각자 하는 해커톤

당신이 알고있는 모든 사람들에게 Good Night를 외칠 수 있는 해커톤!
오늘 밤은 꿈을 꾸는 대신 Spring Boot 전문가에 한 발자국 다가가 보시는 것은 어떠신가요?
(위 멘트 또한 작성자가 임의로 작성해 둔 것임을 밝힙니다)

약 28시간 50분동안 진행 된 단기간 집중형 해커톤으로

소마 1차 코테를 마친 당일 밤 10시부터 시작해야 했기에 나는 시간을 나누어 최대한 시작 전까지 잠을 자 두었다

물론 중간에도 졸려서 짧게 잠들기도 했지만 온전히 긴 시간을 Spring Boot를 다룬다는 것에 의미가 있다

주어진 과제를 모두 해결한다면 기본적인 부트캠프 백엔드 프레임워크에 S3와 AI를 떼어낸 정도의 API를 구현해 낸 것이라고 한다


주제 : 레스토랑 리뷰 API

우리는 하루 조금 넘는 시간 동안 Spring Boot를 이용한 레스토랑 리뷰 API를 개발하였다

페이지에 적혀있는 기본 요구사항과 도메인을 보고 우리는 레스로랑 리뷰 어플리케이션에 대한 것들을 구현하였다

어렵기로 유명한 SpriNg과 JSP로만 접해본 Java를 동시에 사용해서 하려니 생각보다 어렵게 느껴졌다


시작하기 전

그래도 절반정도의 참여자(확실하지 않음)가 Spring Boot를 처음 써보는 것이었기에 시작 전 간단한 세션이 있었다.

거기서 나는 Gradle, Maven이 무엇인지, 패키지 구조는 어떠한 지, Lombok과 Validation은 무엇인지,

JPA는 어떻게 활용하는지에 대해 보았다

듣자마자 학습이 바로 되지는 않았고 그저 보면서 메모를 해 두었다. 나중에 보면 기억나지 않을까 생각했다


개발환경 세팅 : IntelliJ, MySQL

세션이 끝난 후 시작하면서 팀 배정이 이루어졌다

팀원분들 중 백엔드 개발자로 취업을 준비하시는 분이 계셨기에 개발환경 세팅을 무사히 마칠 수 있었다

Gradle 파일을 설정하고, .env 파일을 만들고 설정하고 그랬던 것 같다

우리는 MySQL을 이용하여 API를 활용할 예정이었고 처음 보는 방식인 docker-compose를 통해 도커에 띄워서

DB를 관리하는 방법을 사용했다

하지만 이 방식은 이미 로컬에 MySQL이 깔려있는 경우에는 오류가 발생한다는 점이 흥미로웠다

 

이 단계에서 상당한 시간이 소요되었고, 항상 세팅을 할 때마다 느끼는 것이지만

코딩은 개발환경 세팅이 제일 중요하지만 제일 재미가 ㅇ(생략).


개발 : Spring Boot

복잡한 폴더레스토랑구조

처음에 배웠던 폴더 구조를 활용하기위해 이미 만들어져 있는 다른 프로젝트를 참고하여 만들어 보았다

클래스 이름짓는 방법도 대략적으로나마 감이 잡혔다

전에 분명 Java를 사용해 보았는데도 Spring Boot의 특징 중 하나인 @Annotation으로 인해

완전히 처음 겪는 코드처럼 느껴졌다

하면서 느낀 점은 이 @Annotation 들로 인해 성장속도가 계단식으로만 나온다는 것을 알았다

상당히 많은 종류가 있었고, 다 익히려면 무수히 많은 연습이 필요해 보였다


개발 : 분명 어떻게 해야 하는 건 지는 알겠는데..

폴더 구조도 다뤘고, SQL도 Java를 섞어서 써 본 적도 있고, 그래서 나는 괜찮을 것이라고 생각했다

하지만 폴더 구조와 Class들을 만들어두고 entity까지는 이해를 하면서 진행하였으나

그 뒤부터는 한 가지를 작성해보기 위해 열 가지를 검색해 보는 행위를 반복하였다

 

잘 안풀려서 개발자들의 동반자, ChatGPT에게 물어보기도 했다

아무튼 그렇게 프로젝트를 진행하다가 한 가지 결론에 도달했다

 

보통 숙달되기까지 3개월 정도 걸린다고 하니 계획을 세워서 정복해 봐야겠다고 생각했다

아직은 진로 분야에 대해 확실하게 정해지지는 않았기에 재밌다면 백엔드도 고려해볼만 한 것 같다

(지금은 프론트엔드 프로젝트만 있기에 대외적으로는 프런트엔드 개발자라고 말하고 있다)


마치며

결과부터 말해보자면 약 30%(정확하지 않음) 정도가 모든 요구사항 개발을 끝마쳤다

물론 나는 그 중에 포함되어있지 않았다

계속 막히자 그냥 전체적인 코드를 보고 어떤 느낌인지 감을 잡는 데에 시간을 썼고, 배경지식 측면에서 수확이 있었다

 

코딩테스트 결과가 언제 나올까 마음을 졸이고 있던 주말이 아닌

굉장히 의미있고 생산적인 주말을 보낸 것 같아서 뿌듯했다

 

깃허브에 최대한 많은 프로젝트 경험을 쌓아두고 지속적으로 메모하고 정리한다면

웹상에서 캐시가 하는 역할처럼 처럼 개발정보 로딩속도가 더 빨라지지 않을까 생각한다

개발자에게 중요한 것은 모든 생각과 활동을 효율적으로 기록해서 정리해 두는 것이기 때문이다

 

현재 개인적으로 아이디어를 내고 디자인부터 End-to-End로 만들어 볼 프로젝트를 구상 중이다

아이디어와 프론트엔드 초기세팅을 마쳤으며, 이 또한 개발이 진행됨에 따라 추가적인 포스팅이 이루어질 것이다.


끝 

End

728x90
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.