자바 백엔드 입문 시리즈 59편 완주 가이드. 추천 읽기 순서와 Part 1~6 전체 목차.
📚 시리즈 1 · 59편
자바 백엔드 입문
자바 객체·인터페이스·컬렉션부터 Spring Framework·DI·Bean·AOP·MVC·JPA·QueryDSL·테스트·운영까지, 국내 백엔드 채용 공고 1순위 스택의 입문에서 운영까지를 59편으로 풀어쓴 학습 자료입니다.
어떤 분이 읽으면 좋아요
이 시리즈는 자바·Spring으로 백엔드 개발자로 입사·이직을 준비하는 분, 또는 다른 언어(파이썬·노드·고)에서 자바·Spring 진영으로 넘어오시는 분을 염두에 두고 썼어요. 국내 백엔드 채용 공고 70% 이상이 자바·Spring 기반이고, 신입 면접의 8할이 DI·Bean·@Transactional·JPA·테스트 다섯 키워드 안에서 나옵니다.
처음 들어오신 분은 1편(자바가 표준)·11편(Spring Framework)·14편(첫 Bean) 세 글이면 큰 그림이 잡혀요. JPA가 첫 산이라면 44편부터 51편까지 8편이 한 묶음, 테스트가 약점이라면 52편부터 54편까지 3편이 한 묶음입니다.
추천 읽기 순서
- 자바가 처음인 신입 → 1편(왜 자바가 표준) → 2편(객체와 클래스) → 3편(인터페이스·다형성) → 5편(컬렉션) → 9편(Stream·람다)
- 자바는 알지만 Spring이 처음 → 11편(Spring 종합) → 14편(첫 Bean) → 15편(왜 DI) → 17편(ApplicationContext) → 18편(@Component·@Autowired)
- MVC·REST API 만드는 분 → 25편(DispatcherServlet) → 27편(@Controller) → 28편(@RestController) → 29편(요청 파라미터) → 33편(@ExceptionHandler)
- JPA·DB 자리 → 41편(JDBC) → 43편(@Transactional) → 44편(JPA·Hibernate 관계) → 46편(연관관계) → 51편(영속성 컨텍스트)
- 테스트 자리 → 52편(@SpringBootTest) → 53편(MockMvc) → 54편(Testcontainers)
- 운영·시니어 정리 → 36편(로깅) → 39편(@Async) → 43편(@Transactional 원리) → 57편(Actuator) → 51편(LazyLoading 함정)
전체 목차 — Part 1~6
Part 1. 자바 기본 (10편)
| 편 | 제목 | 핵심 |
|---|---|---|
| 1편 | 왜 자바가 표준인가 | JVM·진영·채용·생태계 |
| 2편 | 객체와 클래스 | 필드·메서드·생성자·this |
| 3편 | 인터페이스와 다형성 | 추상화·구현 분리·DI의 토대 |
| 4편 | 어노테이션, Spring의 언어 | @·메타데이터·리플렉션 |
| 5편 | 컬렉션 List·Set·Map | ArrayList·HashMap·LinkedList |
| 6편 | 제네릭 | 타입 안전·<T>·와일드카드 |
| 7편 | 예외 처리 | checked·unchecked·try-catch-finally |
| 8편 | Optional null 안전 | of·ofNullable·map·orElse |
| 9편 | Stream API·람다 | filter·map·collect·함수형 |
| 10편 | Maven·Gradle | 의존성·빌드·라이프사이클 |
Part 2. Spring Core (15편)
| 편 | 제목 | 핵심 |
|---|---|---|
| 11편 | Spring Framework란 | IoC·DI·AOP·Spring Boot 관계 |
| 12편 | start.spring.io 첫 프로젝트 | Initializr·의존성·main 메서드 |
| 13편 | application.yml·Profiles | 환경 분리·dev/prod·@Value |
| 14편 | 첫 Bean 만들기 Hello Spring | @SpringBootApplication·CommandLineRunner |
| 15편 | 왜 의존성 주입이 필요한가 | new·결합도·테스트 가능성 |
| 16편 | Bean이란 일반 객체와의 차이 | 컨테이너 관리·생명주기 |
| 17편 | ApplicationContext 컨테이너 본체 | BeanFactory·getBean·계층 |
| 18편 | @Component @Autowired 한 번에 | 스캔·주입·생성자 권장 |
| 19편 | @Configuration @Bean Java Config | 외부 라이브러리 Bean 등록 |
| 20편 | Bean Scope Singleton과 Prototype | singleton·prototype·request·session |
| 21편 | Bean 생명주기 PostConstruct PreDestroy | 초기화·소멸·콜백 |
| 22편 | SpEL 표현식 언어 | #{...}·${...}·@Value |
| 23편 | AOP 횡단 관심사가 뭔가 | 로깅·트랜잭션·보안 분리 |
| 24편 | @Aspect로 첫 AOP 박기 | @Before·@Around·Pointcut |
| 38편 | ApplicationEvent @EventListener | 도메인 이벤트·발행/구독 |
Part 3. Spring MVC·Web (13편)
| 편 | 제목 | 핵심 |
|---|---|---|
| 25편 | DispatcherServlet 요청 처리 흐름 | Front Controller·HandlerMapping |
| 26편 | Filter vs Interceptor 비교 | Servlet vs Spring·실행 시점 |
| 27편 | @Controller @RequestMapping | GET·POST·경로 매핑 |
| 28편 | @RestController와 JSON 응답 | Jackson·@ResponseBody·DTO |
| 29편 | @RequestParam @PathVariable @RequestBody | 쿼리·경로·바디 셋의 차이 |
| 30편 | ArgumentResolver와 @LoginUser | 커스텀 파라미터·세션 추출 |
| 31편 | 파일 업로드 @RequestPart MultipartFile | 멀티파트·용량·MIME |
| 32편 | CORS 설정 | Origin·Preflight·@CrossOrigin |
| 33편 | @ExceptionHandler @ControllerAdvice | 전역 예외·에러 응답 표준화 |
| 34편 | Bean Validation @Valid @NotNull | JSR-380·@Validated·BindingResult |
| 35편 | 커스텀 Validator 만들기 | ConstraintValidator·도메인 규칙 |
| 40편 | WebClient RestClient HTTP 클라이언트 | RestTemplate 대체·동기/비동기 |
| 59편 | Swagger Springdoc OpenAPI 문서 | @Operation·자동 문서화 |
Part 4. 데이터·JPA (11편)
| 편 | 제목 | 핵심 |
|---|---|---|
| 41편 | JDBC와 DataSource | Connection Pool·HikariCP |
| 42편 | JdbcTemplate으로 SQL 다루기 | RowMapper·queryForObject |
| 43편 | @Transactional의 원리 | AOP·Propagation·rollbackFor |
| 44편 | JPA·Hibernate·Spring Data JPA 셋의 관계 | 스펙·구현체·추상화 |
| 45편 | @Entity Repository JPA 두 축 | 매핑·CrudRepository |
| 46편 | JPA 연관관계 @OneToMany @ManyToOne | mappedBy·N+1의 시작 |
| 47편 | @Embedded @Embeddable 값 객체 | 임베디드 타입·DDD |
| 48편 | JPA Auditing @CreatedDate @LastModifiedDate | 생성·수정 시각 자동 |
| 49편 | JPA 메서드 이름 쿼리 @Query | findBy·JPQL·Native |
| 50편 | QueryDSL 타입 안전 동적 쿼리 | Q클래스·BooleanBuilder |
| 51편 | 영속성 컨텍스트와 LazyLoading | 1차 캐시·dirty checking·N+1 |
Part 5. 테스트·통합 (3편)
| 편 | 제목 | 핵심 |
|---|---|---|
| 52편 | @SpringBootTest 통합 테스트 | 컨텍스트 로딩·webEnvironment |
| 53편 | MockMvc로 컨트롤러 테스트 | perform·andExpect·jsonPath |
| 54편 | Testcontainers 실제 DB 통합 테스트 | Postgres·Redis·격리 |
Part 6. 운영·확장 (7편)
| 편 | 제목 | 핵심 |
|---|---|---|
| 36편 | Logback SLF4J 로깅 | 파사드·MDC·logback-spring.xml |
| 37편 | Spring Security 기초 | Filter Chain·인증·인가 |
| 39편 | @Async CompletableFuture 비동기 | TaskExecutor·논블로킹 |
| 55편 | @Scheduled로 작업 스케줄링 | cron·fixedRate·분산 환경 함정 |
| 56편 | @Cacheable 캐싱 | Cache Abstraction·Redis·키 설계 |
| 57편 | Spring Boot Actuator | /health·/metrics·운영 엔드포인트 |
| 58편 | MapStruct DTO 매핑 자동화 | 컴파일 타임·@Mapper |
시리즈 핵심 한 줄 정리
- 핵심 5단어 — IoC · DI · Bean · AOP · @Transactional
- 자바 vs Spring — 자바는 언어, Spring은 그 위에 얹는 IoC 컨테이너·Web·Data·Security 묶음
- Spring vs Spring Boot — Spring은 골격, Boot는 자동 설정·내장 톰캣·Starter 의존성으로 시작 비용을 0으로
- DI 주입 방식 — 생성자 주입이 표준. 필드 주입은 테스트·불변성에서 손해
- @Transactional 함정 — private 메서드·self-invocation·checked exception·롤백 안 됨 4대 함정
- JPA N+1 — 연관관계 LAZY + 반복 조회에서 발생. fetch join·@EntityGraph·QueryDSL 로 해결
- 테스트 3대 도구 — JUnit 5 + Mockito + Testcontainers. @SpringBootTest는 무겁고 @WebMvcTest·@DataJpaTest 분리가 표준
- 신입 면접 8할 — DI·Bean Scope·@Transactional·영속성 컨텍스트·N+1·Filter vs Interceptor·@Async·Actuator 안에서 출제
- 현재 안정 버전 — Spring Boot 3.5 + Spring Framework 6.2 + Java 21 LTS (2026-05 기준)
다른 시리즈
이 시리즈가 끝나면 자바·Spring 백엔드 개발자가 그 다음에 만나는 데이터 인프라·배치·검색 자리가 시리즈 2·3·8로 이어져요. JPA가 끝나면 PG·Redis·Kafka 130편, 대량 처리는 Spring Batch 48편, 검색·로그는 Elasticsearch 38편이 자연스러운 다음 길이입니다.