인프런 김영한 강의 정리

⭐영속성 컨텍스트:  엔티티를 영구 저장하는 환경 지난 포스팅에서 회원을 등록할 때EntityManger.persist(entity) 를 이용해서 멤버를 DB에 저장했었다. 그런데 이 개념은 정확히 말하자면,엔티티를 DB에 저장한다는 것이 아니라 '엔티티 매니저를 통해 영속성 컨텍스트에서 관리되는 상태로 넘어간다'라는 개념으로 봐야한다. 영속성 컨텍스트는 논리적 개념이다. 1. 영속성 컨텍스트 상태1) 비영속객체를 생성만 한 상태Member member = new Member();member.setId("member1");member.setUsername("회원1"); 2) 영속객체를 저장한 상태Member member = new Member();member.setId("member1");member.s..
1. JPA 기본 애노테이션@Entity  JPA가 관리하는 엔티티 클래스에 붙여주는 어노테이션! 데이터베이스 테이블과 자바 클래스 간의 매핑을 정의한다. @idPrimary Key(PK)에 붙여주는 어노테이션 @Table(name ="")클래스명과 테이블명이 다를때, 테이블 명을 명시해준다. @Column(name="")필드명과 테이블 컬럼명이 다를 때, 컬럼명을 명시해준다. 2. JPA 예시 코드 (스프링부트 없이)⭐참고로 스프링부트 없이 JPA를 공부하고 있고, lombok라이브러리도 안쓰고 있다. 1) 회원등록✅JPA 실행부package hellojpa;import jakarta.persistence.*;public class JpaMain { public static void main(St..
1. MultiValueMap 이란?하나의 키에 여러 값을 매핑할 수 있는 자료구조다.HTTP 요청 파라미터나 헤더를 처리할 때 유용하게 쓰인다. 2. 코드로 이해하기 ✅HTTP 요청 파라미터를 처리하는 컨트롤러import org.springframework.util.MultiValueMap;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class MultiValueMapController { ..
이전에 System.out.println()으로 로그를 찍지말라는 얘기를 들었었는데왜 쓰면 안되는지 이유를 몰랐었다.이번 포스팅에서는 로그를 어떻게 남겨야하는지 다뤄볼 예정이다. 1. 로깅 라이브러리스프링 부트 라이브러리를 사용하면 스프링 부트 로깅 라이브러리가 포함된다.SLF4J 는 Logback, Log4J, Log4J2 등의 라이브러리를 통합한 인터페이스다.SLF4J 인터페이스로 구현할 때, Logback을 많이 사용하는 추세다. 2. 로그 사용법 Logger를 import할 때, 여러 Logger들이 뜬다.이때 org.slf4j를 선택해야한다. package hello.springmvc.basic;import lombok.extern.slf4j.Slf4j;import org.springframew..
스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 | 김영한 - 인프런김영한 | 웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습www.inflearn.com1. 강의 흐름이 강의는 스프링 MVC의 핵심 원리와 구조를 이해하기 위한 코스다. 아래 절차로 스프링 MVC가 왜 필요하고 어떻게 만들어진 프레임워크인지 이해할 수 있다. 1) 서블릿으로 회원관리 웹 애플리케이션을 만들어서 간단하게 회원가입, 회원등록, 회원목록 조회 기능을 만들음.-> 템플릿 엔진의 필요성을 느낌 2) JSP로 웹 애플리케이션을 만들음.-> 비즈니스 로직과 뷰가 함께 있으니 분리해보는 작업을 함. ..
1. 캐시 제어 헤더클라이언트와 서버가 어떻게 캐시를 관리할 것인지를 정의한다. 1) Cache-Control max-age=: 리소스를 캐시할 수 있는 최대 시간을 초 단위로 지정한다.no-cache: 데이터는 캐시해도 되지만, 캐시된 복사본을 사용하기 전에 원서버(origin)에 검증을 요청한다.no-store: 데이터에 민감한 정보가 있으므로 저장하면 안됨. 캐시하지 않는다.public: 응답이 공개 캐시에 의해 저장될 수 있음.private: 응답이 사용자의 브라우저 캐시에만 저장되어야 함.must-revalidate: 캐시가 만료된 후, 사용하기 전에 반드시 원서버(origin)로부터 검증을 받아야 함.* 참고public과 private 지시어는 캐시 데이터가 어디에 저장되어야 하는지 구분하기 ..
1.캐시 기본 동작✔️HTTP 요청 흐름 비교 ▪️ 캐시 없을 때: 사용자가 서버에 직접 요청하고 서버에서 처리 후 사용자에게 다시 데이터를 보내는 과정을 나타낸다. 이 경우 모든 요청은 서버에서 처리되어야 한다. ▪️  캐시 있을 때: 사용자가 데이터가 필요할 때 캐시를 먼저 확인하고, 데이터가 캐시에 있으면 서버를 거치지 않고 바로 캐시에서 데이터를 받아 사용하는 과정을 보여준다. ✅캐시가 없을 때 특징데이터가 변경되지 않아도 계속 네트워크를 통해서 데이터를 다운받아야한다.인터넷 네트워크는 매우 느리고 비싸다브라우저 로딩 속도가 느리다느린 사용자 경험✅ 캐시가 있을 때 특징HTTP/1.1 200 OKDate: Wed, 15 May 2024 12:30:00 GMTContent-Type: image/j..
1. HTTP 헤더의 역할HTTP 전송에 필요한 클라이언트와 서버 간의 요청 및 응답을 구체화하고, 데이터 형식, 인증, 연결 관리 등과 같은 부가 정보를 제공한다. 2. HTTP 요청 예시✔️표현 헤더- 표현 데이터를 해석할 수 있는 정보를 제공한다. ✔️메시지 본문- 표현 데이터를 전달 3. 표현 헤더데이터의 처리 방식과 관련된 중요한 정보를 제공한다. ✔️Content-Type- HTTP 메시지 본문의 미디어 타입을 지정- 예를 들어, 'text/html;charset=utf-8', 'application/json', 'image/jpeg' 등이 있다. 이를 통해 서버와 클라이언트는 본문 내용을 어떻게 해석할 지 알 수 있다.  ✔️ Content-Encoding- 메시지 본문이 어떤 방식으로 인코..
백엔드 개발자 - 젤리곰
'인프런 김영한 강의 정리' 카테고리의 글 목록 (5 Page)