목록자바 (65)
개발자는 기록이 답이다

멀티 스레드에 대해 배우면서, 스레드를 재사용할 수 있는 스레드 풀에 대해 알게 되었다. 그런데 처음 보는 클래스와 인터페이스가 많아서 정리하면서 좀 더 확실히 이해하고자 한다. 여러 배경지식도 함께 포스팅했기 때문에 ThreadPoolExecutor의 디버깅 과정이 궁금하다면 하단에 있는 5번으로 가주시길 바랍니다. 1. 스레드 풀이란? 스레드 풀이 무엇인지 알기 전에 먼저 알아야 할 키워드는Thread Per Request Model 이다. (One to one thread model이라고도 부른다. 이 부분은 오라클 문서를 참고하자) 이 방식은 웹 서버에서 요청이 들어올 때마다 새로운 스레드를 생성하여 해당 요청을 처리하므로, 각 요청은 독립적으로 실행되기 때문에 동시에 여러 요청을 처리할 수 있으..

8장에서는 유연하고 재사용 가능한 설계를 만들기 위해 적용할 수 있는 다양한 의존성 관리기법을 학습했다. 이번 장에서는 해당 기법들을 원칙이라는 관점에서 정리하고자 한다. 앞 장의 내용이 반복된다는 느낌을 받을 수 있겠지만, 이름을 가진 설계 원칙을 통해 기법들을 정리하는 것은 장황하게 설명된 개념과 매커니즘을 또렷하게 정리할 수 있게 도와줄 뿐만 아니라 설계를 논의할때 사용할 수 있는 공통의 어휘를 익힌다는 점에서도 가치가 있다. 1. 개방-폐쇄 원칙 로버트 마틴은 확장 가능하고 변화에 유연하게 대응할 수 있는 설계를 만들 수 있는 원칙 중 하나로 개방-폐쇄 원칙(Open-Closed Principle, OCP)을 고안했다. 소프트웨어 개체(클래스, 모듈, 함수 등등)는 확장에 대해 열려있어야하고, 수..

1. F-Lab 2주차 멘토링 시작 전 1주차 멘토링이 끝나고, 일주일동안 평균적으로 순 공부시간 6시간정도를 공부했던 것 같다. 저번주와 마찬가지로 자바의 신 11장부터 25장까지 그대로 모든 글자를 따라치고 있는데, 시간이 꽤 오래걸려서 집중이 떨어지는 것 같다. 이걸 얼른 다 따라쳐야지 라는 생각에 좀 버거운 느낌이 들기도 하고 하다보니 이론적인 개념이 머리속에서 잊혀진다. 그래도 모든 타입들 내부 구조 들어가서 확인해보기도 했는데, 외워지지가 않는다. 9시부터 컴퓨터 책상에 앉아서 거의 새벽 2시까지 뭔가를 하고 있는 것 같은데, 왜 순 공부시간은 6시간밖에 안되는지 속상하다. 그만큼 집중이 떨어진다는걸텐데, 무엇이 문제인 것인가! 멘토링 시작 전에 궁금한 점 2가지가 생겨서 준비했다. Stack..

사람의 기억은 단기 기억과 장기 기억으로 분류할 수 있다 단기 기억 : 보관돼 있는 지식에 직접 접근할 수 있지만 정보를 보관할 수 있는 속도와 공간적 측면이 모두 제약을 받는다 장기 기억 : 경험한 내용을 수개월에서 길게는 평생에 걸쳐 보관하는 장소 일반적으로 장기 기억안에 보관돼 있는 지식은 직접 접근하는 것이 불가능하고, 먼저 단기 기억 영역으로 옮긴 후에 처리해야 한다 실제로 문제를 해결하기 위해 사용하는 저장소는 단기 기억이다. 하지만 문제 해결에 필요한 요소가 단기 기억의 용량을 초과하는 순간 문제 해결 능력은 급격히 떨어지는 인지 과부하(cognitvie overload)현상이 발생한다. 인지 과부하를 방지하기 위해 단기 기억 안에 보관할 정보의 양을 조절한다 한번에 다뤄야 하는 정보와 수를..