Weekly I Learned/2023's(1. ~ 12.) WIL

2023년 3월 3주차(3/20 ~ 3/24) Weekly I Learned "묵묵하게 하기"

ikjo 2023. 3. 26. 01:45

지난 한 주 되돌아보기

늘 그렇듯이(?) 3월 3주차도 빠르게 흘러갔다. IT 는 항상 기술 변화 속도가 빨랐지만, 요즘 들어 더욱 빠르게 기술이 변화하고 있음을 느끼고 있기에, 때로는 조바심이 들기도 하지만, 우선은 내게 주어진 과업을 완수하는데 집중하고자 한다. 🏋️‍♀️

 

SSAFY, Java 웹 백엔드 개발 기초를 다루다!

지난 주 프론트 엔드 개발 기초에 이어 SSAFY 의 3월 3주차 교육 과정은 Java 웹 백엔드 개발 기초를 다루는 것이었다. 해당 교육 과정은 국내에서 많이 사용되고 있는 Java 기반의 웹 프레임워크인 Spring 을 먼저 다루기 보다 Java EE의 Servlet/JSP/JSTL 등을 기반으로 한 웹 개발을 먼저 다루었다.

 

작년 코드스쿼드의 마스터즈 코스를 수강하던 시절부터 Spring 프레임워크를 사용했었지만, Spring 프레임워크를 사용하기 전에는 어떤 방식으로 웹 개발을 해왔는지, 그 과정에서 왜 Spring 프레임워크를 사용해야 했는지에 대한 이해가 많이 부족했었는데, 해당 과정 간 Servlet/JSP/JSTL 등을 기반으로 간단한 웹 사이트 개발을 진행해보면서 개발자가 웹 개발을 함에 있어 Spring 프레임워크가 어떤 편익을 제공해주는지를 체감할 수 있었던 시간이었다.

 

사실 SSAFY 의 교육 과정 중 이처럼 다소 옛날 기술 스택들이 일부 포진되어 있어 내게 큰 도움되리라 하는 기대는 적었지만, 생각보다 이 과정들을 따라가면서 많은 인사이트를 얻어 갈 수 있었다.

 

알고리즘, 백준 600 문제 및 프로그래머스 400 문제 풀이 완료!

SSAFY에 입과하던 당시 백준의 경우 알고리즘 400 문제 정도, 프로그래머스 경우 알고리즘 370 문제 정도를 푼 상태였는데, 3월 3주차에 다다른 현재 백준 600문제 및 프로그래머스 400문제를 풀어 총 1000문제를 푼 상태에 있다. 이외에도 SSAFY 에서는 SWEA 라는 온라인 저지를 주로 활용하는데, SSAFY 과정을 따라가면서 해당 사이트에서는 대략 60 문제 정도를 풀이한 것 같다.

 

내 예상대로 SSAFY 는 알고리즘에 굉장히 특화된 교육 과정이었고, 더욱이 같은 반 교육생들과 함께 스터디를 진행했었기에 짧은 시간 내에 많은 수의 문제들을 풀게 된 것 같다. 

 

뭔가 단순히 풀이한 문제 개수로는 많아 보이지만, 백준의 경우 풀이한 문제의 대부분이 브론즈와 실버인데다가, 프로그래머스 역시 풀이한 문제들이 대부분 level 0 ~ 2 문제들이기에 아직 가야할 길이 한참 멀었다고 생각한다. 요즘 아주 개인적으로 드는 생각은 진정한(?) 알고리즘의 시작은 백준 기준 골드부터, 프로그래머스 level 3 부터가 아닐까하는 것이다. 😇

 

PS 온라인 저지 '백준'

 

PS 온라인 저지 '프로그래머스'

 

프로그래머스 level 3 의 경우 절반은 풀었지만 나머지 절반의 경우 나에게 있어 난이도가 너무 높기에 지금 해온대로 백준을 좀 더 중점적으로 알고리즘 문제를 풀이하고자 한다. 🏃‍♂️

 

(백준 1일 1 커밋 운동은 계속 되고 있다 🎉)

 

 

프로그래머스 상반기 웹 백엔드 개발자 데브매칭 코딩테스트 응시!

3월 3주차에는 2023년 처음으로 진행되는 프로그래머스 웹 백엔드 데브매칭 코딩테스트에 응시해보았다. 프로그래머스 데브매칭 코딩테스트는 (웹 백엔드 개발자 전형 기준) 2시간이라는 시간 동안 알고리즘 3 문제 및 SQL 1 문제를 푸는 것인데, 이번 테스트부터 IDE 사용이 금지되었다. 😭 (아마도 IDE 의 플러그인 chatGPT 기능을 기반으로 한 부정 행위를 방지하고자 함이 아닐까 싶다. 👀 이와 함께 웹 검색 및 교재 참고 역시 이번 테스트부터 금지되었다.) 이제 더이상 IDE에 의존하지 않고 아주 기본적인 에디터 상으로 코딩테스트를 준비해야겠다는 필요성을 느끼고 있다.

 

이번 시험의 결과는 결론적으로 알고리즘은 3문제 중 2.375 문제를 Solved 했고, SQL 문제는 풀지 못했다. 😇 알고리즘의 경우 1 ~ 2번은 큰 어려움 없이 풀었지만 하필 3번이 내가 제일 취약한 다이나믹 프로그래밍 유형의 문제였기에 해결할 수 없었고 부분 점수(0.375 문제)라도 받기 위해 완전 탐색으로 구현하고 마무리 지었다. 근래 코딩테스트를 보면서 다이나믹 프로그래밍 유형의 문제들을 자주 볼 수 있었는데, 매번 알고리즘 문제를 연습할 때마다 내게 익숙한 유형의 문제를 풀려다 보니 다이나믹 프로그래밍 유형의 문제가 나오면 속수무책으로 당하게 된다. 💦

 

아니나 다를까 다음주부터 SSAFY 의 교육 과정으로 다이나믹 프로그래밍 알고리즘에 대해 집중적으로 다루는 시간을 가지는데, 이 시간을 통해 다이나믹 프로그래밍 알고리즘 역량을 기르고 자신감도 기르고자 한다. 🎉

 

(나의 경우 별도로 SQL 을 학습하고있지는 않지만, 이번에 출제된 SQL 문제 유형은 지금까지 보았던 SQL 문제와 완전히 다른 유형이었기에 거의 손도 못댔다. 😇 문제를 보며 마치 이게 SQL 문제인지, 알고리즘 문제인지 하는 생각이 들었다. 👀)