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

2022년 9월 3주차(9/19 ~ 9/23) Weekly I Learned "Keeping at it!!"

ikjo 2022. 9. 26. 21:59

지난 한 주 되돌아보기

지난 주 토요일에는 2023 카카오 블라인드 신입 공채 코딩테스트가 예정되어 있어 (사실은 늘 그렇듯이?) 알고리즘 문제 풀이하는데 많은 시간을 할애했었다. 결과적으로 많은 아쉬움이 있었던 코딩테스트였으며, 앞으로 좀 더 많은 노력이 필요하다는 생각이 들었다.

 

자바의 멀티 쓰레드 프로그래밍에 대해 알아보았다!

이번 주 자바 스터디 과제로는 자바의 멀티 쓰레드 프로그래밍에 대해 학습해보는 것이었다. 학습 키워드로는 "Thread 클래스와 Runnable 인터페이스", "쓰레드의 상태", "쓰레드의 우선순위", "Main 쓰레드", "동기화", "데드락"이 주어졌는데, 사실 개인적으로 멀티 쓰레드 프로그래밍 경험이 많지 않아, 개념 위주로 학습을 진행했었다.

 

아울러 멀티 쓰레드 프로그래밍을 학습하기 앞서 프로세스와 스레드의 차이 그리고 멀티 태스킹과 멀티 스레드의 차이에 대해 제대로 이해하고 있어야 할 필요를 느꼈기에, 이에 대해서도 따로 정리하는 시간을 가져보았다.

 

 

프로세스 vs 스레드 그리고 멀티 태스킹 vs 멀티 스레드

프로세스와 스레드 자바 스터디의 일환으로 자바의 멀티 스레드 프로그래밍을 학습하던 중 이를 다루기 위해서는 앞서 프로세스와 스레드의 차이 그리고 더 나아가서 멀티 태스킹과 멀티 스레

ikjo.tistory.com

 

 

Java의 멀티 스레드(Multi-Thread) 프로그래밍에 대해 알아보자!

개인적으로 자바의 멀티 스레드 프로그래밍 학습에 앞서 적어도 프로세스와 스레드의 차이 그리고 멀티 태스킹과 멀티 스레드의 차이에 대해선 제대로 알고 넘어가야겠다는 생각이 들었다. 이

ikjo.tistory.com

 

이번 학습은 단순 개념 위주로 학습을 진행했었지만, 추후에는 서버 프로그램을 직접 구현해봄으로써 멀티 쓰레드 프로그래밍에 대해 더욱 깊이있게 학습하고 싶다는 생각이 들었다. 이전에 마스터즈 코스에서 웹 서버 구현 미션을 페어와 함께 진행해본 경험이 있었지만, 단순 구현 위주로 학습을 했었기에 나중에 좀 더 깊이있게 웹 서버 구현 미션을 진행해보고 싶다는 생각이 들었다. 

 

백준 알고리즘 문제 풀이 삼매경(?)

어쩌다보니 지난 주에 이어 이번 한 주도 백준 알고리즘 문제 풀이 삼매경에 이르렀다. 😅 백준 "단계별로 풀어보기"를 통해서 여러 유형들의 문제들을 풀어보고 한 단계 한 단계 레이팅이 오르는 희열(?)이 느껴지면서 마치 과거 학창시절에 게임을 하던 시절로 되돌아간듯한 기분이었다. 🤣

 

(사실 알고리즘 문제를 풀고나면 복기 차원에서 접근 방법들을 정리하는 편인데, 이번에는 문제 풀이에만 집중하느라 별다른 문제 풀이에 대한 글을 작성하지 못했다.)

 

특히나 이번 주에는 카카오 코딩테스트에 응시해봤는데, "아직 멀었구나"하는 생각이 들었던 시험이었다. 지난 주에 치렀던 자비스앤빌런즈 코딩테스트에서는 나름대로 올솔(All Solved)에 성공해서 기분이 좋았지만, 역시 카카오 코딩테스트는 악명대로 (나에게 있어) 난이도가 매우 높았다.

 

우연히 구글링을 통해 몇몇분들께서 이번 카카오 코딩테스트 응시 후기를 남긴 글을 보았었는데, 백준 온라인 저지에서만 1000문제 가량의 알고리즘 문제를 풀이하신 분들(다이아 티어)께서나 6~7문제 풀이하신 것을 보고 마음이 숙연해졌다. 😇

 

나의 경우 아직 골드 5 ~ 3 티어의 문제들 조차도 많은 시간을 할애해야(또는 힌트를 얻어야) 풀이할 수 있는 수준이기에, 앞으로 갈 길이 멀었다는 생각이 들었다. "첫 술에 배 부르랴"라는 말이 있듯이 마스터즈 코스를 수료한지 아직 3개월도 되지 않았고 알고리즘을 본격적으로 학습한지도 얼마되지 않았으니 좀 더 여유를 가지고 알고리즘 기초 다지기에 들어가고자 한다. 💪