(이미지와 글 간의 내용은 상관관계가 없습니다.)(산뜻한 이미지를 올려놓고 싶어서..)
5월 20일부터 5월 27일을 돌아보면서 회고하는 시간을 가져본다.
부트캠프를 진행하면서 파이썬 + 자바스크립트 ... etc로 웹 풀스택을 전반적으로 공부해왔는데,
20일부터 Java를 배우기 시작했다.
기초 문법은 거의 다 알고 있어서 x 2~3 배속으로 빠르게 넘겼다.
추상화, 상속, 인터페이스, 다형성, 객체지향, Exception, Collection 등은 x 1.5 ~ 2배속 정도로 강의를 들으면서 모르는게 있으면 따로 정리했다.
git bash로 github 협업을 연습하기 위해 팀을 꾸렸다.
처음에는 가볍게 github 협업을 경험해보려 했으나 어쩌다 보니 로그인 기능이 들어간 블로그 형태의 게시판 프로젝트를 만들게 되었다.
부트캠프 과제도 있고.. 할 시간이 많이 부족하지만 짬내가면서 계속 해나가보려 한다.
사이드 프로젝트는 짬나는 시간마다 조금씩 유지보수 하는게 사실 베스트니까.
순수 Java를 이용해서 키오스크를 만드는 과제가 주어졌다.
처음에는 뭐부터 해야할까 막막했다.
내가 지금 생각하는 방향이 과제 요구사항에 들어맞을까?
이런저런 의심도 들고, 그림이 전혀 안그려졌다.
그래도 포기하지 않고 1~2시간 정도 요구사항을 계속 읽다보니 한가닥 한가닥 해결 방법이 떠오르기 시작했다.
처음부터 모든 설계를 다하고 기능을 만드는건 내 수준에서 어렵다고 판단했고,
하나 기능을 최대한 객체지향 적으로 먼저 만들고 반복되는 틀을 확장하는 방식으로
기능을 확장해나갔다.
지금은 기능 구현을 거의 마친 상황이고, 메서드명, 변수명, 추상화 작업.. 등 객체지향 작업을 더 해야할 것 같다.
다음주 화요일 부터는 팀원 또는 부트캠프 동료 분 이랑 코드리뷰를 서로 해가거나, 튜터분께 더 객체지향적으로 코드를 짜는 방법에 대해 피드백을 듣고 개선해보려 한다.
유튜브나, 개발 강의 강사 분들이 공통적으로 하시는 말씀이 "왜?"라는 질문을 수시로 하라는 것이다.
왜? 이 기술을 써야할까?
왜? 이 상황에 이렇게 해야할까? 더 좋은 방법은 없을까?
...
내가 공부하려고 하는 것이든 뭐든 이유가 필요하다.
예를 들어 왜? mybatis를 사용해서 프로젝트를 만들어보려하는가?
쿼리문을 직접적으로 작성해보면서 쿼리문 작성 감각을 더 키우기 위해.
왜 객체지향 공부를 해야할까?
코드를 확장하거나 유지보수할 때 더 용이하게 하기 위해
장기적인 관점에서 큰 장점이기 때문에,
... 현재 내 상황에서 내가 만들고 있는 프로젝트에서 어떤 부분을 개선하면 좋을까?
이 기능에 어떤 기술이 좋을까? 요즘 트렌디한 기술은 뭘까?
이 기술의 장단점은 무엇일까?
등등을 고려하면서 기술 스택을 결정하고 선택하면 좋을 것 같다.