1. 들어가며 드디어 마지막 장 정리인 직렬화입니다. 직렬화를 깊게 다루는 아티클을 찾아보기가 쉽지 않았는데 마지막 장까지 큰 도움이 되었습니다. 책의 두께는 그리 부담스럽지 않지만 읽어나가는 것이 순탄한 책은 아니었습니다. 추천해주신 분이 절대 가볍게 읽을 책은 아니다. 라고 하셨는데 확실히 다른 책보다 읽는 시간이 한참 걸린 것 같습니다. 바로 공감이 가서 음음 그렇지~ 하는 부분도 있었고, 이건 왜 이렇게 해야할까?하고 추가 자료를 찾아보는 부분도 많았습니다. 그 과정 속에서 배울 수 있는 점은 정말 많았다고 생각합니다 :) 2. 직렬화 규칙 74: Serializable 인터페이스를 구현할 때는 신중하라.클래스 선언부에 implements Serializable만 붙이면 직렬화 가능한 객체를 만..
1. 들어가며 병렬 프로그래밍은 단일 스레드보다 어렵고 오류를 재현하기 어려워지기도 합니다. 하지만 암달의 법칙이 한계에 달하고 멀티 코어의 시대가 온 지금!! 멀티 스레드를 이용하는 것을 외면할 수는 없습니다. Effective Java에서 병행성에 대해 어떤 규칙을 세웠는지 살펴보도록 하겠습니다 :) 정리하면서 가장 재미있었던 파트라 부득이하게 내용이 많이 길어졌습니다.이게 뭐가 요약본이야..!라고 하실수도 있겠지만..ㅜ 그만큼 설명할 내용이 많고 유익했습니다.과거에 좀 더 잘 알았다면 더 좋게 해결할 수 있었겠다~를 통감한만큼 직접 해당 파트를 읽어보시길 강력 추천 드립니다!!! 2. 병행성 규칙 66: 변경 가능 공유 데이터에 대한 접근은 동기화하라.synchronized 키워드는 특정 메서드나 ..
1. 들어가며 저번 글에서는 거시적인 관점에서 서버를 확장해나가면서 어떻게 구성될 수 있는지 살펴보았습니다.https://rawshrimpsushi.tistory.com/50 가상 면접 사례로 배우는 대규모 시스템 설계 기초 1편 - 트래픽에 따른 서버 확장1. 들어가며 복습 겸 정리하는 대규모 시스템 설계 기초 1편입니다! 다른 분께 추천받아서 읽기 시작했는데 면접 대비를 떠나서 정말 재밌던 책이었습니다. 백엔드하면 역시 대규모 트래픽이rawshrimpsushi.tistory.com 이번 글에서는 규모 확장을 마친 각 서버의 구성 요소에서 어떤 이슈가 발생할 수 있는지, 어떻게 설계하면 좋은지 세부적으로 살펴보도록 하겠습니다. 2. 책 내용 정리1) 서버 응답지연 값 대규모 설계를 하거나 최적화를 한다..
1. 들어가며 복습 겸 정리하는 대규모 시스템 설계 기초 1편입니다! 다른 분께 추천받아서 읽기 시작했는데 면접 대비를 떠나서 정말 재밌던 책이었습니다. 백엔드하면 역시 대규모 트래픽이라는 큰 숙제이자 로망(?)이 있다고 생각하는데요. 학생 때 그런 대규모 트래픽을 처리하는 경험을 하기는 쉽지 않습니다. 그나마 웹서버를 직접 구현해보는 과제에서 throughput을 측정하여 점수를 매기므로 간접적으로 경험하긴 하지만 실무에서 대규모 트래픽을 처리할 때 하는 일과는 차이가 좀 있다고 생각합니다.이 책을 읽으면 정말 설계하는 기분을 느끼고 어떤 것을 위주로 고민하게 되는지 접해볼 수 있습니다. 또한 면접 대비로 많이 추천받는 책이기도 하니 한번 정독해보시길 강력 추천 드립니다 :) 책 내용이 방대해서 2번의..
1. 개요Exception은 활용하기에 따라 가독성, 안정성, 유지보수성을 향상시킬 수 있지만 잘못 활용하면 역효과도 내는 친구입니다. Exception을 잘 활용하기 위한 방법을 살펴봅시다.2. Exception규칙 57: 예외는 예외적 상황에만 사용하라.1) 예외는 예외적 상황을 위해 고안된 것이기 때문에, JVM을 구현하는 사람 입장에서 보면 명시적 테스트만큼 빠르게 만들 이유가 별로 없다.2) try-catch 블록 안에 넣어둔 코드에는 최신 JVM이 사용하는 최적화 기법 가운데 일부가 적용되지 않는다.즉 이름이 말하듯, 예외는 예외적인 상황에만 사용해야 한다. 평상시 제어 흐름에 이용해서는 안 된다. 쉽게 이해할 수 있는 표준적인 숙어대로 코딩해야지, 너무 머리를 많이 굴리면 곤란..
1. 들어가며 자바 언어의 일반적인 원칙들에 대해 다룹니다. 지역 변수, 자료형, 리플렉션, 최적화까지 다양하게 다루는 파트입니다. 2. 일반적인 프로그래밍 원칙들 규칙45: 지역 변수의 유효범위를 최소화하라.이는 클래스와 멤버의 접근 권한은 최소화하라와 유사하다. 지역 변수의 유효 범위를 최소화하면 가독성과 유지보수성이 좋아지고 오류 발생 가능성도 적어진다.해당 방법을 보장하기 위해서는 다음과 같은 방법이 있다. 1) 처음 사용하는 곳에서 선언한다. c언어처럼 블록 앞부분에 선언하는 건 자바와 어울리지 않는다.2) 거의 모든 지역 변수 선언엔 초기값이 포함되어야 한다.3) while문보다는 for문을 쓰는 것이 좋다. 순환문 변수와 가독성 덕분이다.4) 메서드 크기를 줄이고..