오랜만에 쓰는 글이여서 그런지 뭐 부터 시작을 해야 될 지 모르겠다.
어쨌든 SSAFY 1학기가 끝났다~!~!~!~!
걱정되는 마음으로 SSAFY에 가는 내 모습이 엊그제 같은데 1학기 수료라니 참 시간이 달릴 땐 빠른 거 같다.
현재 방학인 상태인데 너무 늘어지게 쉬어서 그런지 아주 좋으면서 반면에, 너무 생산적이지 못 한 거 같아 불안함을 조금 느끼긴 한다. 그래서 마냥 쉴 순 없기 때문에 일단 카페에 나와서 회고록이라도 쓰기로 하였다.
7월에는 반이 확정되자마자 주로 Java에 대해서 배웠다. 근데 이 때 Java라는 언어가 너무 어려웠고 내가 여태 해왔던 JavaScript와 너무나도 다른 언어였다...비유하자면 JavaScript는 ENFP 같다면, Java는 ISTJ 같달까?
어려운 이유는 아래와 같다.
- 변수의 타입
- Array가 있고 List가 있고, int가 있고 Integer가 있고, 같은 거 같으면서 다른 타입들
- 그렇다고 TypeScript에 있는 Union Type도 없었던 점
- 어렵게 느껴지는 이론적 언어들
- 추상화, 다형성, 자료형과 래퍼 클래스...
- 몸에 익어 있던 map, filter, forEach 등과 같은 JS의 배열 메서드들 쓰겠다는 똥고집
- for문을 쓰기 싫어서 구글링해서 찾은게 Java에 List.forEach(x -> x)
- 람다식도 화살표 함수 같이 생겨서 개인적으로 너무 마음에 들었었음 ㅋ.
위와 같은 이유로 어려웠고, '이걸로 나중에 어떻게 알고리즘을 하나'하는 생각과 함께 공부를 해나갔다.
본격적으로 알고리즘을 배우는 달이였다.
나는 사실 SSAFY 오기 전에는 알고리즘을 안했고 재귀, 완탐(BFS, DFS), 조합, 순열 등과 같은 개념을 모르기도 했고 언제 어떤 걸 적용 시켜야 되는지도 몰랐다.
여담으로 SSAFY 들어 가려면 코딩 테스트 본다길래 2주동안 Python 공부하며 백준 문제 풀고 있었는데, 못 풀던 문제를 GPT한테 물어봤다.
나 : "Dynamic programming...? 아 GPT 또 할루시네이션 걸렸네"
DP는 들어도 보지 못 했을 정도로 알고리즘에 대해서 아무것도 모르던 시절.
알고리즘 공장 수준으로 맨날 알고리즘을 풀었다. 사실 후회가 좀 되는 부분은 하기 싫을 때는 풀지도 않고 꿍해 있었는데, 누군가에게 피해를 주진 않았지만 너무 어리게 행동한 거 같아서 돌이켜보면 부끄럽다.
또한 'SSAFY를 들어오기 전과 후로 알고리즘 공부하는 나를 비교해보면 들어오기 전의 내가 알고리즘 공부을 더 열정적으로 했었던 거 같다.
그래도 위와 같은 부끄러움을 이제와서만 느낀 것이 아니라 저 당시에도 느꼈었기 때문에 열심히 새로운 지식을 배우며 부족한 지식들을 채워 나갔다.
힘들었던 알고리즘의 시기가 지나고 Web을 배우는 시기가 왔다.
본격적으로 Web에 대해서 배우고 프론트엔드와 백엔드의 기초 기술들에 대해서 배웠다.
- FrontEnd : HTML5, CSS3, JavaScript(ES6), Bootstrap 등
- BackEnd : Tomcat, Servelt, JSP, Session, Cookie 등
백앤드에 대해서 배울 때는 정말 생소했다.
- Tomcat이 적절한 Servlet에게 Client 요청을 전달
- DispatcherServlet이 알맞은 Controller에 위임
- Controller -> Service -> Dao -> DB
- ViewResolver가 응답을 View로 전달
- View에 반영 후 Client에게 View 반환
위와 같은 Flow로 진행되는 거 보고 백앤드도 재밌게 느껴지곤 했다.
Web 프론트와 백의 기초를 배우고 Framework에 대해서 배우는 기간이였다.
(Spring Boot와 MyBatis에 대해서 배웠지만 굳이 적진 않겠습니다.)
드디어 기다리고 기다리던 Vue3에 대해서 배웠다. 사실 Spring Boot 막바지에 미리 Vue3의 상태 관리 함수나, 컴포넌트 라이프 사이클 훅 등 짤막하게 쉬는 시간이나 등하교 시간 때 예습을 해두었는데 큰 도움이 되었다.
Vue3를 함게 배우며 Pinia 또한 배웠는데, Pinia는 전역 상태관리 라이브러리라고 보면 된다.
일단 Vue3를 배우면서 느낀점은 아래와 같았다.
- 문서가 React에 비해서 너무 적다.
- 그래서 Vue2의 문법들도 알아야 한다.
- 근데 1을 어느정도 상쇄시킬 정도로 공식문서가 잘되있다고 생각한다.
- JSX 같지 않고 굉장히 HTML 같은 구조였다.
- Vue만의 문법을 배우는 느낌이 강하게 들었다. (즉, React가 왜 라이브러리인지 알게 된 계기였다.)
Vue에 대한 내용(?), 후기(?)는 추후 다시 블로그에 업로드할 예정이니 이정도만 얘기 하겠다.
이제 1학기의 마지막 교육 일정이였다. 이제 배운 것들을 정리하고, 1학기 최종 프로젝트를 진행하는 시간이였다.
2인 1팀으로 구성되어 프로젝트를 진행하였고, 공공데이터를 활용해서 프로젝트를 만드는 것이였다.
나는 프론트엔드를 전적으로 담당하고, 내 페어 분은 백엔드를 담당하셨다.
프로젝트 완성까지 총 3주라는 시간 주어졌다.
프론트앤드의 큰 틀의 기술스택은 Vue3, Pinia, SCSS로 잡아두고 시작하였다.
그리고 프로젝트를 했는지도 까먹었을 때 쯤, SSAFY에서 마지막이라고 캠퍼스 내에서 전국 축제를 진행하고 마지막에 프로님이 수료증을 나눠 주는데, 최종 프로젝트 1등은....!! 김성제, ㅇㅈㄱ!~!~!
1학기 수료해서 '어휴 드디어....' 했는데 생각치도 못한 최우수상 받아서 기분이 조았습니다 ^___^
SSAFY를 다니면서 많이 도움도 주고, 그만큼 많이 도움도 받고 재밌게 생활해서 너무 좋았다.
많은 사람들과 함께 지내다 보니 이런 장점이 있는 사람도 있고, 저런 장점이 있는 사람도 있어서 좋았다.
'개발적으로 더 많이 대화를 하면 좋았을텐데'라는 생각도 한다.
나중에 서울에서 보자 10기 대전 8반...!!!!!