Weekly I Learned/2022's(7. ~ 12.) WIL

2022년 11월 4주차(11/21 ~ 11/25) Weekly I Learned "코로나 확진으로 고생했던 한 주 💦"

ikjo 2022. 11. 28. 12:47

지난 한 주 되돌아보기

코로나 확진을 암시했었던걸까 11월 4주차의 시작부터 다소 무기력함이 느껴졌었고 학습 보다는 '쉬고 싶다'는 마음이 솔솔 들었다. (코로나랑 상관없이 단순히 놀고싶어서 그랬을 수도 있다. 😂) 그러던 중 금요일부터 인후통과 몸살 기운이 슬슬 올라오더니 토요일날 극한의(?) 근육통과 오한에 시달려 병원에서 코로나 검사를 받아보니 양성 판정을 받게 되었다. 😇 여러모로 학습 컨디션이 매우 안 좋은 상태에서 지난 한 주 동안 나름대로 학습했었던 것을 되돌아보고자 한다.

 

계속되는 프로젝트 세부 기획 논의 🏃‍♂️

지난 11월 3주차에 이어 이번 11월 4주차에도 프로젝트 세부 기획은 계속되었다. 최초에 팀원들과 프로젝트 아이디어에 대한 막연한 밑그림을 그리는 단계에서는 진척 속도가 빨랐지만, 각 기능들에 대해 어떤 유저 플로우를 가질지, 어떤 방식으로 구현할지 등 세부 기획을 논의하는 단계에서는 진척 속도가 더딜 수밖에 없었다. 은근히 시간이 소요되고는 있지만 디자이너, FE 개발자, BE 개발자간 세부 기획을 논의하는 과정에서 좋은 의견과 추가 아이디어들이 많이 오고간 덕에 기존 보다 기획 내용이 더 탄탄해진 느낌이다. 👍

 

알고리즘, 먼저 코드를 치기보다는 생각부터하기!

알고리즘 문제를 푸는데 있어 매번 그래야하지 생각은 하지만 막상 실전에서는 잘 되지 않는 것 중 하나가 있는데, 바로 문제를 해결하기 위한 접근 방법에 대한 충분한 고민 없이 일단 코드부터 작성하는 것이다. 나 같은 경우 '문제를 보고 막연히 일단 이렇게 풀어볼까?' 등 대략적인 접근방법만 생각 하고 코드를 작성하는 경우가 많았는데, 이로 인해 시간을 허비하게 되는 경우가 많았다.

 

지난 11월 4주차간 풀었던 알고리즘 문제들 중에서도 이와 같은 상황이 벌어졌었는데, 가장 인상깊었던 것은 프로그래머스의 '기둥과 보 설치'라는 문제였다.

 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

해당 문제를 푸는데 있어 단순히 n * n 의 배열을 통해 기둥과 보를 조건에 따라 설치 및 삭제하면 되겠거니 했지만, 그 과정에서 여러가지 봉착(?) 상황에 놓여 기존 작성했던 코드를 지우고 다시 다른 방식으로 코드를 작성하는 등 많은 시간을 허비하게 되었다.

 

결론적으로 여러번의 시행착오와 고민 끝에 문제에 대한 접근 방법을 달리함으로써 문제를 해결할 수 있었지만, 만일 실제 코딩테스트였다면, 이 한 문제를 풀다가 다른 문제를 못 풀게되는 불상사가 발생했으리라 생각한다...😇 그래서 애초에 일단 구현하기 보다는 접근 방법에 대한 충분한 고민을 통해 나의 논리적으로 문제를 해결하기에 타당하다고 판단했을 때 코드를 작성했었더라면 하는 생각이 들었다.

 

