Study Log
2025.02
🌱 Spring, 🎨 Design Pattern, 🔧 Software Engineering
Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트
🎓 Lecture
2025.08 -
🧠 Self-Improvement
생성형 AI 기반 학습 및 기존 문서 보강
✍️ Activity
-
상세 학습 기록 (Detailed Study Notes)
그림으로 배우는 HTTP & Network Basic
핵심 학습 내용
TCP/IP 프로토콜 스택 심화: OSI 7계층과 TCP/IP 4계층의 매핑 및 각 계층(L2, L3, L4, L7)의 핵심 역할과 헤더 구조 이해.
TCP 연결 제어 및 신뢰성: 3-Way Handshake(연결 수립), 4-Way Handshake(연결 종료) 과정과 시퀀스 번호/ACK를 이용한 신뢰성 보장 메커니즘 학습.
TCP 흐름 제어 및 혼잡 제어:
흐름 제어(Flow Control): 수신 윈도우(RWND)를 통해 수신 측의 처리 속도에 맞춰 송신량을 조절하는 슬라이딩 윈도우(Sliding Window) 기법 이해.
혼잡 제어(Congestion Control): 네트워크 혼잡 상황을 감지하여 혼잡 윈도우(CWND)를 조절하는 알고리즘(Slow Start, AIMD, Fast Retransmit, Fast Recovery) 학습.
HTTP 프로토콜의 진화: HTTP/1.1의 지속 연결(Keep-Alive) 및 파이프라이닝, HTTP/2의 멀티플렉싱 및 헤더 압축, HTTP/3의 QUIC 프로토콜 특징 비교.
인사이트
브라우저 URL 입력부터 응답 수신까지의 네트워크 내부 과정을 시각적으로 파악함
웹 통신 프로토콜의 동작 원리에 대한 기술적 토대를 마련하고 네트워크 전반의 기본기 확보함
우아한형제들 최연소 기술이사 김영한의 스프링 완전 정복 (Roadmap)
핵심 학습 내용
AOP 프록시(CGLIB, JDK Dynamic Proxy)의 동작 원리 및
@Transactional과 같은 선언적 트랜잭션의 내부 메커니즘 이해HTTP 웹 기본 지식 및 서블릿의 동작 방식부터 시작하는 스프링 기반 기술의 근간 학습
스프링 컨테이너와 빈 관리(IoC/DI)의 원리 및 싱글톤 레지스트리로서의 역할 파악
인사이트
프록시 패턴 관점에서 트랜잭션의 자가 호출 문제를 명확히 규명함
프레임워크 내부 메커니즘을 추적하고 이를 바탕으로 실제 개발 환경에서 발생하는 예외 상황을 해결하는 역량을 키움
한 권으로 읽는 컴퓨터 구조와 프로그래밍
핵심 학습 내용
컴퓨터의 데이터 표현 방식, 특히 부동소수점 오차의 발생 원리와 금융 계산 등에서
BigDecimal을 사용해야 하는 이유 학습메모리 계층 구조(레지스터, 캐시, 메인 메모리)와 지역성(Locality) 원리, 그리고 Cache Hit Ratio가 프로그램 성능에 미치는 영향 이해
인사이트
하드웨어의 특성을 이해함으로써 부동소수점 정밀도 문제를 인지하고
BigDecimal을 사용하는 등 더욱 안정성 높고 예측 가능한 코드 작성함소프트웨어가 실행되는 물리적 환경에 대한 이해가 코드 품질에 직결됨을 깨닫고 최적화된 자료형 선택의 중요성을 인식함
우아한형제들 최연소 기술이사 김영한의 스프링 부트와 JPA 실무 완전 정복 (Roadmap)
핵심 학습 내용
JPA 영속성 컨텍스트의 1차 캐시, 쓰기 지연, 변경 감지(Dirty Checking) 동작 원리와 이를 통한 성능 최적화 방법 습득
OSIV(Open Session In View) 전략의 이해와 성능 최적화를 위한 커넥션 관리 및 DTO 변환을 통한 API 스펙 분리 원칙 적용
Querydsl을 활용한 동적 쿼리 처리 및 Fetch Join을 통한 N+1 문제 해결
인사이트
JPA의 변경 감지 메커니즘을 활용하고 DTO로 계층 간 역할을 분리하며 Querydsl로 안정적인 동적 쿼리를 작성하는 실전적 설계 방식을 확립함
데이터 접근 기술의 성능 병목 지점을 파악하고 N+1 문제를 해결하며 대규모 트래픽을 고려한 최적화 역량을 확보함
Java의 정석
핵심 학습 내용
Java 언어의 기본 문법부터 객체지향 개념(상속, 다형성), 예외 처리, 컬렉션 프레임워크, 스레드 등 Java 개발에 필수적인 핵심 개념 전반 체계적 정리
JVM의 구조와 메모리 관리 방식(GC)에 대한 이해를 통해 메모리 누수나 성능 저하 문제를 분석할 수 있는 기반 지식 습득
인사이트
Java 언어에 대한 체계적인 지식 기반을 갖추게 되어 코드의 동작 원리를 명확히 이해하고 타인에게 논리적으로 설명함
객체지향 원리를 실제 코드로 구현하는 능력을 향상시키고 언어의 내부 구조를 파악하여 기술적 안정성을 확보함
Real MySQL 8.0 (1권 & 2권)
핵심 학습 내용
InnoDB 아키텍처 심화: 버퍼 풀(Buffer Pool)의 LRU 리스트 관리, 체인지 버퍼(Change Buffer)를 통한 인덱스 업데이트 최적화, 더블 라이트 버퍼(Double Write Buffer)를 이용한 데이터 무결성 보장 원리 이해.
MVCC와 잠금: 언두 로그(Undo Log)를 활용한 MVCC 구현으로 넌블로킹 읽기 지원, 넥스트 키 락(Next-Key Lock)을 통한 Phantom Read 방지 및 레코드 락/갭 락의 상호작용 이해.
쿼리 실행 계획 및 최적화:
EXPLAIN결과를 분석하여type(ref, range, index_merge 등)과Extra(Using index, Using temporary 등) 필드의 의미를 파악하고, 커버링 인덱스를 활용한 쿼리 성능 개선 기법 습득.트랜잭션 격리 수준: READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ, SERIALIZABLE의 차이와 각 수준에서 발생할 수 있는 문제(Dirty Read, Non-Repeatable Read, Phantom Read) 이해.
인사이트
실행 계획 분석을 통해 비효율을 진단하고 개선하는 엔지니어링 관점 확보함
인덱스 활용과 레코드 락의 범위를 예측하여 데드락을 사전에 방지하는 등 데이터베이스 성능 최적화 역량을 구비함
외워서 끝내는 네트워크 핵심이론 - 기초
핵심 학습 내용
OSI 7계층과 TCP/IP 4계층 모델의 비교 및 각 계층의 역할과 책임(R&R) 이해
Wireshark와 같은 도구를 통한 실제 네트워크 패킷 분석 및 프로토콜 동작 확인
인사이트
흩어져 있던 단편적인 네트워크 지식들을 OSI 계층 모델을 중심으로 유기적으로 연결하고 체계적으로 정리함
통신 장애 발생 시 각 계층별 역할에 근거하여 문제 지점을 논리적으로 추론하고 해결책을 찾아가는 분석력 키움
객체지향의 사실과 오해
핵심 학습 내용
객체지향이란 현실 세계를 단순히 모방하는 것이 아니라, 명확한 역할, 책임, 협력 관계를 가진 새로운 세계를 창조하는 과정임을 이해
객체지향의 본질이 클래스가 아닌 객체의 동적인 협력 관계에 있다는 사실 학습
인사이트
클래스 중심 사고에서 벗어나 객체 간의 동적인 협력 관계와 메시지에 집중하는 관점 확립함
객체의 상태보다 행동과 책임을 우선적으로 고려함으로써 자연스러운 캡슐화를 유도하고 변경에 유연한 코드 설계 능력 갖춤
혼자 공부하는 컴퓨터 구조+운영체제
핵심 학습 내용
컴퓨터의 기본 구성 요소인 CPU, 메모리, 보조기억장치의 역할과 상호작용, 그리고 컴퓨터가 데이터를 표현하는 방식 이해
프로세스와 스레드의 차이, CPU 스케줄링, 메모리 관리(가상 메모리, 페이징) 등 운영체제의 핵심 원리 학습
인사이트
Java 코드가 JVM 위에서 어떻게 동작하고 운영체제가 이를 어떻게 관리하는지 구체적으로 연결하여 파악함
성능 및 메모리 관련 문제를 깊이 있게 분석하고 하드웨어 자원을 효율적으로 사용하는 소프트웨어 설계의 기반을 마련함
현실 세상의 컴퓨터 공학 지식 - 네트워크
핵심 학습 내용
대용량 서비스 환경에서 L4/L7 스위치와 같은 로드밸런서의 트래픽 분산 및 장애 대응 역할 이해
CDN과 캐시 서버를 활용한 콘텐츠 전달 가속화 및 원본 서버 부하 감소를 위한 네트워크 성능 최적화 전략 학습
인사이트
이론적인 네트워크 지식을 넘어 실제 대규모 서비스 아키텍처에서 이러한 기술들이 어떻게 유기적으로 결합되어 사용되는지 구체적인 사례를 통해 이해함
시스템 설계 시 네트워크 성능과 안정성을 어떻게 고려해야 하는지에 대한 실무적인 관점 확보함
재고시스템으로 알아보는 동시성이슈 해결방법
핵심 학습 내용
재고 시스템에서 발생할 수 있는 동시성 문제(Race Condition)의 다양한 시나리오 및 데이터 정합성 문제의 본질 파악
Pessimistic Lock (비관적 락), Optimistic Lock (낙관적 락), Named Lock, Redis 분산 락 등 다양한 동시성 제어 기법들의 내부 동작 원리와 장단점 비교 분석
인사이트
각 동시성 제어 기법의 성능, 구현 복잡성, 데이터 일관성 수준 등 트레이드오프를 명확히 이해함
비즈니스 요구사항에 가장 적합한 해결책을 논리적으로 선택하고 그 이유를 설명할 수 있는 능력을 갖춤
HTTP 완벽 가이드
핵심 학습 내용
HTTP/1.1과 HTTP/2.0의 차이점 및 Keep-Alive, Connection Pool과 같은 커넥션 관리 스펙을 통한 네트워크 통신 효율화 방법 학습
REST API 설계 원칙 중 하나인 멱등성(Idempotency)의 중요성과 이를 보장하기 위한 PUT, PATCH 메서드 사용 기준 이해
인사이트
TCP 커넥션 생성 비용을 인지하고 Keep-Alive와 같은 기술을 활용하여 서버 간 통신 효율을 최적화하려는 엔지니어링 관점 확보함
API 설계 시 멱등성을 고려하여 더욱 안정적이고 예측 가능한 시스템을 구축하는 역량에 집중함
오브젝트
핵심 학습 내용
객체지향의 4대 특성과 오해: 객체지향을 '현실 세계의 모방'으로 보는 관점의 한계와, 역할(Role), 책임(Responsibility), 협력(Collaboration) 중심의 새로운 세계 창조라는 본질적 관점 확립.
책임 주도 설계(RDD) vs 데이터 주도 설계: 객체의 상태(데이터)가 아닌 행동(책임)을 먼저 결정하는 설계 방식의 중요성과 이를 통해 얻을 수 있는 낮은 결합도와 높은 응집도 이해.
GRASP 패턴 심화: Information Expert, Creator, Controller 등 9가지 패턴을 실제 설계 문제에 적용하여 책임을 할당하는 논리적 근거와 트레이드오프 분석 능력 배양.
유연한 설계를 위한 원칙: 의존성 역전 원칙(DIP), 개방-폐쇄 원칙(OCP)을 준수하기 위한 컴파일 타임 의존성과 런타임 의존성의 분리 기법 학습.
인사이트
객체 스스로 상태와 행동을 관리하도록 책임을 위임하여 캡슐화와 응집도를 강화하고 변경의 파급 효과를 최소화함
유연하고 확장 가능한 구조를 설계하기 위해 컴파일 타임과 런타임 의존성을 분리하는 설계 원칙을 내재화함
가상 면접 사례로 배우는 대규모 시스템 설계 기초 1 & 2
핵심 학습 내용
분산 시스템 핵심 알고리즘:
안정 해시(Consistent Hashing): 서버 추가/삭제 시 데이터 재배치를 최소화하는 해시 링 및 가상 노드 기법.
가십 프로토콜(Gossip Protocol): 분산 환경에서 노드 간의 상태 정보를 효율적으로 전파하고 장애를 감지하는 방법.
머클 트리(Merkle Tree): 대규모 데이터의 불일치를 빠르게 탐지하고 복구하는 동기화 메커니즘.
블룸 필터(Bloom Filter): 집합에 원소가 속하는지 여부를 확률적으로 빠르게 검사하여 불필요한 디스크 I/O를 줄이는 기법.
처리율 제한 및 동시성 제어: 토큰 버킷/누출 버킷 알고리즘을 활용한 유량 제어와 데이터 일관성을 위한 Quorum(N, W, R), Vector Clock 활용법.
대규모 서비스 설계: 채팅, 검색, 피드 시스템 등 실제 사례를 통한 아키텍처 패턴 학습.
인사이트
모든 설계에는 트레이드오프가 존재함을 인지하고 서비스의 비즈니스적 요구사항에 최적화된 아키텍처를 선택하는 판단력 기름
분산 시스템의 핵심 원리를 바탕으로 대규모 트래픽을 견디는 안정적인 시스템 구조를 도출하는 역량을 확보함
대용량 처리를 위한 MySQL 이해
핵심 학습 내용
대용량 데이터 환경에서 조회 성능을 높이기 위해 의도적으로 중복을 허용하는 반정규화 설계 전략과 데이터 불일치 문제 해결 방안 학습
단일 테이블의 데이터가 너무 커졌을 때 성능 저하를 방지하기 위한 수평적 확장(Sharding)과 수직적 확장(Partitioning)의 개념 및 적용 기준 이해
인사이트
데이터 규모와 비즈니스 요구사항에 따라 정규화와 반정규화를 유연하게 선택하는 실무적 감각을 익힘
대규모 데이터로 인한 미래의 성능 저하를 예측하고 이를 방지하기 위한 데이터 모델링 전략을 수립하는 설계 능력을 갖춤
실습으로 배우는 선착순 이벤트 시스템
핵심 학습 내용
대규모 트래픽 환경에서 선착순 시스템이 마주하는 동시성 문제의 본질과 해결을 위한 다양한 접근법 학습
DB 직접 접근 방식의 한계와 Redis를 활용한 성능 개선 및 분산 락을 이용한 동시성 제어 방법 습득
인사이트
단일 서버 환경과 분산 환경에서의 동시성 제어 방식 차이를 명확히 이해하고 상황에 맞는 적절한 기술을 선택함
분산 락과 원자적 연산 등 다양한 기법의 트레이드오프를 분석하여 서비스 요구사항에 최적화된 해결책을 도출함
고성능 서비스를 위한 Redis의 활용과 아키텍처
핵심 학습 내용
캐시와 DB 간의 데이터 불일치 문제를 해결하기 위한 캐싱 전략(Look-aside, Write-back) 및 Cache Stampede 현상 방지책(TTL Jitter 등) 학습
Redis의 고가용성을 확보하기 위한 Sentinel, Cluster 구성 방법과 장애 복구 메커니즘 이해
인사이트
무거운 명령어가 전체 서비스에 미치는 위험성을 인지하고 Lua Script를 활용해 여러 명령어를 원자적으로 실행하는 방법을 익힘
캐싱 전략과 고가용성 구성을 통해 시스템의 응답 속도와 안정성을 동시에 확보하는 운영 노하우를 습득함
궁극의 성능 튜닝과 트러블 슈팅
핵심 학습 내용
JVM 메모리 구조 및 GC 튜닝: Heap(Young/Old), Metaspace 등 메모리 영역별 역할과 주요 GC 알고리즘(Serial, Parallel, G1GC, ZGC)의 동작 방식 및 STW(Stop-The-World) 최소화 전략 학습.
스레드 덤프(Thread Dump) 분석:
jstack을 활용하여 스레드 상태(RUNNABLE, BLOCKED, WAITING, TIMED_WAITING)를 분석하고, 데드락(Deadlock) 및 락 경합(Lock Contention)으로 인한 성능 병목 지점을 파악하는 기술 습득.메모리 덤프(Heap Dump) 분석:
jmap, MAT(Memory Analyzer Tool) 등을 사용하여 메모리 누수(Memory Leak) 원인 객체(Dominator Tree)를 식별하고 해결하는 방법 학습.애플리케이션 모니터링: APM(Application Performance Monitoring) 도구를 활용한 트랜잭션 추적 및 시스템 리소스(CPU, Memory, I/O) 병목 현상 진단 방법론 이해.
인사이트
스레드 덤프와 힙 덤프와 같은 객관적인 데이터를 기반으로 장애 원인을 체계적으로 규명하고 해결하는 능력을 갖춤
감에 의존하지 않고 과학적인 방법으로 문제에 접근하여 시스템의 가용성을 극대화하는 트러블슈팅 역량을 확보함
대용량 비동기 프로세스를 위한 Kafka 활용
핵심 학습 내용
Kafka 내부 아키텍처: 브로커(Broker), 토픽(Topic), 파티션(Partition) 구조와 높은 처리량을 위한 순차 I/O(Sequential I/O), 페이지 캐시(Page Cache) 활용 원리 이해.
데이터 신뢰성 및 성능 최적화: ISR(In-Sync Replicas) 모델을 통한 복제 메커니즘,
acks설정에 따른 전달 보장 전략 및 제로 카피(Zero-Copy) 기술을 통한 네트워크 전송 효율화 방식 습득.비동기 메시징 패턴: 컨슈머 그룹(Consumer Group)의 리밸런싱, 메시지 전달 보장 수준(At-least-once, Exactly-once) 및 비동기 처리를 통한 서비스 간 디커플링(Decoupling) 전략 학습.
인사이트
비동기 이벤트 스트리밍을 통해 핵심 로직과 부가 로직을 분리하여 시스템 전체의 내결함성과 회복탄력성을 확보함
시스템 간의 직접적인 의존성을 제거하고 대량의 데이터를 안정적으로 처리하는 분산 아키텍처 설계 능력을 키움
Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트
핵심 학습 내용
테스트의 진정한 목적은 코드의 '구현' 검증이 아닌 객체의 '행동(Behavior)'과 '계약(Contract)'이 올바르게 지켜지는지 확인하는 것임을 이해
Mocking을 통해 테스트 대상의 외부 의존성(DB, Network)을 격리하는 방법과 테스트하기 좋은 아키텍처(DIP)의 중요성 학습
인사이트
테스트 용이성을 코드 리팩토링의 중요한 기준으로 삼고 테스트하기 어려운 코드는 나쁜 코드라는 관점을 확립함
외부 의존성을 주입받는 구조를 통해 테스트의 독립성을 확보하고 실제 환경과 유사한 검증 환경을 구축하는 역량을 키움
면접 전에 알고 가면 좋을 것들 (신입 Java 백엔드)
핵심 학습 내용
백엔드 개발자에게 필수적인 CS 지식(Network, OS, DB, Security 등)의 핵심 정리 및 실제 개발 업무와의 연결 고리 파악
기술 면접에서 나오는 질문의 숨은 의도 파악과 단답형 지식 나열이 아닌 자신의 경험과 지식을 논리적으로 구조화하여 답변하는 방법 습득
인사이트
그동안 학습했던 파편화된 CS 지식들을 좋은 백엔드 시스템을 만들기 위한 기본기라는 실무적 관점에서 체계화함
기술 면접이 단순 지식 암기 확인이 아니라 기본기를 바탕으로 한 문제 해결 능력을 검증하는 과정임을 깊이 이해함
도메인 주도 개발 시작하기
핵심 학습 내용
도메인 모델링 및 DDD 핵심 요소: 엔티티(Entity)와 밸류(Value) 타입의 구분, 유비쿼터스 언어(Ubiquitous Language) 정의 및 바운디드 컨텍스트(Bounded Context)를 통한 모델 경계 설정 이해.
애그리거트와 리포지터리: 복잡한 비즈니스 규칙을 애그리거트(Aggregate) 단위로 묶어 일관성을 유지하고, 리포지터리(Repository)를 통해 영속성을 관리하는 실전 구현 기법 학습.
도메인 서비스 및 이벤트: 엔티티에 속하기 어려운 로직을 위한 도메인 서비스 활용, 도메인 이벤트를 이용한 서비스 간 결합도 해소 및 트랜잭션 범위 최적화 방법 습득.
인사이트
애그리거트 단위로 트랜잭션 범위를 분리하여 잠금 범위를 최소화하고 도메인 이벤트를 활용해 시스템의 결합도를 낮춤
복잡한 비즈니스 로직을 모델의 경계 안에서 관리하며 대규모 시스템에서도 유지보수가 용이한 설계 원칙을 정립함
이펙티브 자바 (Effective Java)
핵심 학습 내용
객체 생성과 파괴: 정적 팩토리 메서드(Item 1), 빌더 패턴(Item 2), 싱글턴(Item 3), 불필요한 객체 생성 방지(Item 6) 및
try-with-resources(Item 9) 사용 권장 사항 학습.클래스와 인터페이스: 접근 권한 최소화(Item 15), 불변성 활용(Item 17), 상속보다는 컴포지션(Item 18), 인터페이스 우선(Item 20) 등 유연한 설계 원칙 습득.
메서드 및 제네릭: 방어적 복사(Item 50), null 대신 빈 컬렉션 반환(Item 54), 로 타입(Raw Type) 사용 금지(Item 26), 와일드카드 활용(PECS, Item 31) 등 타입 안전성 확보 방법 학습.
동시성: 공유 중인 가변 데이터 동기화(Item 78), 과도한 동기화 회피(Item 79) 등 멀티스레드 프로그래밍 원칙.
인사이트
불변 객체와 방어적 복사를 적극적으로 활용하여 복잡한 락 메커니즘 없이도 스레드 안전성을 확보하는 설계를 지향함
자바 언어의 특성을 올바르게 활용하여 안전하고 가독성 높은 코드를 작성하는 전문적인 개발 습관을 갖춤
Spring Cloud로 개발하는 마이크로서비스 (MSA)
핵심 학습 내용
Service Discovery(Eureka), API Gateway, Config Server 등 MSA를 구성하는 핵심 컴포넌트의 역할과 동작 원리 이해
OpenFeign을 활용하여 마이크로서비스 간 HTTP 통신을 인터페이스 기반의 선언적 방식으로 간결하게 처리하는 방법 습득
인사이트
MSA 도입 시 직면하는 통신 복잡도와 장애 전파 등 기술적 과제들을 깊이 이해하고 적절한 도입 시점을 판단하는 안목 기름
각 도메인의 독립성을 보장하고 특정 서비스의 장애가 전체로 확산되는 것을 최소화하는 구조적 설계 역량을 확보함
개발자를 위한 레디스
핵심 학습 내용
Redis가 싱글 스레드 기반으로 동작하는 이유와 그로 인해 얻는 원자성(Atomicity)의 이점 이해
주요 자료구조인 String, Set, Sorted Set, Hash, List의 내부 동작 방식과 시간 복잡도(Time Complexity), 그리고 각 시나리오에 맞는 최적의 자료구조 선택 기준 학습
인사이트
Redis를 단순 캐시가 아닌 분산 락, 메시지 큐, 실시간 랭킹 등 다양한 시나리오에 활용할 수 있는 도구로 재인식함
비즈니스 요구사항에 맞춰 최적의 데이터 구조를 설계하고 활용하여 시스템의 전반적인 성능을 개선하는 능력을 키움
자바 - 고급 1편, 멀티스레드와 동시성
핵심 학습 내용
Java 메모리 모델(JMM)을 기반으로, 멀티코어 환경에서 각기 다른 CPU 캐시와 메인 메모리 간의 데이터 불일치로 인해 발생하는 가시성(Visibility) 문제와
volatile키워드의 역할 이해원자성(Atomicity) 문제를 해결하기 위한
synchronized와 ReentrantLock의 동작 원리, 그리고 CAS 알고리즘의 개념 학습
인사이트
CPU 캐시와 메인 메모리 간의 데이터 불일치라는 하드웨어 레벨에서 동시성 문제의 근본 원인을 명확히 이해함
특정 상황에 어떤 동시성 제어 기법이 적합한지 판단하고 안전한 멀티스레드 환경을 구축하는 전문성을 확보함
생성형 AI 기반의 학습 회고 및 문서 보강
기간 2025년 9월 -
활동
과거에 학습했던 CS, Java, Spring, DB 등의 방대한 내용을 생성형 AI(Gemini)와 토론하며 재정리하는 스터디 진행함
잘 몰랐거나 애매했던 개념에 대해 AI에게 질문하고 답변을 받으며 기존 지식의 빈틈을 메우는 상호작용적 학습 수행함
인사이트
학습 내용을 제3자에게 설명하고 피드백을 받는 과정을 통해 무엇을 알고 모르는지 인지하는 메타인지 능력을 키움
단순 지식 나열을 넘어 기술적 근거를 끊임없이 고민하며 한 단계 깊은 이해를 추구하는 능동적인 학습 습관을 정립함
Last updated
Was this helpful?