본문 바로가기
일상/리뷰&후기

아이티윌 후기 4편

by GangDev 2024. 3. 30.

 

저번 3편에서는 수업 들어가기 전에 준비할 것에 관해 얘기했다.
이번 편부터는 수업할 때 배우는 것에 관해 디테일하게 들어가겠다.

수업 맨 처음에 배운 것은 java인데, 예습을 해왔다면 이때 꽤나 지루할 것이고, 예습을 하지 않았다면 얼마 나가지 못하고 숨이 턱까지 밀어닥칠 것이다.
어쩔 수 없다. 죽어라 따라가는 수밖에.

약 2주-1달 동안 java 수업을 하는데, 기본 문법은 어느 정도 가르치지만 책의 뒷부분인 쓰레딩이나 garbage collection 같은 거는 소개하는 정도로만 다루거나 다루지 않는다.
해당 부분은 심화 파트여서 처음 듣는 사람들에게는 뜬 구름식으로 들릴 터라 그냥 스킵하는 것 같다.
(참고: 만약 솔루션이나 서비스 등에 간다면 이런 심화적인 부분도 따로 챙겨줘야 한다.)

java 기본을 뗀 후에는 java gui인 swing을 활용한 1차 프로젝트를 진행한다.
어디서는 swing을 안 하고 그냥 콘솔에서 기본적인 프로그램을 만들고 끝난다는데, 내가 있던 반은 swing까지 진행했다.
swing은 현업에서 거의 쓰는 곳을 못 봤다.
아주 가끔 금융이나 제조업 쪽에서 쓴다는 공고를 한두 번 본 적 있다.
그럴 정도로 swing은 사장되었다시피 해서, 개인적인 생각으론 그냥 패스하고 빠르게 html css로 넘어갔으면 어땠을까 한다.
(어차피 html과 css를 배우고 나서는 html-css나 bootstrap으로 프론트를 구성하기 때문이다)
swing이 예전 방식이어서 그런가 프로그래밍하기 여간 어려운 게 아니어서 개인 프로젝트 하면서 한참 진땀 뺐다.

내 java 과정은, 수업 시작하기 전에 어느 정도 문법을 떼고 온 터라 별로 힘들진 않았다.
그에 반면 처음 배우는 사람들은 아무래도 프로그래밍 언어 자체가 생소하다 보니, 적응하는 데에 적잖은 힘을 썼다.

오정훈 강사님은 수업 시간에 언제든 자유롭게 질문할 수 있도록 계속 배려해 주셨고, 질문의 방향이 잘못되든 질문 자체가 이상하든 간에 어떻게든 잘 정리해서 답해주셨다.
실무와 강사 경력이 긴 것도 있고, 간간이 현업자를 대상으로 한 강의도 맡으셔서 그런지 기존 것과 요즘 것을 잘 섞어서 얘기해 주었다.
어떻게 굴러가는지 전반적인 시스템을 파악할 수 있다는 게 장점이다.
(수강생들 프로젝트 기간 때 보통 강사님은 좀 여유가 생긴다. 오정훈 강사님은 이때를 활용해서 프로그래밍 책을 보거나 무언가 계속 코딩하거나 수업 내용 정리하시는 것 같다. 연세가 적지 않은 편이신데도 꾸준히 공부하시는 면은 대단한 것 같다.)
질문에 따라 기초를 넘어서 심화적인 부분도 들어가는데, 이때 알 필요가 있는 CS 지식도 가르쳐주기에 잘 들어놓으면 다 피와 살이 된다.
다만, CS 지식을 받아들이기 위한 베이스에 어느 정도 허들이 있다 보니, 프로그래밍 베이스가 있는 사람 아니면 진가를 제대로 느끼기 힘든 부분이 있다.
(그러다 보니 처음 배우는 학생들은 연관 짓는 게 쉽지 않아서 다소 따분할 수도 있다.)
(뭐, 이때 안 들으면 나중에 다시 시간 내가며 배워야 하는 이중 수고를 하게 된다.)

하여튼 수업과 질문이 차근차근 오가다 보니, 자바 문법을 끝내는 데 3-4주 정도 걸렸다.
다른 반 수업에서는 2주 만에 끝내는 곳도 좀 있었는데, 과정이 다 끝나고 돌아보니 빨리 끝낸다고 마냥 좋은 건 아닌 것 같다.
수업 때 배운 내용들이 실제 면접 때 질문으로 나오는 경우가 꽤 있었는데, 대부분 기본 문법을 넘어서서 깊게 파고드는 문제가 많았다.
즉, 2주 안에 끝낸다면 기본적인 문법만 훑고 지나갈 것이고, 앞으로 배울 웹 쪽 지식이나 나중에 면접 대비할 기반을 갖추기 힘들 가능성이 크다.

