
2026.04.07실생활 비유로 설명하자면 백엔드는 레스토랑의 주방과 같음.손님(USER)은 주방을 직접 보지 못하지만, 웨이터(FRONTEND)를 통해 주문을 하면 주방(BACKEND)에서 만든 요리를 전달 받을 수 있음.웹 서버를 쉽게 만들어주는 도구 상자임.일반

2026.04.08라이브러리는 애플리케이션 개발에 필요한 클래스, 함수 등을 모아 놓은 코드의 모음을 의미함.라이브러리 장점개발자가 복잡한 코드를 직접 작성하지 않아서 개발 생산성이 높아짐.라이브러리 단점업데이트 되지 않거나 지원이 중단될 경우 문제가 발생할 수 있음.

2026.04.09MVC 패턴은 하나의 Servlet이 혼자 모든 것을 처리하던 문제를 해결하기 위해 애플리케이션의 코드를 3가지 역할로 명확하게 나누는 설계 방식임.Model : 데이터와 비즈니스 로직을 담당View : 사용자에게 보여지는 화명을 담당Controlle
2026.04.10 스프링이 무엇인가? 스프링은 자바로 웹 프로그램을 만드는데에 있어서 더 쉽게 개발을 할 수 있도록 도와주는 개발 도구 모음이다! 자바 만으로도 웹 프로그램을 만들 수 있지만, 직접 하나하나 다 만들려면 번거롭고 복잡하기 때문에 스프링으로 구조를 잡
문제 |authorName을 URL에 직접 입력했을 때 필터링이 되지 않고 전체 목록이 조회됨.원인 |URL에 한글을 직접 입력하면 인코딩이 제대로 되지 않아 서버에서 null로 인식함.해결방법 |포스트맨 Params 탭에서 Key/Value로 직접 입력하면 자동으로

2026.04.13과제를 진행한 순서대로 정리하는 글~이번 과제도 역시나 필수 기능과 도전 기능으로 나눠져있음...!우선 3 Layer Architecture를 적용해서 패키지를 만들어서 이 과제의 틀을 먼저 잡아주고 시작했음.그리고는 바로 Schedule Entity
2026.04.14의존성 주입(DI, Dependency Injection)은 객체가 필요한 다른 객체를 직접 생성하지 않고, 외북에서 받아 사용하는 방식.생성자를 통해 의존성을 주입하는 방식특징객체가 생성되는 시점에 의존성이 함께 주입됨.필수 의존성을 반드시 전달받도

2026.04.15직접적인 데이터베이스 작업을 수행하기 위한 객체(교안에 있는 그림이 웃겨서 넣음..ㅋㅋㅋ)EntityManager 를 만들기 위한 공장엔티티들이 관리되는 장소엔티티가 영속성 컨텍스트에 관리되고 있지 않은 상태엔티티가 영소겅 컨트스트에 관리되고 있는 상

2026.04.16응집도와 결합도는 유지보수하기 좋고 유연한 코드를 작성하기 위한 매우 중요한 개념임!클래스 내의 메소드와 데이터들이 얼마나 서로 관련 있는 작업을 수행하는지를 의미하는 것. (좋은 소프트웨어를 위해서는 응집도를 높여줘야함!)응집도를 높이기 위해서는 하

2026.04.17“누구세요?”사용자가 누구인지 확인하는 절차. (시스템에 등록된 사용자인지를 증명하는 과정)아이디와 비밀번호를 입력해서 로그인하는 것.스마트폰 잠금을 지문이나 얼굴 인식으로 해제하는 것.인증 = 로그인“뭘 할 수 있나요?”인증된 사용자가 특정 리소스나
2026.04.20@ManyToOne 이 있는 쪽이 연관관계의 주인회원 멤버와 프로필 사진처럼 1:1로 매핑되는 관계외래키(FK)를 어디에 둘지 선택해야함.주도 테이블에 FK 두기 (추천) : Member 가 Profile 을 사용하는 관계라면, Member 테이블에
2026.04.21부모 엔티티의 영속성 상태 변화를 자식 엔티티에게 그대로 전파하는 기능CascadeType.ALL : 모든 Cascade옵션을 적용 (부모와 자식의 생명주기가 완벽하게 일치할 때 사용)CascadeType.PERSIST : 부모 엔티티를 저장할 때,
삭제 로직 구현 방식 선택 과정에서 고민이 있었던 문제 문제 | 삭제 기능을 구현할 때 existsById() + deleteById() 방식과 findById().orElseThrow() + delete() 방식 중 어떤 방식을 선택하는 것이 더 적절한지 고민했음.
@MappedSuperclass "이 클래스는 테이블로 만들지 말고, 이 클래스를 상속받는 엔티티들한테 필드만 물려줘" 라는 뜻BaseEntity를 @Entity로 만들면 base_entity 테이블이 생겨버림. 그건 원하는 게 아니니까 @MappedSuperclass
2026.04.29클라이언트 요청\-> Dispatcher Servlet (어떤 컨트롤러가 처리할 수 있지?)\-> Controller (API 매핑)\-> Service (비즈니스 로직 수행)\-> 예외 발생! (throw new OrderNotFoundExcepti
2026.05.04들어온 것을 걸러주는 역할스프링에서 필터는 들어온 모든 입력에 대해서 가장 먼저 처리하는 역할을 하게 됨.필터는 본격적인 스프링 로직이 실행되기 전에 사용자의 요청을 한번 걸러주는 역할을 함.주로 사용하는건 OncePerRequestFilter 임.O

2026.05.06스프링 기반 애플리케이션의 인증과 인가를 담당하는 보안 프레임워크주요 특징Filter 기반 보안 처리인증/인가 로직을 개발자가 직접 구현하지 않아도 되는 구조 제공다양한 인증 방식을 플러그인 형태로 확장 가능build.gradle에 spring sec
2026.05.07Entity 객체를 대상으로 쿼리를 작성하는 객체 지향 SQL객체 중심 개발에 자연스럽게 녹아들 수 있음데이터베이스 독립성 확보정적 타입 지원 + 자동 바인딩복잡한 쿼리도 객체 기준으로 구성 가능JPQL은 JPA 안에 속해 있는 쿼리 언어!1번 쿼리
2026.05.08Hibernate 설정을 통해서 컬렉션 또는 연관된 엔티티들을 배치로 로딩할 수 있게 해주는 기능 (LAZY 로딩이더라도 미리 설정된 개수만큼 한 번에 불러와줌.)LAZY 전략을 유지하면서도 IN 절을 활용한 일괄 조회 가능① 글로벌 설정 (appli