본문 바로가기

데브코스

태풍과 피해복구. 데브코스 4주차 정리

3주차가 태풍의 영향권 시작이었다면, 4주차는 태풍의 한 가운데에 있는 듯하다. 저번주는 살짝 어렵긴 해도 '힘들다', '못하겠다' 이런 생각은 안 들었지만 이번주는 학습을 하면서 머리가 터지는 줄 알았다. 이번 글에서는 대략적으로 무엇을 학습했고 어려웠던 내용을 익히기 위해 어떻게 노력하였는지 정리해보려 한다.

 

스프링 태풍에 의한 정신적 피해

이번 주는 주로 데이터베이스와 관련된 기술을 배웠다. 구체적으로 스프링에서 MySQL에 연결하여 쿼리를 날리는 기술들이었다. 이후엔 JdbcTemplate와 NamedParameterJdbcTemplate를 배우고 과제를 진행하였다.

 

Jdbc에서는 Connection을 가져와 MySQL과 연결하여 작업을 진행하였다. 이 과정에서 try-with-resource 문으로 connection 등의 자원을 연결하고 해제하는 작업이 번거로웠다. JdbcTemplate은 이러한 자원 관리를 템플릿 콜백 메소드로 처리해주었다. 또한 Jdbc에서 발생할 수 있는 SQL Injection을 대비할 수 있게 SQL문을 미리 컴파일 해놓고 변수를 동적으로 설정하여 쿼리를 작성할 수 있었다. JdbcTemplate에서는 변수를 설정하는 부분을 쿼리에 ?로 표시하여 매핑되는 부분이 모호하였는다. NamedParamterJdbcTemplate는 이를 직접 변수 이름을 적을 수 있게 도와주었다. 

 

학습도 어려웠는데 과제도 만만치 않았다. 과제는 요구사항에 맞게 DB와 클래스를 설계해야 했다. 근데 이 설계라는 것이 수학 문제처럼 정답이 있는 것이 아니었다. 요구사항을 만족하고 객체지향의 원칙을 지키면서 합당한 근거를 바탕으로 설계해야 했기 때문에 쉽사리 방법을 확정짓기 힘들었다. 아직도 설계하는 부분에 대해 확신을 갖지 못하였기 때문에 이 부분은 추후에 더 공부할 예정이다.

 

빠르고 안전한 피해복구 방법

이번 주에는 큰 성과를 하나 얻었다. 바로 마인드 맵처럼 키워드를 연결짓는 학습 방법이다. 기존에도 팀원들과 모여서 학습한 내용에 대한 정리나 질문을 하는 자리는 있었지만 서로 우물쭈물만 해서 원활히 진행되지 않았다. 지지부진한 공부 방법을 개선하기 위해 마인드 맵 방식을 적용하였는데 효과는 굉장했다.

 

구체적으로, 맨 처음 제시어를 설정하고 한 사람씩 돌아가면서 이전에 나온 키워드와 연관된 다른 키워드를 제시한다. 그리고 해당 키워드에 대한 간략한 설명을 하고 다른 팀원들에겐 질문을 한다. 그럼 다른 팀원들은 질문에 대한 답변이나 다른 보충 설명을 한다. 이전의 방식과 달리 새로운 방식을 적용해보니 팀원들의 참여도도 높아지고 각자가 학습한 내용에 대해 아는 것과 모르는 것을 명확히 인지할 수 있는 기회가 되었다.

 

팀원들의 반응도 굉장히 좋았다. 평소에 말 수가 조금 적은 팀원들이 먼저 나서서 이 방식을 유지하자고 요청할 정도였다. 사실 이전의 방식은 아무런 형식 없이 "얘기해보세요" 라는 방식이었기에 다들 무엇을 어떻게 말해야 하나 망설였던 것 같다. 단지 마인드 맵 형식으로 학습 방법 하나를 바꾸었을 뿐인데 이 형식 위에서 뛰어노는 사람들이 얻는 효과는 뛰어났다. 다음 주에도 팀원들과 함께 학습하며 스프링에 대한 이해를 단단히 다졌으면 좋겠다.