12. 백엔드, Spring Framework(+JSP)
이때부터 본격적으로 백엔드 개발이 시작되었다.
Spring 프로젝트 생성, 내장 Tomcat설정, maven/gradle 저장소 사용법부터 Spring 프로젝트의 구조, 작동원리, 순서, 디자인패턴등을 학습했다.
Java를 잘한다 != Spring을 잘한다임을 알았기에, 이때부터는 학습에 조금 집중하기 시작했다.
API를 몇번 반복적으로 작성하다보니 감이 잡혔고 곧 잘 따라왔지만, 다른 교육생들이 이때부터 많이 뒤쳐지기 시작했다.
이 당시 다른 교육생들이 질문하는 요지에 대해 좀 파악해두기 시작했다.
기본 문법을 틀리는 듯, 너무 기본적인 부분에서의 실수를 못찾거나 오류메세지를 못 읽는 경우, 파이널 프로젝트에서 참고하려했기 때문이다.
이를 아래와 같이 메모장으로 정리해서 파이널프로젝트에 해당 인원이 있는지 검사하려했다.
예)
ㄱㄱㄱ : syntax 오류 못 읽음
ㄴㄴㄴ : 세미콜론 안침
ㄷㄷㄷ : 매개변수 덜 보냄
ㄹㄹㄹ : 리턴타입 지정안함
또한 뷰단을 JSP로 작성하는 법, Spring과 Mysql의 연동, Mybatis로 쿼리 날리는 법, DB데이터를 뷰단으로 보내는 법 등을 학습하고, 바로 세미프로젝트가 시작되었다.
13. 세미프로젝트
지금까지 배운건 자바 기초, DB, HTML/CSS/JS, Jquery, Spring, JSP이다.
이를 이용하여 기획했던 서비스를 제작해야한다.
조장도 탈주한 이상, 첫 날 프로젝트 방향과 진행에 관해서는 내가 총대를 매야겠다고 결심했다.
대부분의 기본적인 화면틀은 완성되어있으니, 프로젝트 기본구조와 컨트롤러등을 미리 작성하고, DB 테이블을 작성하여 팀원에게 전달하였다.
그 이후 미리 팀원들에게 본인이 할 수 있을 것 같은 것, 아니면 모르거나 진행하지 못할 것 등을 물어봤고 그에 맞게 작업을 분배했다.
이때 생각치 못한 일이 일어났다.
저번 화면단 검사 때 3명이라 너무 힘들다, 화면단도 되게 아슬아슬하게 완성했다고 강사에게 하소연을 했더니 이를 교육생들에게 전달하였고, 우리 조에 올 사람이 있는지에 대해 물어본것이다.
이로인해 한 명의 인원이 우리조로 오게 되었고, 4명으로 진행하게 되었다.
나름 어느정도 아는 분이 오셨고 큰 케어가 필요한 사람은 아니였기에, 나는 내 할당량을 끝낸 뒤 다른 두 사람에게 질문을 받거나, 같이 진행하면서 도움을 주었다.
물론 본인도 중간중간 모르는 부분이 좀 있었으나, 이 부분은 GPT에게 물어보거나, 스택오버플로우에서 검색을 하거나, 티스토리나 velog에 올라온 예제들을 긁어모으며 어찌어찌 해결이 되었다.
발표 직전 3일정도는 계속 밤을 샌걸로 기억하고, 그 이후 발표는 다른 조원에게 넘겨 상당히 높은 성적을 받았다.
(성적 높으니 돈도 주더라, 네이버페이로 한 2만원? 5만원? 정확히 기억이 안난다)
14. 파이널프로젝트의 시작, 디자인 씽킹
그 이후 바로 파이널 프로젝트의 조편성이 되었다.
이번엔 6명이라는 넉넉한 인원으로 다시 시작하게 되었고, 이전 프로젝트의 경험 상 차라리 본인이 조장을 맞는게 편하겠다고 생각했다.
다만 남들앞에 나서는 행동을 싫어하는 성격을 가진 나였기에, 발표자료제작과 발표만큼은 안하겠다는 약속하에 본인이 조장을 하게 되었다.
조편성 이후 바로 기획이 진행될 줄 알았지만, 아니였다.
시간표의 디자인씽킹이라는걸 먼저 진행하게 된다.
디자인씽킹은 24시간, 즉 3일동안 편성되었는데... 이건 좀 설명하기가 쉽지 않다.
외부강사가 와서 새로 편성된 조끼리 친해지는 과정과 문제해결을 하게 하는? 시간이였는데, 본인에겐 정말 괴로운 시간이였다.
추상적인, 문제 제기만 하고 해결하지 않는, 입에 발린 소리, 페이퍼워크만 가득한 시간이였다.
끝나고 든 생각은 이 3일동안 기획이나 프로젝트를 하는게 100배 1000배 낫지 않나? + 3일만에 끝나서 다행이다. 이 두가지 였다.
15. 기획 시작, React와 Node
그 이후 파이널프로젝트가 시작되었는데, 몇 주간은 온전히 파이널프로젝트를 위한 시간을 보낸건 아니다.
오전에는 React와 Node에 관한 아주 기본적인, 겉핥기식의 강의를 진행했고, 오후에는 프로젝트를 위한 시간을 가졌다.
이전 프로젝트때처럼, 미리 조원들에게 본인이 어느분야를 진행하고싶은지 물어봤다.
ㄱ : 디자인, 화면단 제작, PPT제작 및 발표
ㄴ : 백엔드
ㄷ : 백엔드
ㄹ : 백엔드
ㅁ : 백엔드
최악의 전개였다.
이렇게 되서는 원하는 일을 시킬 수 없었다.
첫 날 이전 프로젝트때처럼 본인이 디자인이 가미되지 않은 기본적인 화면단의 틀, Spring boot를 이용한 프로젝트 기본 구조를 완성시켜두고, DB테이블도 작성하여 팀원들에게 전달하였다.
그 이후 한 명도 빠짐없이 화면단을 제작하고, 나머지 한 명은 기획서를 작성하며 CSS로 디자인을 넣어줬다.
기획한 내용은 OOO를 위한 커뮤니티이며, NCP의 OOO기능과 OOO기능을 추가했고, 메일서비스를 추가한 서비스였다.
결국 살좀 붙인 게시판이긴하다.
모두가 하나되어 화면단을 만들고, 본인이 중간점검을 하면서 문제가 몇가지 있었다.
- 팀원들이 git을 잘 활용하지 못함
- 1과 이어지는 문제로 충돌관리를 하지 못함
- html의 class와 id, name을 언제 어디서 적합하게 사용하는지 이해하지 못함
위 이유로 다 같이 모여 git 기본설명과 3번에 관한 설명을 진행하였는데, 아무리해도 1,2는 나아지질 않아 팀뷰어등 원격프로그램으로 직접 충돌관리 후 본인이 직접 병합하였다.
이 프로젝트를 진행할때는 가진 마음가짐이 몇가지 있다.
- 모두의 의견을 수용하지 말 것
- 모두가 행복한 진행은 없다
- 누군가는 결정을 해야한다
- 안 좋은 말을 해야할 때는 해야한다.
이 마음가짐을 바탕으로 내가 나쁜사람처럼 보일 수 있어도, 진행이 원활해야한다는 생각을 했다.
이로인해 기획부터 화면단까지 일사천리로 진행되었다.
'국비교육 후기' 카테고리의 다른 글
결국 코딩국비교육을 원하는 예비교육생들에게 하고싶은 말(完) (2) | 2024.09.24 |
---|---|
부모의 원수가 국비교육을 듣는다 하면, 나는 3번은 말릴 것이다. (4) (8) | 2024.09.23 |
부모의 원수가 국비교육을 듣는다 하면, 나는 3번은 말릴 것이다. (2) (7) | 2024.09.23 |
부모의 원수가 국비교육을 듣는다 하면, 나는 3번은 말릴 것이다. (1) (8) | 2024.09.23 |