물론, 문제를 풀어본 경험이 많지 않은 경우 직접 구현해보기 전까지는 어떤 문제 상황에 봉착하게 될지 모르는 문제도 있다. (한마디로 어려운 문제) 💦 실제로 위 문제의 경우도 2020 카카오 블라인드 채용 1차 코딩테스트 문제로 출제되었는데, 당시 정답률이 1%대 였다고 한다. 👀 이 정도 수준의 문제를 실전에서 코드를 작성하기 전 완벽한 접근 방법을 떠올리고 코드 작성에 대한 시행착오를 줄임으로써 빠른 시간 내에 풀 수 있으려면 앞으로도 꾸준한 연습이 필요해보인다..!

 

호눅스의 '실습으로 배우는 AWS 핵심 서비스' 완강!

지난 11월 3주차에 이어 이번 11월 4주차에도 호눅스가 강의하신 인프런 '실습으로 배우는 AWS 핵심 서비스' 학습을 지속했고 마침내 모두 완강할 수 있었다. 마스터즈 코스 당시 이 강의를 들었을 때에는 어떻게 하면 현재 진행하고 있는 프로젝트에 해당 기술을 적용할 수 있는지 등 '구현'에 집중했었다면, 이번에 이 강의를 전반적으로 학습할 때는 '기초 개념과 사용하는 이유'에 대해 깊이 있게 학습하고자 했다.

 

마스터즈 코스 시작 전에 이 강의를 알았었더라면 마스터즈 코스 때 좀 더 나은 프로젝트를 진행할 수 있지 않았을까 하는 아쉬움이 있지만, 현재 진행하고 있는 프로젝트의 AWS 인프라를 구축하는데 있어 이번에 배웠던 내용들을 참고하여 요긴하게 사용하고자 한다. 🏋️‍♀️

 

프로젝트를 위한 JPA  학습 시작!

호눅스의 AWS 강의에 이어서 김영한님의 JPA 기본편 강의를 학습하기 시작했다. 사실 김영한님의 JPA 기본편 강의를 올해 5월 즈음 '연관관계 매핑' 부분 까지만 학습하고 그 이후 마스터즈 코스 수료 전까지 (변명이지만 💦) 팀 프로젝트 기능 구현에 쫓겨 주먹구구식으로 JPA를 사용했었다. 😂

 

수료 이후에 별다른 프로젝트를 진행하지 않았다보니 JPA에 대한 이해 수준이 지난 6~7월에 머물러 있었기에 이번 기회에 강의를 통해 JPA 기초를 다져놔야겠다는 생각이 들었다. 아직 기본편을 마무리하진 못한 상황이지만, 지난 5월에 JPA를 학습할 때는 영속성 컨텍스트에 대한 개념과 원리가 흥미로웠다면 최근 학습한 것들 중에선 프록시와 즉시/지연 로딩 그리고 영속성 전이와 고아 객체에 대한 내용이 흥미로웠다. (이 강의 외에도 앞으로 수강해야할 강의들이 산더미 처럼 쌓여있는데, 😂 차근차근 하나씩 수강해나가고자 한다!)

 

반 빈사 상태로 응시하게 된 코딩테스트... 😇

앞서 코로나 확진으로 인해 토요일에 극한의 근육통과 오한(열 40도)이 왔었다고 했었는데, 공교롭게도 토요일 오전에는 데브매칭 코딩테스트가, 오후에는 카카오 모빌리티 1차 코딩테스트가 예정되어 있었다...😂 솔직히 컨디션 상태가 너무 안 좋아서 코딩테스트를 그냥 포기할까도 했었지만, 좋은 결과보다 그냥 자리만이라도 지키자 하는 마음으로 시험에 꾸역꾸역 응시했다. 💦 컨디션이 너무 안 좋았기에 코딩테스트를 풀면서 처음으로 시간이 왜 이렇게 안갈까하는 생각(그냥 빨리 쉬고 싶다는 생각)이 든 건 이번이 처음인 것 같다..😂

 

(개인적인 문제 체감 난이도 상 데브매칭은 어려운 편에 속했고 (SQL 맞왜틀...👀) 카카오 모빌리티 1차 코딩테스트는 쉬운 편에 속했다.)