꾸준히

[TIL-188] 새해 첫 출근

무자비한 낭만주먹 2024. 1. 8. 07:26

[그림1]. 오늘도 감사한 공부 시작 ~

 

목차

 

0. 오늘의 학습 시간
1. 오늘 배운 것
2. 오늘의 알고리즘
3. 오늘의 CS
4. 영어 받아쓰기
5. 내일 할 일 (청사진)
6. 감사한 일

 

0. 오늘의 학습 시간
07:00 ~ 08:00: 출근길 기차에서 공부
08:20 ~ 08:50: 열심히 뛰어서 회사 빨리 도착해서 짜투리 공부
11:30 ~ 13:00: 점심 짜투리 공부 
21:00 ~ 24:00: 주짓수 끝나고 f-lab 갓생 챌린지, 야간 모각코 진행

 

1. 오늘 배운 것
- (각오) 2024년 New 최찬혁으로서 첫 출근이다. 언제나처럼 최선을 다해 친절하고 맡은 바 일에 감사한 마음을 잃지 말자.

[

 

 

2. 오늘의 알고리즘
간단한 리트코드 문제를 풀었다.

 

3. 이주의 CS
[2024-01-01]
- JVM의 메모리에서 'Heap, Method'영역을 제외한 나머지 영역은 공유되는게 아니다.
- 스택 영역의 경우 '쓰레드 마다' 런타입 스택이란 걸 만들고 스택 프레임을 쌓는다. (여기서 스택 프레임은 메서드 콜을 의미함)
- 결국 쓰레드마다 스택 안에 메서드 콜 정보를 쌓는다는 의미
- 에러 났을 때 보면 에러 내용이 스택 형식으로 적재되지 않은가, 그 얘기다.
- 그놈에 PC는 결국 스택 프레임을 가르키는 놈인데, 스택 프레임이 아까 뭐라고했는지 기억 나는가? 메서드 콜이다. 
- 결국 PC는 메서드 콜 위치를 가르키는 놈이다. 
- 클래스 로더가 하는 일은 결국에 클래스 파일을 바이트 코드로 번역하고 static 값들을 메모리에 적재하는 것 까지이다.
- 이건 중요한 건 아니지만, 클래스 레벨에서 new 한 객체들은 사실 심볼릭 메모리 레퍼런스라고 해서 논리적으로만 생성된다.
-  Stop-The-World는 GC가 동작하는 동안 다른 작업이 멈추는 현상을 의미하는데
- 이는 메모리를 효율적으로 비우기 위해 메모리의 상태가 변하면 안되는 경우에 이렇다.
- 그래서 이 STW는 서비스에 영향을 끼칠 수 있고 이 시간을 최소화하는 것이 필요하다.
- 주로 에덴 영역을 거쳐 OLD 영역으로 넘어온 경우에 이와 관련된 문제가 생긴다.
- 또한 GC는 실시간성이 중요한 서비스에 좋지 못한 선택이 될 수 있다.
- 그래서 이 GC를 어떻게 효율적으로 튜닝할 건지에 대한 내용이 GC 튜닝이다.
- GC는 어떤 Object를 Garbage로 판단하느냐는 Reachable이라는 개념을 이용한다.
- 결국 참조되냐 참조되지 않냐 여부를 보고 지운다는건데, 간단히 얘기하면 Stack이나 Method 영역에 참조되고 있지 않는 객체를 Garbage로 판단한다.
- 옛날 GC는 YOUNG와 OLD 영역으로 나눴고, YOUNG 영역을 OLD 영역에 비해 작게 만들었다.
- 이에 대한 근거는 대부분의 객체는 오래 남아있지 않는다는 이유 때문이었다. 이렇게 작은 영역(YOUNG)에 대한 GC라고 해서
우리는 이를 Minor GC 라고 불렀다.
- 반대로 OLD 영역에 대한 GC는 Major GC라고 부른다.
- 사실 STW문제는 GC 알고리즘에 따라 YOUNG영역에서도 충분히 발생할 수 있다.
- 최근 사용되고 있는 GC는 1.9부터 디폴트가 된 G1 GC이다.

[2024-01-02]
- 쓰레드를 생성하는 방법에는 Runnable 인터페이스를 사용하는 방법과 Thread 클래스를 사용하는 방법 두가지가 있다.
- Runnable 인터페이스와 Thread인터페이스 둘 다 java.lang 패키지에 있다.
- Runnable 인터페이스에 선언되어 있는 메서드는 run() 하나다.
- 반면 Thread 클래스는 매우 많은 생성자와 메소드를 제공한다.

 

4. 오늘의 무자막 시청
오늘의 영상: 라따뚜이
이제 주방장 할아버지가 rat 좋아하는거 맞냐면서 슬슬 캐묻기 시작한다. 와인 주면서 슬슬 꼬시는데 주인공이 곧 불 거 같은디 ..

 

5. 오늘 할 일 (청사진)
- 자바의 신 무조건 20분 읽기 (점심시간)
- SQL 무조건 한 문제씩 해결 (짜투리 시간: 쉬운걸로)
- 멘토링 준비 (오늘이 버저비터)
- 무조건 꼬리질문 2문제씩 해결 (무조건 쉬운걸로: 쉬운 거 부터 먼저 다 해결하는 방식으로)
- 알고리즘 무조건 1문제씩 해결 (알고리즘 챌린지 코드, 자기 전에 할 계획)
- 영어 회화 20분

 

6. 감사한 일
새해 첫 출근부터 최선을 다해 열심히 일할 수 있음에 크게 감사합니다.

 

오늘 하루도 공부할 수 있어 크게 감사합니다

2024-01-02 개발자 최찬혁