사전 과제..?
이번 8기 BaseCamp 1주차는 ‘사전 과제’ 주간으로 진행되었다. Java와 Spring FrameWork를 이용한 ‘방명록 사이트’와 ‘영화 리뷰 사이트’를 구현하는 것이었다.
Git을 가꾸어 보자
일단은, 내가 생각보다 git의 여러 기능들을 잘 모르고 살아왔다는 생각이 많이 들었다. 단순히 코드 저장소로만 써 왔기 때문에, 이곳에서 다른 사람들과 함께 git issue도 작성해 보고, milestone도 작성해 보고, 또 어떤 분은 git project 기능을 이용해서 notion의 포스트잇처럼 이슈를 관리하는 기능을 사용하고 계셨다…!
‘나는 어떻게 여기에 들어올 수 있었을까…?’ 싶은 순간들이었다. 조만간 Git의 여러 기능들이랑 단축키들을 정리해서 포스팅해야지!
맥북 + 인텔리제이의 강력함
맥북! 내가 동경해 마지않던 그 노트북이 현실로 다가왔다..! 그러나 첫날에는 온갖 단축키와 달라진 키보드 배열에 골머리를 앓아야 했다. Ctrl c v는 왜 안되는 것이며 fn은 어디 있는 것인가… 한영키는 어디있고 print screen은 어떻게 하는 것이며 숨김 파일은 어떻게 봐야 하는가 정말 골칫거리들이 많았다.
그러나 적응하는데 하루면 정말정말 충분한 시간이었다. 맥북에 일단 적응한다면 반대로 윈도우 키보드를 쓸 때 너무 불편함을 깨닫게 된다.
“아니 Caps lock을 눌렀는데 왜 한영전환이 안되는 거지?!?!”
위 글을 이해한다면 당신은 맥북 없이는 못 사는 몸이 되어버리는 것이다!
처음 접해보는 여러 기술들
학부 시절에 내 주력 언어는 C++과 Python이었다. Java는 4학년이 되어서야 제대로 만져 보기 시작했으며 spring은 접해 보지도 못했다. 때문에 나는 취업 준비를 할 때 C++, python 기반의 코딩 테스트를 준비했었고, 나름대로 준비한 여러 포토폴리오들도 그러했었다.
그래서 Java와 Spring을 첫날 딱 봤을 때 ‘드디어 넘어야 할 산이 온다’고 생각했었다. 남들은 다 Java도 하고 앱 개발도 할 때, 나는 익숙한 C++과 python의 굴레에서 벗어나지 못하고 있었으니 말이다. 다만, 왜인지는 모르겠지만 C++을 쓰다가 Java를 쓰면 많이 불편하겠거니 싶었던 선입견이 계속 있어 왔다.
Spring FrameWork를 쓰면서 annotation이 그렇게 편한 것인줄 알았으면 진작 접해볼 것 그랬다.
명시와 동시에 선언이 된다니… 하나의 annotation 안에 여러 메서드가 자동으로 포함되어 있다니…
조만간 Spring의 annotation 등 내가 알게 된 것들을 잘 정리해야겠다.
데이터베이스의 역습
정말, 정말로, 사전 과제에서부터 데이터베이스와 만나게 될 줄은 몰랐다. 1장을 이해하고자 코드를 치는데 엥 mariaDB 구축..? SQL Query문..? @Query..? 어찌어찌 학부에서 배운 지식을 짜내어 이해하고 넘어가는데 아니나 다를까 뒤에서 계속 쓰이는 것을 보고야 말았다! 이래서 CS 기본기는 패시브처럼 가지고 있어야 하는구나를 깨닫게 된 순간이 아니었을까 싶다.
책에서는 자연스럽게 Left Outer Join을 하고 Distinct를 하는데, 왜 그래야 하는지를 생각해보는 과정이 나에게는 필요했다. 이럴 줄 알았으면 학부시절에 데이터베이스 2까지 모두 들었을 텐데 아쉬운 순간이 아닐 수 없었다. 부디 이 글을 보고 계시는 학부생분들이라면 꼭꼭 CS과목들을 많이 챙겨 들으시기를 권한다…!
그래도 전혀 생뚱맞게 처음 보는 지식은 아니어서 다행이었다. 학부 시절 프로젝트를 할 당시에는 NoSQL을 많이 즐겨 사용했지만, 이제는 MySQL문과 여러 Query문을 제대로 파헤쳐 보고 많이 사용해봐야 하지 않을까 생각한다. 오잉 이거 Java와 같은 존재인걸?
새로운 시작, 이미 알고 있던 지식, 처음 접하는 지식
사전 과제 테스트를 1시간 앞두고 이 포스팅을 하고 있는 이유는, 베이스캠프 1주차 때 지금의 마음가짐을 기억해 두고자 함이 가장 크다. 정말 개발에 관심이 많고 다양한 경험을 하신 분들을 볼 수 있었고, 특히 월요일에 멘토분께 피드백을 받을 일이 있었는데 사소한 문제에도 로그를 뒤져가며 끈질기게 질문해 주시고, 해결하고자 하는 모습에서 큰 감명을 받게 되었다. 결국 맨 앞에 ‘/’를 추가하지 못한 나의 실수였지만, 컴퓨터에게는 그것이 실수가 아니라 제대로 된 명령으로 받아들여 ‘컴파일 오류’가 아닌 ‘논리적 오류’가 발생하였던 것이다.
이러한 오류는 잡기 정말 쉽지 않다. 하지만 웹 프로젝트의 특성상 서버와 브라우저가 어떤 값을 주고 받는지를 보면 에러의 원인을 찾는 데 큰 도움이 됨을 새삼스레 깨닫는 시간이었다. 멘토분께서 404 Error를 지적해 주시고 ‘주소가 잘못되었다.’, ‘주소를 못 찾고 있다.’는 말씀을 해 주셨을 때 코드의 주소 부분에 오타가 더 선명하게 보였듯이 말이다. 이미 알고 있던 지식이라도, 보는 시야에 따라 생각지도 못한 곳에서 튀어나오는 경우가 있다.
처음 접하는 지식처럼 잘 정리해 놓아서, 다음에 비슷한 문제가 생겼을 때 참조할 만한 노트가 된다면 정말 좋을 것 같다.
베이스캠프 1주차를 지나면서 소감은, 학부 시절과는 정말 많이 다르고 또 발전해야 하는 곳이 바로 이 자리이지 않을까 싶다. 때로는 유쾌하면서 누구보다 개발에 열정적인 동료분들과 함께 할 수 있어서 행복하다. 이곳에서 나는 잘 할 수 있을까? 당장 곧 사전 과제 테스트를 보는데 잘 볼 수 있을까? 이런 생각을 하면서 당장 눈앞의 결과에 일희일비하기보다는, 묵묵히 배워나가고 때로는 팀원분들에게 좋은 영향을 줄 수 있도록 노력하는 개발자가 되고자 한다.
p.s. 이곳에 올린 기술적인 이야기나 여러 의문들은 꼭 이 블로그에 포스팅해보자..!