그렇다고 마냥 꼼꼼히 보는 게 능사는 아니다.
자바에 들어가는 시간이 길수록 중점적으로 다뤄야 할 웹 분야에 투자되는 시간이 줄어들기 때문이다.
베이스와 실무, 둘의 비중을 얼마나 할지 강사마다 다르니, 무작정 불만 가지지 말고 강의 스타일에 따라 수강 여부를 선택하면 된다.

만약 2주가 지난 애매한 상태에서 계속 수강할 시 어떻게 해야 할까?
지금 곰곰이 생각해 보니, 만약 나라면 요령껏 자신과 수업을 맞출 것 같다.
만약 수강생이 자바의 진도가 느리다고 생각한다면 수업 끝난 후에 남는 시간을 웹 분야를 미리 예습하는 데에 투자하면 된다.

우리 반은 java 프로젝트를 하기 직전에 Oracle DB를 배웠다.
데이터베이스인데, 3일이라는 짧은 시간에 후다닥 배워버려서 그야말로 겉핥기 하고 끝났다.
DB가 중요한 과목이고, 그만큼 다뤄야 될 부분도 많지만, 대부분 프로젝트를 어느 정도 해본 다음에야 이해될 지식들이어서 과감히 스킵한 것 같다.

swing을 기반으로 한 내 첫 번째 개인 프로젝트의 주제는 todolist다.
1주일이라는 짧은 기간 동안 진행되는 토이 프로젝트여서 기능을 많이 넣을 수 없었다.
그래서 나는 기본적인 CRUD 위주로 진행했다.
(CRUD는 CREATE, READ, UPDATE, DELETE의 약자를 합쳐놓은 것이다. 글자 그대로 생성, 읽기, 변경, 삭제에 관한 것인데, 어떤 애플리케이션을 구성하는 데 있어 기본 기능들을 모아놓은 용어다. 읽을 때는 글자 그대로 씨알유디라 하는 사람도 있고 크루드라고 읽는 사람도 있는데, 외국 사람들이 보통 크루드라고 많이 읽는 것 같아서 나도 크루드라고 읽는다. 그렇다고 용어 이름을 한 가지만 외우려고 하지 말자. 용어의 목적 자체가 커뮤니케이션이니, 사람들이 용어를 부르는 주요 방법은 알아야 원활하게 소통할 수 있다)
할 일을 생성하고, oracle(DB. 데이터베이스다)로 불러들여서 정렬한 상태로 보여주고, 할일을 변경하거나 삭제하는 기능을 넣는다.

SWING을 활용해서 UI를 구성하는 데에 어려워서 생각보다 시간을 많이 소모했다.
어떻게 만들지 기획과 프레젠테이션 제작과 발표 준비, 발표하는 시간까지 고려하면 실질적으로 개발하는 시간은 3-4일 밖에 안 됐다.

팁으로는, 웬만하면 주말이 끼어 있을 텐데, 완성도를 올리고 싶으면 이 주말 시간을 잘 활용해야 한다.
(이건 앞으로 나올 팀프로젝트에서도 중요한 부분이다. 주말에 공부-작업을 하는가 안 하는가에 따라 공부와 작업 진척이 차원이 달라진다.)
(수업하는 만큼 개인적으로 공부하고 소화하는 시간 또한 중요한데, 평일에는 매일 8시간 수업 듣느라 소화할 시간이 별로 없다. 그래서 주말 시간을 투자해서 개념 정리하고 예습과 실습을 해줘야 밸런스를 온전히 맞출 수 있다)

(음... 이건 내 개인적인 생각인데, SWING에서 진을 빼는 것보다는, 만약 수업 시간 때 swing을 한다면 그냥 남들 하는 정도나 기본적인 것만 하고, 나머지 시간을 웹 공부나 java 공부하는 데에 투자하자. 지금 이리저리 돌이켜봐도 swing은 진짜 아닌 것 같다. 차라리 java 콘솔을 진득하게 다루는 게 더 도움 될 수도?)

