본문 바로가기
728x90
반응형

전체 글221

이펙티브 자바 11장, 12장 직렬화 : 에러 제11장 동시성: 안전하고 효율적인 다중 스레드 프로그래밍아이템 78. 공유 중인 가변 데이터는 동기화해 사용하라여러 스레드가 동시에 한 데이터를 고치려 하면 데이터가 엉망이 됩니다. 하지만 동기화는 단순히 "한 번에 한 명만 고치기" 이상의 의미가 있습니다.1. 동기화는 '줄 세우기' 그 이상이다보통 synchronized 키워드를 보면 "한 번에 한 스레드만 실행하게 막는 것(배타적 실행)"이라고만 생각합니다. 하지만 동기화에는 아주 중요한 기능이 하나 더 있습니다.가시성(Visibility) 보장: 한 스레드가 만든 변화가 다른 스레드에게 언제 어떻게 보이는지를 결정합니다.동기화가 없으면, 한 스레드가 수정한 값이 메인 메모리에 즉시 반영되지 않거나, 다른 스레드가 자신의 CPU 캐시에서 옛날 데이.. 2026. 1. 3.
이펙티브 자바 10장 : 에러 아이템 69. 예외는 진짜 예외 상황에만 사용하라쉽게 말하면: 예외를 if나 for문처럼 로직의 일부로 쓰지 마세요.자세히: 어떤 개발자들은 배열을 돌 때 인덱스 범위를 체크하는 if문 대신, 일부러 범위를 벗어나게 해서 ArrayIndexOutOfBoundsException이 발생하면 루프를 멈추게 설계하기도 합니다.왜 안 되나요?성능: 예외는 발생 시 스택 추적(Stack Trace)을 생성하므로 일반 로직보다 훨씬 느립니다.버그 은닉: 루프 안에서 진짜 다른 문제가 생겨서 예외가 발생해도, "아, 루프가 끝났구나"라고 착각하고 넘어가 버릴 수 있습니다.결론: 예외는 "정말 일어나지 말아야 할 일"이 생겼을 때만 던지세요. 아이템 70. 복구할 수 있는 상황에는 검사 예외를, 프로그래밍 오류에는 런타.. 2025. 12. 22.
mysql 인덱스 8.1 디스크 읽기 방식8.1.1 하드 디스크 드라이브(HDD)와 솔리드 스테이트 드라이브(SSD)HDD는 기계식 장치로 성능 향상에 한계가 있는 반면, SSD는 플래시 메모리를 사용하여 데이터를 빠르게 읽고 쓸 수 있습니다.SSD는 HDD보다 랜덤 I/O 성능이 압도적으로 뛰어나며, 이는 데이터베이스 서버용 스토리지에 최적의 장점입니다.8.1.2 랜덤 I/O와 순차 I/O순차 I/O는 디스크 헤더를 한 번 움직여 많은 데이터를 읽지만, 랜덤 I/O는 데이터 페이지마다 헤더를 움직여야 하므로 작업 부하가 훨씬 큽니다.쿼리 튜닝의 목적은 대개 랜덤 I/O 횟수를 줄이는 것이며, 이는 인덱스를 통해 꼭 필요한 데이터만 읽는 것을 의미합니다.8.2 인덱스란?인덱스는 책의 맨 끝에 있는 '찾아보기'와 같이 칼럼.. 2025. 12. 22.
이펙티브 자바 9장: 좋은 코드를 위한 일반적인 프로그래밍 원칙 (Items 57~68) 1. 변수 관리 및 제어 구조 최적화아이템 57. 지역 변수의 범위를 최소화하라지역 변수의 유효 범위(scope)를 최소화하면 코드의 가독성과 유지보수성이 높아지고 오류 발생 가능성이 낮아집니다.가장 강력한 기법은 변수를 가장 처음 사용하는 시점에 선언과 동시에 초기화하는 것입니다. 반복문에서는 루프 변수의 범위가 반복문 내부로 제한되는 for 문이나 for-each 문을 사용하는 것이 좋습니다.아이템 58. 전통적인 for 문보다는 for-each 문을 사용하라배열이나 컬렉션을 순회할 때는 전통적인 for 문(Iterator를 사용하는 형태) 대신 for-each 문(enhanced for statement)을 사용해야 합니다. for-each 문은 코드가 명료하고, 유연하며, 반복자(Iterator).. 2025. 12. 17.
처리율제한장치의설계 1. 처리율 제한 장치 (Rate Limiter) 개요네트워크 시스템에서 클라이언트 또는 서비스가 보내는 트래픽의 처리율(rate)을 제어하는 장치입니다. 요청 횟수가 정의된 **임계치(threshold)**를 넘어서면 추가 호출은 처리가 중단(block)됩니다.사용 목적DoS(Denial of Service) 공격에 의한 자원 고갈 방지 (예: 트위터, 구글 독스 API 제한).비용 절감 (서버 감소, 제3자 API 사용료 관리).서버 과부하 방지 (봇이나 잘못된 이용 패턴으로 인한 트래픽 걸러내기).1단계: 문제 이해 및 설계 범위 확정시스템 요구사항설정된 처리율을 정확하게 제한.낮은 응답시간 유지.가능한 한 적은 메모리 사용.분산형 처리율 제한 지원 (여러 서버/프로세스 공유).예외 처리: 요청 제.. 2025. 11. 24.
그림으로 이해하는 AWS 구조와 기술을 읽고 들어가며드디어 AWS 기초 책을 처음부터 끝까지 다 읽었다. 사실 클라우드 쓰면서도 제대로 개념 정리를 한 적이 없어서... 이번에 아예 처음부터 쭉 정리해봤는데, 몰랐던 게 이렇게 많았나 싶더라.1장: 아마존 웹 서비스 기초 지식AWS가 뭐길래?AWS = 아마존이 제공하는 클라우드 서비스. 서버, 네트워크 등을 인터넷으로 빌려주는 서비스인데, 예전엔 여러 업체한테 각각 빌려야 했던 걸 AWS 하나로 다 해결 가능하다는 게 핵심.OS, 웹 서버, DB 서버까지 통째로 사용 가능하고, 필요한 만큼만 쓸 수 있다는 게 진짜 매력적. 게다가 네트워크나 서버 전문가 아니어도 브라우저로 뚝딱뚝딱 만들 수 있다. 또한 컴플라이언스(compliance)에 대한 인증 및 검증이 되어 있다.법령, 규정 프라이버시 기준을.. 2025. 11. 18.
728x90
반응형