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

2022년 8월 5주차(8/29 ~ 9/2) Weekly I Learned "일희일비 하지 않기"

ikjo 2022. 9. 5. 02:20

지난 한 주 되돌아보기

7월에 이어 8월도 벌써 모두 지나가고 이제 9월에 들어섰다. 마스터즈 코스 과정을 밟으면서도 한 주 한 주 시간이 정말 빠르게 간다고 느꼈었지만, 과정 수료 이후에도 시간이 빠르게 흘러가는 것은 매한가지이다. 😅 빠르게 흘러가는 시간만큼 이처럼 지난 한 주에 학습했었던 것들을 되돌아 보는 것(WIL을 작성하는 것)은 앞으로 학습하는데 있어 많은 도움이 되리라 생각이 된다. 

 

학습겸 인터뷰 대비겸 지식 정리 시작

그동안 학습하면서 관심있는 부분(주제)들에 대해선 따로 기술 블로그 글을 통해 정리하곤 했었지만, 특정 기술에 대한 키워드별로 하나하나 정리하진 않고 있었다. 특히, 기술 서적을 읽을 때는 이해하면서 읽으며 많은 시간을 썼지만, 해당 개념들에 대해 별도로 정리하진 않았기에, 시간이 흐르면 아깝게도 잊혀지곤 했다.

 

그리하여, 모든 것들에 대해 하나하나 정리할순 없겠지만, 개인적으로 알아두면 좋을 것 같은 개념들을 위주로 개념을 따로 정리해나가기 시작했다. 개발을 하다보면 구글링을 자주하는데, 어느샌가 예전에 검색했던 키워들을 다시 한 번 검색하는 수고를 하는 나 자신을 발견할 때가 종종 있었다.

 

매번 같은 내용을 구글링으로 다시 찾기 보다는, 나만의 지식 저장소를 만들어 개념을 정리하다보면, 나의 지속적인 학습에도 도움이 되고 더 나아가 나중에 인터뷰에도 도움이 될 거라는 생각에 깃허브에 나만의 지식 저장소를 만들고 정리하기 시작했다.

 

 

GitHub - ikjo93/backend-interview

Contribute to ikjo93/backend-interview development by creating an account on GitHub.

github.com

 

자바의 패키지에 대해 파헤쳐보다!

자바 스터디의 지난 7주차 과제는 패키지와 관련된 키워드(import, classpath 등)들에 대해 학습하는 것이었다. 매주 느끼는 것이지만, 마스터즈 코스 과정간의 자바 프로그래밍 경험 덕에 '자바의 정석' 서적의 내용들이 잘 읽히고 정리가 되는 느낌이라면, 지금 하고있는 자바 스터디는 '자바의 정석'을 읽으면서 '내가 안다고 착각했었던 부분들'을 정리하고 넘어갈 수 있게 해주는 느낌이다. 특히, 이번에 학습했었던 내용들 중에선 클래스 패스에 대해 새롭게 알아가는 개념들이 많았다.

 

 

Java의 패키지에 대해 알아보자! (feat. 클래스패스, import)

패키지란? 패키지란 '서로 관련된 클래스(인터페이스 등 포함)들의 그룹'으로 클래스를 효율적으로 관리할 수 있다. 이때 클래스의 실제 이름은 클래스 자체의 이름뿐만 아니라 패키지명을 모두

ikjo.tistory.com

 

다음 주차에 다룰 주제는 인터페이스에 관한 것인데, 자바의 핵심 키워드 중 하나이며 객체지향 4대 특성 중 하나인 다형성과 아주 밀접한 관련이 있는 키워드라고 생각하기에, '에이 다 아는 내용이네'라는 오만한 생각을 갖지 않고, 차근차근 학습해나가야겠다는 생각이 들었다.

 

프로그래머스 Level 3 알고리즘 풀이 시작!

지난 주 프로그래머스 Level 2의 모든 알고리즘 문제를 풀고, 이제는 Level 3 문제(쉬워보이는 문제부터 🤣)를 풀어나가기 시작하고 있다. Level 2의 경우 개인적으로 어려운 문제도 있었지만, 쉬웠던 문제는 나름대로 상당히 쉬웠던 기억이 있다. 하지만 Level 3의 경우 나름대로 쉬워보이는(제출자가 가장 많은) 문제들을 위주로 풀이했는데도, 아이디어를 떠올리기까지도 생각보다 많은 시간이 소요되곤 했다. 

 

[프로그래머스] 디스크 컨트롤러 - Java

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

ikjo.tistory.com

 

[프로그래머스] 입국심사 - Java

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

ikjo.tistory.com

예전에 현업 개발자들의 커뮤니티 내에서도 프로그래머스의 Level 2 난이도와 Level 3 난이도의 차이가 굉장히 크다는 얘기를 듣곤했었는데, 뭔가 조금씩 실감이 되는 기분이다. 또한, 알고리즘 문제를 풀다보면 잘 풀릴 때는 뭔가 자존감(?)이 상승하는듯한 기분을 받지만, 반대로 잘 안 풀릴 때는 자존감이 떨어지는듯한 기분을 받는다. 앞으로 Level 3를 푸는데 있어서도 이러한 감정 기복이 자주 있을텐데, 이를 잘 컨트롤해야겠다는 생각이 들었다.

 

오랜만에 운영체제 공부!

운영체제 공부를 한동안 안하고 있다가 오랜만에 운영체제를 학습했다. 😅 이번에 학습했었던 부분은 '프로세스 동기화' 관련 파트여러 프로세스가 공유 자원에 동시에 접근함에 따라 발생하는 동시성 이슈를 알고리즘이나 하드웨어적으로 해결해나가는 과정을 대략적으로 살펴볼 수 있었다.

 

이미 과거부터 OS 시스템을 개발함에 있어서 이러한 동시성 이슈에 대해 고민하고 해결해나가는 과정을 보며, 정말 현대의 IT 기술들이 뭐 하나 용빼는 재주로 생긴 것이 없고, 수많은 시행착오들과 고뇌 그리고 한땀 한땀의 프로그래밍으로 이루어진 것임을 체감할 수 있었다. 😂

 

운영체제를 이해하는 것은 프로그래밍을 깊이있게 이해하는 것에 많은 도움이 된다는 얘기가 많기에, 운영체제 학습은 꼭 완주해야겠다는 생각이 들었다.