회고

자바 4주차 스터디 회고

728x90

수업 때 배운 내용.

 

Hash에 대해 아는대로 설명

서버 느리면 어떻게 할 것인가?

 

서버가 느리면 어떻게 할것인가? 

스레드 덤프와 힙덤프를 떠본다

 

스레드 덤프는 TIMED_WAITING 대신 WAITING, BLOCKED를 집중적으로 볼것이다.

 

서버 죽었는데 어떻게 모니터링 할거에요? 라는 질문을 서비스 회사에서 많이 받는다고 한다. 

 

OOM문제인지, 프로세스의 응답이 없는건지, 리퀘스트 톰캣에 스레드 풀을봐야 할것같다. 

 

WAITING, BLOCKED는 누군가가 이 상태를 깨워줘야 하므로 이 부분을 중점적으로 봐야할 것 같다.

 

키워드를 명확하게 하는 것이 좋다. JVM의 런타임 데이터 영역에 스택안에 스레드에 대한 정보가 담겨 있다.

 

두리뭉실한 질문은 역질문으로 좁혀가야 함. 

 

서버가 응답을 하는데 느린 경우에는 GC를 봐야함.

 

1초에 처리 할 수 있는 양이 정해져 있다. 

리퀘스트 수가 점점줄어든다.

 

장애가 나는많은 포인트는 GC가 많이 도는 것이다

 

 

큐도 메모리 이기 때문에, 큐 안에 들어 있으면 GC의 대상이 되지 않는다.

 

 

옵셔널이란 ?

 

스트림이란 ? 중간연산자, 최종연산자, 언제쓰고 왜쓰고. 종류가 어떤것들이 있고 어떤 문제를 해결하기 위한것인지

ㅜ 있

Parrel이란 키워드 -> 어떤 스레드 풀을 쓰고, 스레드 세이프 한지

 

인터페이스의 default의 하위 호환성

 

버전업 했을 때 문제없이 동작할 수 있도록 하기 위해서

 

인터페이스에 코드를 추가했을 때 고장나지 않게 하기 위해서

 

functional f=interface만 람다에 넣을 수 있다.

 

람다를 씀으로서 코드가 간결해지고 

어딘가에서 람다 형태로 쓰이고 있으니까 함부로 수정하지 말라고 하는거라고 이해

 

설명해서 남을 이해시킬 수 있어야 한다.

 

블로그에 정리하고, 이해하려고 노력하고, 답변도 계속 해보고. 

 

두리뭉실함을 깨닫고, 블로그 보고, 자바 스펙보고, 직접 코드 까보는게 정확하다.

 

블로그들을 보고 이해의 벽에 부딪혔을 때 질문하자. 그래야 얻어가는게 많다.