
클라이언트에서 서버로 데이터 전송 데이터 전달 방식은 크게 2가지 쿼리 파라미터를 통한 데이터 전송 GET 주로 정렬 필터(검색어) 메시지 바디를 통한 데이터 전송 POST, PUT, PATCH 회원 가입, 상품 주문, 리소스 등록, 리소스 변경 정적 데이터 조회(쿼리 파라미터 사용) GET /static/star.jpg HTTP/1.1 Host: localhost:8080 이미지, 정적 텍스트 문서 조회는 GET 사용 정적 데이터는 일반적으로 쿼리 파라미터 없이 리소스 경로로 단순하게 조회 가능 동적 데이터 조회(쿼리 파라미터 미사용) GET /search?q=hello&hl=ko HTTP/1.1 Host: www.google.com 쿼리 파라미터를 기반으로 정렬 필터해서 결과를 동적으로 생성 주로 검..

HTTP HTTP 메시지에 모든 것을 전송 HTML, TEXT IMAGE, 음성, 영상, 파일 JSON, XML 거의 모든 형태의 데이터 전송 가능 서버간에 데이터를 주고 받을 때도 대부분 HTTP 사용 지금은 HTTP 시대! HTTP 역사 HTTP/0.9 1991년 : GET 메소드만 지원, HTTP 헤더 X HTTP/1.0 1996년 : 메소드, 헤더 추가 HTTP/1.1 1997년: 가장 많이 사용, 우리에게 가장 중요한 버전 RFC2068(1997) -> RFC2616(1999) -> FRC7230~7235(2014) HTTP/2 2015년: 성능 개선 HTTP/3 진행중: TCP 대신에 UDP 사용, 성능 개선 기반 프로토콜 TCP: HTTP1.1, HTTP/2 UDP: HTTP/3 현재 HTT..

URI(Uniform Resource Identifier) 리소스의 의미는 뭘까? 회원을 등록하고 수정하고 조회하는게 리소스가 아니다 예) 미네랄을 캐라 -> 미네랄이 리소스 회원이라는 개념 자체가 리소스다 리소스를 어떻게 식별하는게 좋을까? 회원을 등록하고 수정하고 조회하는 것을 모두 배제 회원이라는 리소스만 식별하면 된다 -> 회원 리소스를 URI 에 매핑 API URI 설계 리소스 식별, URI 계층 구조 활용 회원 목록 조회 /members 회원 조회 /members/{id} -> 어떻게 구분하지? 회원 등록 /members/{id} -> 어떻게 구분하지? 회원 수정 /members/{id} -> 어떻게 구분하지? 회원 삭제 /members/{id} -> 어떻게 구분하지? 참고: 계층 구조상 상위..

URI(Uniform Resource Identifier) URI 단어 뜻 URI는 로케이터(locator), 이름(name) 또는 둘 다 추가로 분류될 수 있다 Uniform : 리소스 식별하는 통일된 방식 Resource : 자원, URI로 식별할 수 있는 모든 것(제한 없음) Identifier: 다른 항목과 구분하는데 필요한 정보 URI? URL? URN? URL(Uniform Resource Identifier) URN(Uniform Resource Name) URL,URN 단어 뜻 URL - Locator: 리소스가 있는 위치를 지정 URN - Name : 리소스에 이름을 부여 위치는 변할 수 있지만, 이름은 변하지 않는다 URN 이름만으로 실제 리소스를 찾을 수 있는 방법이 보편화 되지 않음..

IP(인터넷 프로토콜) IP의 역할 지정한 IP 주소(IP Address)에 데이터 전달 패킷(Packet)이라는 통신 단위로 데이터 전달 IP 프로토콜의 한계 비연결성 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송 비신뢰성 중간에 패킷이 사라지면? 패킷이 순서대로 안오면? 프로그램구분 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이라면? IP 프로토콜 만으로는 문제점들을 해결할 수 없다 그래서 이런 문제점들을 해결해주는게 TCP 프로토콜 이다 TCP,UDP 인터넷 프로토콜 스택의 4계층 애플리케이션 계층 HTTP,FTP 전송 계층 TCP,UDP 인터넷 계층 IP 네트워크 인터페이스 계층 TCP 특징 전송 제어 프로토콜(Transmission Control Protocol) ..

포스팅 내용은 강대명님의 우아한 테크 세미나 내용을 정리 하였습니다 Redis 를 소개하기 전에 Cache 란? Cache 의 정의 Cache 는 나중에 요청올 결과를 미리 저장해두었다가 빠르게 서비스 해주는 것을 의미 Cache 구조 #1 - Look aside cache Web Server 는 데이터가 존재하는지 Cache 를 연계 확인 Cache 에 데이터가 있으면 Cache 에서 가져온다 Cache 에 데이터가 없다면 DB에서 얻어온다 DB 에서 얻어온 데이터를 Cache 에 다시 저장한다 Cache 구조 #2 - Write Back Web Server 는 모든 데이터를 Cache 에 저장 Cache 에 특정 시간동안의 데이터가 저장 Cache 에 있는 데이터를 DB에 저장한다. DB에 저장된 데..

intellij-java-google-style.xml 다운로드 해당 링크 로 이동하여 intellij-java-google.style.xml 을 클릭합니다. 페이지 우측 중단에 Raw 를 클릭합니다. 페이지의 빈 공간에 마우스 우측을 클릭하여 저장하고 싶은 경로에 다른 이름으로 저장합니다. intellij-java-google-style.xml 이 적용되어있지 않은 IDEA 에서도 언제든지 Git Repository 에서 Clone을 받으면 쉽게 적용할 수 있도록 프로젝트 내부로 이동해줍니다. Intellij 설정 좌측 상단의 File > Setting > Editor > Code Style 탭으로 이동합니다. 톱니바퀴 버튼을 선택하고 Import Schema > Intellij IDEA code st..

기존 애플리케이션에 적용된 조회 API의 Cache 기능 이외에 조회마다 일어나는 조회수의 기능도 Cache 기능이 필요하다고 생각하였고, TTL 설정을 다르게 주어 유연하게 Cache 기능을 사용하고 싶었다. TTL 설정 Redis 는 기본적으로 RedisCacheManager 의 아래의 메소드들을 통해 RedisCacheConfiguration 를 전달해서 설정할 수 있다. cacheDefaults(RedisCacheConfiguration defaultCacheConfiguration) withInitialCacheConfigurations(Map cacheConfigurations) Configuration 설정 default 설정과 config 설정은 각각 작성하였고, withInitialCac..

Spring boot + Redis 연동 및 Cache 예제 Redis 소개 Redis는 데이터베이스, 캐시 또는 메시지 브로커로 사용할 수 있는 오픈소스 인메모리 키-값 형태의 비 관계형 데이터베이스 입니다. Redis 설치 Redis의 설치는 링크 에서 가능합니다 의존성 추가 Maven org.springframework.boot spring-boot-starter-data-redis 2.3.3.RELEASE Gradle implementation 'org.springframework.boot:spring-boot-starter-data-redis'사용자 설정 파일 수정 application.yml에 redis 기본 설정을 합니다. spring: redis: host: 127.0.0.1..