java와 DB를 끝내면 바로 html-css-js를 10일 정도만에 볶아먹는다.
이때부터 갑자기 진도가 빨라지면서 당황하는 사람들이 꽤 생길 수도 있다.
java로 이미 어느 정도 속도에 익숙해졌다 생각했겠지만 그건 약과다.
요점만 짚고 넘어가니 겉핥기란 이런 것이다 싶을 정도로 후다닥 넘어간다.
그래서 이 html-css-js 파트 때는 개인 실습을 따로 많이 해줘야 한다.
js는 당연히 진득하게 해야 하는 거고, css는 개념 자체는 간단할 수 있어도 실제로 만들면 꽤 복병이어서, 이때부터라도 차근차근 공부해 나가는 것이 좋았을 것이라는 아쉬움 많은 후기였다...
(유데미에 CSS와 JS 괜찮은 강의들이 많다)
(강의 사이트가 나와서 하는 말인데, 자금이 여유롭지 않는 이상, 인프런 이런 곳보다는 웬만하면 유데미를 이용하자. 인프런에서는 몇십만 원에 구매할 강의 퀄리티를 유데미에서는 자주 할인 이벤트를 열어서 1만 원 중후반대에 살 수 있기 때문이다. 이런 강의를 이렇게 싸게 들을 수 있다고?? 의구심이 들 정도로 후하니 꼭꼭 유데미를 이용하자. 이상 유데미에 100만 원 넘게 지른 사람의 후기였다...)

---

html-css-js 파트가 끝나면 곧바로 jsp 파트에 들어간다.
이때부터 mvc 패턴으로 구성된 웹개발에 본격적으로 들어가는데, 처음부터 끝까지 개념이 생소해서 많이 힘들어하는 단계 중 하나다.
나도 프로그래밍 언어만 예습했지, 웹은 하나도 모른 상태에서 시작해서 한참 헤맸다.
(결국 2-3번 보고 나서야 이해됐다)

이때부터 수업 진도는 빠르게 진행되고 못 따라가는 사람이 하나둘 생기면서 수업이 조용하다 못해 고요해지는 것 같다.
마치 나른한 여름에 울려 퍼지는 매미소리라고 해야 하나?
강사님의 잔잔한 목소리와 타자 소리에 여기저기 졸음이 쏟아졌다.

난 이때 처음으로 막혔기에 당황할 수밖에 없었다.
수업 중간중간 실습을 하는데, 어떻게 할지 모르니 떠듬떠듬 강사님이 써준 예제를 베끼면서 과제를 해결했다.
그것도 여기저기 터지는 에러를 정해진 시간까지 해결하지 못하는 바람에 영 꺼림칙한 느낌이 좀처럼 사라지지 않았다.
미리 예습 좀 해놨으면 어땠을까 하는 아쉬움이 이때 강하게 남았다.

하여튼 mvc 패턴이다 뭐다 하면서 복잡한 구조를 가지고 jsp로 데이터를 받고 넘기고 2-3주 동안 난리 치다 보니 어느새 spring을 하는 단계까지 와버렸다.
(jsp를 디테일하게 설명하기엔 내가 jsp에 대해 자세히 아는 게 아니어서 생략하겠다...)
보통 jsp를 끝내고 첫 번째 팀프로젝트를 진행하는데, 오정훈 강사님은 강의 일정을 스프링까지 진행하고 나서 스프링을 기반으로 한 팀프로젝트를 진행하겠다고 했다.

나는 안도의 한숨을 내쉬면서도 내심 불안했다.
jsp를 이해하지 못한 터라 당장 팀프로젝트를 한다면 개같이 할 각오였는데, 다행히 뒤로 미뤄진 것이다.
한편, 수업 진도는 계속 나갈 것이고 소화해야 할 지식량은 스노우볼링으로 점점 커져가서 막막했다.
(결국 나중에 정리하겠다고 미뤄둔 jsp를 수료할 때까지 건드려보지도 못했다...)

결국 이때부터 주말 시간을 공부에 투자하기 시작했다.
토요일 일요일 둘 다 공부하거나, 적어도 이틀 중에 하루는 독서실에 엉덩이 붙였다.
유데미로 강의 듣거나 책을 보거나 인터넷으로 공부하는 등 자료를 찾아보면서 spring을 공부했고, 다행히 그런 노력이 헛되지 않았는지 스프링이 끝나갈 때쯤에는 어찌어찌 진도를 따라잡을 수 있었다.

---
다음 편은 대망의 spring...!