Study Log

완료일
분야
학습 항목
출처

2023.01

🌐 Network

그림으로 배우는 HTTP & Network Basic

2023.01

☕ Java, 🌱 Spring

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

2023.02

💻 OS

한 권으로 읽는 컴퓨터 구조와 프로그래밍

2023.03

☕ Java, 🌱 Spring

스프링 핵심 원리 - 기본편

2023.04

🌐 Network

모든 개발자를 위한 HTTP 웹 기본 지식

2023.04

☕ Java, 🌱 Spring

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

2023.05

☕ Java

Java의 정석

2023.06

☕ Java, 🌱 Spring

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

2023.07

☕ Java, 🌱 Spring

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

2023.08

🗄️ Database

Real MySQL 8.0 (1권)

2023.08

☕ Java, 🌱 Spring, 🗄️ Database

스프링 DB 1편 - 데이터 접근 핵심 원리

2023.09

🌐 Network

외워서 끝내는 네트워크 핵심이론 - 기초

2023.10

☕ Java, 🌱 Spring, 🗄️ Database

스프링 DB 2편 - 데이터 접근 활용 기술

2023.11

☕ Java, 🌱 Spring

스프링 핵심 원리 - 고급편

2023.11

☕ Java, 🌱 Spring

스프링 부트 핵심 원리와 활용

2023.12

☕ Java, 🌱 Spring

자바 ORM 표준 JPA 프로그래밍 - 기본편

2024.01

🎨 Design Pattern

객체지향의 사실과 오해

2024.02

☕ Java, 🌱 Spring, 🔗JPA

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

2024.02

☕ Java, 🌱 Spring

실전! 스프링 데이터 JPA

2024.03

🌱 Spring, 🔗JPA

실전! Querydsl

2024.04

🗄️ Database

Real MySQL 8.0 (2권)

2024.05

💻 OS

혼자 공부하는 컴퓨터 구조+운영체제

2024.05

🌐 Network

현실 세상의 컴퓨터 공학 지식 - 네트워크

2024.06

🌱 Spring, 🐳 Infra, 🗄️ Database

재고시스템으로 알아보는 동시성이슈 해결방법

2024.07

🌐 Network

HTTP 완벽 가이드

2024.08

🎨 Design Pattern

오브젝트

2024.08

🐳 Infra

가상 면접 사례로 배우는 대규모 시스템 설계 기초

2024.09

🗄️ Database

대용량 처리를 위한 MySQL 이해

2024.10

🐳 Infra

가상 면접 사례로 배우는 대규모 시스템 설계 기초 2

2024.11

🌱 Spring, 🐳 Infra, 🗄️ Database

실습으로 배우는 선착순 이벤트 시스템

2024.11

🐳 Infra, 🗄️ Database

고성능 서비스를 위한 Redis의 활용과 아키텍처

2024.12

☕ Java, 🐳 Infra

궁극의 성능 튜닝과 트러블 슈팅

2025.01

🐳 Infra

대용량 비동기 프로세스를 위한 Kafka 활용

2025.02

🌱 Spring, 🎨 Design Pattern, 🔧 Software Engineering

Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트

2025.02

☕ Java, 🌐 Network, 💻 OS, 🔐 Secure

면접 전에 알고 가면 좋을 것들 - 신입 Java 백엔드 개발자편

2025.03

🎨 Design Pattern

도메인 주도 개발 시작하기

2025.04

☕ Java

이펙티브 자바

2025.05

🌱 Spring, 🐳 Infra, 🔧 Software Engineering

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

2025.06

🗄️ Database

개발자를 위한 레디스

2025.07

☕ Java

자바 - 고급 1편, 멀티스레드와 동시성

2025.08 -

🧠 Self-Improvement

생성형 AI 기반 학습 및 기존 문서 보강

-


상세 학습 기록

그림으로 배우는 HTTP & Network Basic

  • TCP/IP 모델과 HTTP 프로토콜의 계층별 역할과 패킷 구조를 시각적으로 도식화하여, 데이터가 송수신되는 전체 네트워크 통신 흐름을 명확히 파악

  • 3-Way Handshake와 4-Way Handshake의 상태 변화 과정을 심층 분석하여, 연결 수립 및 종료 시 발생할 수 있는 지연이나 유실 문제를 이해

스프링 완전 정복 Roadmap

  • 제어의 역전과 의존성 주입 원리를 통해 객체 간의 결합도를 낮추고 유연한 확장이 가능한 객체지향적 설계 역량 습득

  • 서블릿 컨테이너의 생명주기와 스프링 MVC의 핵심인 디스패처 서블릿의 요청 처리 파이프라인 동작 원리 파악

  • 빈의 스코프와 생명주기 콜백을 이해하여, 애플리케이션의 리소스 관리 및 초기화 작업을 효율적으로 수행하는 방법 학습

