LECTURES(34)
-
HTTP 헤더 2 - 캐시와 조건부 요청
모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의 실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., [사진] 📣 확인해주세요!본 강의는 자바 스프링 완전 정복 시리즈의 세 번째 강의입니다. 우아한형제들 최연소 기술 www.inflearn.com 캐시 기본 동작 캐시가 없을 때 데이터가 변경되지 않아도 계속 네트워크를 통해서 데이터를 다운로드 받아야 함 인터넷 네트워크는 매우 느리고 비쌈 브라우저 로딩 속도가 느림 느린 사용자 경험 캐시 적용 캐시 덕분에 캐시 가능 시간동안 네트워크를 사용하지 않아도 됨 비싼 네트워크 사용량을 줄일 수 있음 브라우저 로딩 속도가 매우 빠름 빠른 사용자 경험 캐시 시간 초과 캐시 유효 시간이 초과하면, 서버를 통해 데이터를..
2023.10.25 -
HTTP 헤더 1 - 일반 헤더
모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의 실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., [사진] 📣 확인해주세요!본 강의는 자바 스프링 완전 정복 시리즈의 세 번째 강의입니다. 우아한형제들 최연소 기술 www.inflearn.com HTTP 헤더 header-field = field-name ":" OWS field-value OWS field-name은 대소문자 구문 없음 용도 HTTP 전송에 필요한 모든 부가정보 예) 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트, 서버 정보, 캐 시 관리 정보... 표준 헤더가 너무 많음 필요시 임의의 헤더 추가 가능 분류 - RFC2616(과거) General 헤더 : 메시..
2023.10.25 -
HTTP 상태코드
모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의 실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., [사진] 📣 확인해주세요!본 강의는 자바 스프링 완전 정복 시리즈의 세 번째 강의입니다. 우아한형제들 최연소 기술 www.inflearn.com 상태코드 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능 1xx(Informational) : 요청이 수신되어 처리 중 2xx(Successful) : 요청 정상 처리 3xx(Redirection) : 요청을 완료하려면 추가 행동이 필요 4xx(Client Error) : 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음 5xx(Server Error) : 서버 오류, 서버가 정상 요..
2023.10.25 -
HTTP 메서드 활용
모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의 실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., [사진] 📣 확인해주세요!본 강의는 자바 스프링 완전 정복 시리즈의 세 번째 강의입니다. 우아한형제들 최연소 기술 www.inflearn.com 클라이언트에서 서버로 데이터 전송 데이터 전달 방식 2가지 쿼리 파라미터를 통한 데이터 전송 GET 주로 정렬 필터(검색어) 메시지 바디를 통한 데이터 전송 POST, PUT, PATCH 회원 가입, 상품 주문, 리소스 등록, 리소스 변경 4가지 상황 정적 데이터 조회 이미지, 정적 텍스트 문서 동적 데이터 조회 주로 검색, 게시판 목록에서 정렬 필터(검색어) HTML FORM을 통한 데이터 전송 회원 가입, 상..
2023.10.25 -
HTTP 메서드
모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의 실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., [사진] 📣 확인해주세요!본 강의는 자바 스프링 완전 정복 시리즈의 세 번째 강의입니다. 우아한형제들 최연소 기술 www.inflearn.com API URI 설계 가장 중요한 것은 리소스 식별 행위는 모두 배제하고 대상을 리소스로 식별 회원 목록 조회이면 회원이 리소스 계층 구조상 상위를 컬레션으로 보고 복수 단어 사용 권장 행위에 대한 구분이 되지 않음 → HTTP 메서드로 HTTP 메서드 HTTP 메서드 종류 GET : 리소스 조회 POST : 요청 데이터 처리, 주로 등록에 사용 PUT : 리소스 대체, 해당 리소스가 없으면 생성 PATCH : 리..
2023.10.25 -
HTTP 기본
모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의 실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., [사진] 📣 확인해주세요!본 강의는 자바 스프링 완전 정복 시리즈의 세 번째 강의입니다. 우아한형제들 최연소 기술 www.inflearn.com HTTP(HyperText Transfer Protocoal) 모든 것이 HTTP HTTP 메시지에 모든 것을 전송 HTML, TEXT Image, 음성, 영상, 파일 JSON, XML (API) 거의 모든 형태의 데이터 전송 가능 서버간에 데이터를 주고 받을 때도 대부분 HTTP 사용 HTTP 역사 HTTP/1.1 : 가장 많이 사용 RFC2068 → RFC2616 → RFC7230~7235 HTTP/2 : 성..
2023.10.25 -
URI와 웹 브라우저 요청 흐름
모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의 실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., [사진] 📣 확인해주세요!본 강의는 자바 스프링 완전 정복 시리즈의 세 번째 강의입니다. 우아한형제들 최연소 기술 www.inflearn.com URI(Uniform Resource Identifier) URI : 로케이터(locator), 이름(name) 또는 둘다 추가로 분류될 수 있음 URL : 리소스의 위치 URN : 리소스의 이름 URI 단어 뜻 Uniform : 리소스 식별하는 통일된 방식 Resource : 자원, URI로 식별할 수 있는 모든 것(제한 없음) Identifier : 다른 항목과 구분하는데 필요한 정보 URL, URN 단어 뜻..
2023.10.25 -
인터넷 네트워크
모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의 실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., [사진] 📣 확인해주세요!본 강의는 자바 스프링 완전 정복 시리즈의 세 번째 강의입니다. 우아한형제들 최연소 기술 www.inflearn.com 인터넷 통신 클라이언트와 서버 어떻게 통신? 인터넷 망을 통해 통신하는데 인터넷에는 수많은 노드 존재 IP(인터넷 프로토콜) 컴퓨터 간 통신이 가능하려면 먼저 IP 주소를 부여 받아야 함 IP 역할 지정한 IP 주소에 데이터 전달 패킷(Packet)이라는 통신 단위로 데이터 전달 IP 패킷 정보 출발지 IP 목적지 IP 전송 데이터 기타… 클라이언트 패킷 전달 패킷을 인접 노드에 전달하면 패킷 정보에 따라 이동해..
2023.10.25 -
나머지 기능들
Specifications(명세) JPA Criteria 복잡 QueryDSL 사용하자 Query By Example 장점 동적 쿼리를 편리하게 처리 도메인 객체를 그대로 사용 데이터 저장소를 RDB에서 NoSQL로 변경해도 코드 변경이 없게 추상화되어 있음 스프링 데이터 JPA JpaRepository 인터페이스에 이미 포함 단점 조인은 가능하지만 내부 조인만 가능 외부 조인은 안됨 중첩 제약조건 안됨 매칭 조건이 매우 단순 QueryDSL Projections
2023.09.29 -
스프링 데이터 JPA 분석
스프링 데이터 JPA 구현체 분석 SimpleJpaRepository 에 @Transactional이 걸려 있음 → 스프링 데이터 JPA를 사용하면 트랜잭션이 없어도 데이터 등록, 변경이 가능 @Transactional(readOnly = true) 를 사용하면 flush를 생략해서 약간의 성능 향상 가능 save()는 새로운 엔티티면 persist 아니면 merge 새로운 엔티티를 구별하는 방법 기본 전략 식별자가 객체일 때 null로 판단 식별자가 자바 기본 타입일 때 0으로 판단 Persistable 인터페이스를 구현해서 판단 로직 변경 가능 @GenerateValue를 사용하지 않고 id를 직접 할당할 경우 이미 식별자 값이 있는 상태로 save()를 호출함 → merge()가 호출됨 merge(..
2023.09.29 -
확장 기능
사용자 정의 리포지토리 구현 스프링 데이터 JPA가 생성하는 메서드를 사용하지 않고 직접 구현하고 싶다면 JPA 직접 사용 스프링 JDBC Template MyBatis 데이터 커넥션 Querydsl 사용자 정의 인터페이스를 만들고 그 인터페이스의 구현 클래스를 만든 후 respository에 사용자 정의 인터페이스를 상속시킴 사용자 정의 구현 클래스는 리포지토리 인터페이스 이름 + Impl 으로 만들어야 함 스프링 데이터 JPA가 인식해서 스프링 빈으로 등록해줌 다른 이름으로 변경하고 싶으면 @EnableJpaRepositories(basePackages = "study.datajpa.repository", repositoryImplementationPostfix = "Impl") 실무에서는 주로 Qu..
2023.09.29 -
쿼리 메소드 기능
메소드 이름으로 쿼리 생성 Spring Data JPA - Reference Documentation Example 121. Using @Transactional at query methods @Transactional(readOnly = true) interface UserRepository extends JpaRepository { List findByLastname(String lastname); @Modifying @Transactional @Query("delete from User u where u.active = false") void del docs.spring.io 조회(SELECT) : find…By, query…By, get…By 개수 조회(COUNT) : count…By → long..
2023.09.29