스프링 프레임워크는 자바 기반 웹 애플리케이션 개발에 널리 사용되는 프레임워크입니다. 이 강의에서는 Spring Framework의 구조, HTTP 요청/응답 처리 흐름, Spring Boot를 활용한 웹 애플리케이션 개발, 데이터베이스 연동에 대해 학습합니다.소프트웨
템플릿 엔진은 동적 웹 페이지 생성을 위한 도구로, 정적 부분과 동적 데이터를 결합하여 HTML 등의 문서를 생성합니다. 대표적으로 Thymeleaf, JSP, FreeMarker 등이 있으며, 서버 사이드 렌더링(SSR)에 사용됩니다.Servlet만 사용 - 하나의
스프링 프레임워크는 자바 기반 웹 애플리케이션 개발에 널리 사용되는 프레임워크입니다. 이 강의에서는 Spring Framework의 구조, HTTP 요청/응답 처리 흐름, Spring Boot를 활용한 웹 애플리케이션 개발, 데이터베이스 연동에 대해 학습합니다.소프트웨
템플릿 엔진은 동적 웹 페이지 생성을 위한 도구로, 정적 부분과 동적 데이터를 결합하여 HTML 등의 문서를 생성합니다. 대표적으로 Thymeleaf, JSP, FreeMarker 등이 있으며, 서버 사이드 렌더링(SSR)에 사용됩니다.Servlet만 사용 - 하나의
로깅을 위한 어노테이션으로, Logback 라이브러리를 통해 로그를 기록합니다.로그 레벨: TRACE > DEBUG > INFO > WARN > ERROR기본 로그 레벨은 INFO이며, application.properties에서 설정 가능권장 사용법: log.info
이번 프로젝트는 사용자가 일정을 관리할 수 있는 RESTful API를 개발하는 것이었습니다. 주요 기능으로는 일정 생성, 조회, 수정, 삭제가 있습니다. 각 일정은 할일(todo), 작성자(writer), 비밀번호(password)를 가지며, 수정 및 삭제 시에는 비
객체 지향 설계의 기본이 되는 5가지 SOLID 원칙에 대해 알아봅시다.정의: 하나의 클래스는 하나의 책임만 가져야 함예시:정의: 소프트웨어 요소는 확장에는 열려 있어야 하고, 수정에는 닫혀 있어야 함핵심: 다형성을 활용하여 새로운 기능 추가 시 기존 코드 변경 없이

쿠키는 사용자의 웹 브라우저에 저장되는 작은 데이터 조각으로, HTTP의 Stateless 특성을 보완하여 사용자 상태를 유지하는 데 사용됩니다.HTTP는 기본적으로:Stateless: 각 요청은 독립적으로 처리됨Connectionless: 요청-응답 후 연결 종료이러
이번 프로젝트는 사용자가 회원가입과 로그인을 통해 일정을 생성, 조회, 수정, 삭제할 수 있는 API 서버를 구현하는 것이었습니다. 프로젝트는 총 8단계로 구성되어 있으며, 이 글에서는 필수 기능인 Lv 1-4까지의 개발 과정과 트러블슈팅을 공유하고자 합니다.Java
Java 8의 인터페이스 디폴트 메서드를 활용하여 Spring Data JPA Repository에서 반복되는 코드를 해결할 수 있는 강력한 기능입니다.문제점:같은 패턴의 코드가 반복됨예외 메시지가 일관되지 않을 수 있음코드 중복으로 인한 유지보수의 어려움반복되는 조회
API 응답의 일관성을 위해 사용하는 공통 응답 객체입니다. 모든 API 엔드포인트에서 동일한 구조의 응답을 제공하여 프론트엔드에서 처리하기 쉽게 만들어줍니다.문제점:API마다 응답 구조가 다름프론트엔드에서 응답 처리 로직이 복잡해짐성공/실패 여부 판단이 어려움예외 처
Spring Boot에서 @RestControllerAdvice를 사용하여 애플리케이션 전체의 예외를 한 곳에서 처리하는 방법입니다.문제점:각 컨트롤러마다 중복된 예외 처리 코드일관성 없는 에러 응답 형식예외 처리 로직 변경 시 모든 컨트롤러 수정 필요각 컨트롤러에서
Spring Boot로 소셜미디어 백엔드를 개발하고 HTML/JavaScript 프론트엔드와 연동하던 중 발생한 500 에러를 해결한 과정을 공유합니다.백엔드: Spring Boot 3.5.0 + Spring Security + JWT + MariaDB프론트엔드: Va
HTTP 요청/응답의 Body 데이터를 Java 객체로 변환하거나, 그 반대로 변환해주는 Spring의 핵심 컴포넌트우체부가 편지를 배달할 때, 한국어 편지를 영어로 번역하거나 영어 편지를 한국어로 번역해주는 번역가 역할"이 데이터 변환할 수 있어?" - canRead
JPQL(Java Persistence Query Language)은 엔티티 객체를 대상으로 하는 객체지향 쿼리 언어하나의 쿼리를 실행했는데, 연관된 엔티티를 조회하기 위해 추가로 N개의 쿼리가 더 실행되는 문제회원 100명 = 101개 쿼리 (1 + 100)회원 10
쉽게 말해서 Spring이 대신 만들어주고 관리해주는 객체예요!자동 생성 - 내가 new 안 써도 됨자동 연결 - 객체들 연결 알아서 해줌싱글톤 - 메모리 효율적 (하나만 만들어서 공유)생명주기 관리 - 언제 만들고 언제 없앨지 Spring이 결정Bean의 인생을 사람
Spring Boot 프로젝트에서 기존 JWT 토큰에 사용자의 nickname 정보를 추가하는 과정과 마주친 트러블슈팅을 공유합니다.기획팀에서 사용자 정보에 nickname이 필요하다는 요청이 들어왔습니다.User 테이블에 nickname 컬럼 추가 (중복 허용)JWT
Spring을 처음 배울 때 헷갈리는 개념들을 차근차근 정리해보았습니다. 실무에서 가장 많이 사용하는 핵심 기능들을 중심으로 설명하겠습니다!Bean이란? Spring이 실행될 때 @Component 계열 어노테이션을 확인해서 객체로 등록하는 것핵심 어노테이션들:@Com