한 권으로 읽는 컴퓨터 구조와 프로그래밍

  • 논리 게이트와 불 대수부터 프로세서 아키텍처까지, 소프트웨어가 하드웨어 위에서 구동 원리 이해

  • 컴파일러와 어셈블러의 역할을 파악하고, 고수준 언어가 기계어로 변환되어 실행되는 전체 과정 학습

스프링 부트와 JPA 실무 완전 정복 Roadmap

  • 영속성 컨텍스트의 1차 캐시와 변경 감지 메커니즘을 활용하여, 데이터베이스 접근 횟수를 최소화하는 데이터 처리 방식 학습

  • 지연 로딩과 즉시 로딩의 동작 차이에 대한 이해

  • 페치 조인과 배치 사이즈 설정을 통해 N+1 문제 해결

  • 복잡한 동적 쿼리 처리를 위해 QueryDSL을 활용한 쿼리 작성 방법 학습

Java의 정석

  • JVM의 메모리 구조와 가비지 컬렉션의 동작 원리 학습

  • 컬렉션 프레임워크의 ArrayList, HashMap 등 주요 자료구조의 내부 구현과 시간 복잡도 학습

  • 스트림 API와 람다 표현식을 활용한 프로그래밍 스타일 학습

Real MySQL 8.0 (1권 & 2권)

  • InnoDB 스토리지 엔진의 아키텍처와 MVCC를 통한 트랜잭션 격리 수준의 동작 원리 파악

  • B-Tree 인덱스의 물리적 구조와 클러스터링 인덱스의 특성 학습

  • 레코드 락, 갭 락, 넥스트 키 락 등 MySQL의 잠금 메커니즘에 대한 이해

외워서 끝내는 네트워크 핵심이론 - 기초

  • OSI 7계층 모델을 기준으로 애플리케이션 데이터가 물리적 신호로 변환되기까지의 캡슐화 및 역캡슐화 과정 학습

  • IP 주소 체계와 라우팅 프로토콜의 기본 개념 및 패킷이 목적지까지 전달되는 과정 이해

객체지향의 사실과 오해

  • 객체를 상태가 아닌 협력에 참여하는 역할과 책임의 집합으로 재정의하며, 구현이 아닌 인터페이스에 의존하는 객체지향적 사고방식 확립

  • 메시지를 중심으로 한 객체 간의 상호작용 설계 방식 학습

혼자 공부하는 컴퓨터 구조+운영체제

  • 운영체제의 프로세스 스케줄링 알고리즘과 시스템 자원 관리 메커니즘 파악

  • 멀티스레드 환경에서 발생할 수 있는 경쟁 상태와 교착 상태의 원인 학습

  • 가상 메모리와 스와핑 과정을 통해 한정된 메모리 자원을 효율적으로 사용하는 운영체제 전략 이해

현실 세상의 컴퓨터 공학 지식 - 네트워크

  • DNS의 계층적 구조와 캐싱 원리를 파악하고, SSL/TLS 핸드쉐이크 과정 학습

  • TCP의 신뢰성 보장 메커니즘인 순서 보장, 재전송, 오류 제어가 실제 패킷 전송 과정에서 어떻게 구현되는지 학습

재고시스템으로 알아보는 동시성이슈 해결방법

  • Java synchronized, DB의 비관적 락과 낙관적 락, Redis 분산 락 학습

  • 단계별로 적용하며 트래픽 규모와 요구사항에 따른 기술별 트레이드오프 비교

HTTP 완벽 가이드

  • Cache-Control, ETag, Last-Modified 헤더를 활용한 웹 캐시 전략 학습

  • HTTP/1.1의 지속 커넥션과 파이프라이닝이 TCP 성능에 미치는 영향 파악

  • 상태 코드와 다양한 HTTP 헤더의 정확한 의미와 용도 학습

가상 면접 사례로 배우는 대규모 시스템 설계 기초 1 & 2

  • 안정 해시와 데이터 샤딩 기법 학습

  • CAP 이론과 시스템의 요구사항에 맞춰 일관성과 가용성, 응답 지연 간의 트레이드오프를 조율하는 아키텍처 설계 역량 학습

  • 처리율 제한 장치, 분산 ID 생성기, 결제 시스템 등 대규모 시스템 설계 방식 및 고가용성 시스템 구축을 위한 엔지니어링 사고방식 학습

실습으로 배우는 선착순 이벤트 시스템

  • 고트래픽 상황에서의 RDB 부하가 발생하는 원인에 대한 이해

  • Kafka를 활용한 비동기 메시징 아키텍처를 도입하여 고트래픽 상황에서도 유실 없이 안정적인 처리 방법 학습

고성능 서비스를 위한 Redis의 활용과 아키텍처

  • Look-aside 및 Write-back 패턴 등 비즈니스 요구사항과 데이터 접근 패턴에 최적화된 캐싱 전략 학습

  • 캐시 만료 시점에 트래픽이 몰리는 Cache Stampede 현상 및 방지 방법 학습

궁극의 성능 튜닝과 트러블 슈팅

  • 메모리 누수를 유발하는 객체를 식별하고 OOM 문제를 해결하는 트러블슈팅 과정 학습

  • APM 도구를 활용하여 CPU, 메모리, 응답 시간, TPS 등 핵심 지표를 실시간으로 모니터링하고, 데이터에 기반한 체계적인 성능 튜닝 프로세스 학습

Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트

  • 테스트 용이성을 저해하는 강한 결합과 숨겨진 의존성을 식별하고, 이를 인터페이스로 분리하는 설계 역량 학습

  • 결정적인 테스트 환경을 만들기 위해 외부 API나 시간과 같은 제어 불가능한 요소를 테스트 대역으로 대체 방법

면접 전에 알고 가면 좋을 것들 (신입 Java 백엔드)

  • 운영체제(OS), 네트워크(Network), 데이터베이스(DB) 등 CS 이론이 백엔드 시스템에 처리에 어떻게 응용되는지 실무적 관점에서 재해석

  • 프로세스와 스레드의 차이, TCP/IP의 연결 지향성, 트랜잭션의 ACID 성질 등 실제 애플리케이션에 적용되는 전반적인 이해

도메인 주도 개발 시작하기

  • 애그리거트 패턴을 적용하여 데이터 변경의 단위와 트랜잭션 경계를 명확히 설정함으로써, 도메인 모델의 데이터 일관성을 보장하는 설계 원칙 파악

  • 도메인 이벤트를 활용하여 도메인 로직과 부가 정책을 분리하고, 바운디드 컨텍스트 간의 결합도를 낮추는 이벤트 기반 아키텍처의 기초 학습

이펙티브 자바 (Effective Java)

  • 정적 팩토리 메서드(Static Factory Method)와 빌더 패턴(Builder Pattern)을 통해 객체 생성의 유연성과 가독성을 높이는 설계 원칙 학습

  • 변경 가능성을 최소화한 불변 객체(Immutable Object)와 상속보다는 컴포지션(Composition)을 선호하여 유지보수하기 쉬운 클래스 설계 방법 습득

  • equals, hashCode, toString 등 모든 객체의 공통 메서드를 규약에 맞게 재정의(Overriding)해야 하는 이유와 올바른 구현 방법 파악

  • 제네릭(Generics), 열거 타입(Enum), 람다(Lambda)와 스트림(Stream) 등 자바 언어의 핵심 기능을 활용하여 타입 안전하고 간결한 코드를 작성하는 기법 이해

Spring Cloud로 개발하는 마이크로서비스 (MSA)

  • Netflix Eureka를 활용한 서비스 디스커버리 구축으로, 동적으로 변화하는 클라이언트 사이드 로드 밸런싱 구현

  • Spring Cloud Gateway를 단일 진입점으로 구성하여, 인증 등 관심사를 중앙 집중적으로 관리

개발자를 위한 레디스

  • Redis의 싱글 스레드 아키텍처에 대한 이해와, 높은 시간복잡도를 가진 O(N) 명령어 사용에 대한 위험성 학습

  • 비즈니스 요구사항에 맞는 String, List, Set, Sorted Set, Hash 등 다양한 자료구조 활용 방법 학습

  • RDB와 AOF 방식의 차이점과, 데이터 유실 허용 범위에 따른 최적의 백업 방법 학습

자바 - 고급 1편, 멀티스레드와 동시성

  • 자바 메모리 모델을 기반의 메모리 가시성 및 연산의 원자성 문제 및 volatilesynchronized 키워드 학습

  • ExecutorService 프레임워크를 활용한 스레드 풀 관리 방법과, 비동기 작업의 결과 Future 학습

  • ReentrantLock, ReadWriteLock, Conditionjava.util.concurrent 패키지의 동기화 도구 학습

생성형 AI 기반의 학습 회고 및 문서 보강

  • 학습한 기술적 개념을 AI와 함께 재정리하고 문서화하고, 파편화된 지식 체계화

  • AI와의 심층적인 질의응답을 통해 단편적인 지식 습득과 원리까지 파고들며, 꼬리에 꼬리를 무는 질문으로 지식의 깊이 확장

  • AI의 답변을 공식 문서 및 신뢰할 수 있는 기술 서적과 교차 검증하고 실제 코드로 동작 확인

Last updated