본문 바로가기

전체 글142

HTTP API 설계하는 법 0. 개요 이번 게시물에서는 HTTP API를 설계하는 법에 대해 작성할 것이다. 해당 게시물을 보기 전, 아래 링크의 글을 보고 오는 것을 추천한다. (HTTP란?) 1. 클라이언트에서 서버로 데이터 전송 우선 클라이언트에서 서버로 데이터를 전달하는 방식은 크게 2가지가 있다. - 쿼리 파라미터를 통한 데이터 전송 -> GET -> 주로 정렬 필터, 검색어 정보 담김 - 메시지 바디를 통한 데이터 전송 -> POST, PUT, PATCH -> 리소스 등록, 회원 가입, 리소스 변경 등등.. GET, POST, PUT, PATCH와 같은 HTTP 메서드에 대한 설명은 아래 게시글을 참고 바란다. (HTTP 메서드) 클라이언트에서 서버로 데이터를 전송하는 상황을 4가지로 나누어 볼 수 있다. 1) 정적 데.. 2023. 1. 12.
HTTP 메서드(GET, POST, PUT, PATCH, DELETE) 0. 개요 이번 게시물에서는 HTTP 메서드에 대해 작성할 것이다. 해당 게시물을 보기 전, 아래 링크의 글을 보고 오는 것을 추천한다. (HTTP란?) 1. HTTP 메서드는 왜 나왔을까? HTTP 메서드는 왜 나왔을까? 이를 확인해 보기 위해 간단한 회원 정보 관리 API를 한번 설계해보자. 우선 다음과 같은 기능들의 API URI 설계를 해보자. (URI란?). - 회원 목록 조회 /read-member-list - 회원 조회 /read-member-by-id - 회원 등록 /create-member - 회원 수정 /update-member - 회원 삭제 /delete-member 이것은 과연 좋은 URI 설계인가? 가독성이 좋기는 하지만, "어떤 개념과 관련된 내용"인지 인식하기 쉽지 않다. 가장.. 2023. 1. 12.
HTTP란?, HTTP 메시지 0. 개요 이 게시물에서는 HTTP에 대해 간단한 개념과 내용을 정리할 것이다. 사실 더 깊게 살펴봐야할 내용들이지만, 추후에 더 깊은 공부를 하여 작성할 예정이다. 1. HTTP란? HTTP는 HyperText Transfer Protocol의 약자로서, 인터넷에서 데이터를 주고 받을 수 있는 프로토콜을 말한다. 여기서 프로토콜은 규칙이라고 생각하면 된다. 즉, http 규칙을 지키므로서 모든 프로그램이 서로간에 정보를 교환할 수 있게 된다. HTML, TEXT, IMAGE, 음성, 영상, 파일, JSON, ... 등 거의 모든 형태의 데이터를 전송 가능하며, 서버간에 데이터를 주고 받을 때도 대부분 HTTP를 사용한다. 그만큼 중요한 개념이라고 할 수 있다. 2. 기반 프로토콜 HTTP/1.1, HT.. 2023. 1. 12.
URI, URL, URN란? 0. 개요 살면서 URL이라는 단어는 많이 들어봤을 것이다. 하지만 URI, URN?은 좀 생소한 단어이다. 이번 게시물에서는 URI, URL, URN에 대해서 적어보도록 하겠다. 사실 각각의 개념들은 하나하나 깊게 살펴봐야할 내용들이지만, 추후에 더 깊은 공부를 하여 작성할 예정이다. 1. URI URI는 Uniform Resource Identifier의 줄임말이다. 각 단어를 하나씩 살펴보자면, - Uniform: 리소스를 식별하는 통일된 방식 - Resource: 자원, URI로 식별할 수 있는 모든 것 - Identifier: 다른 항목과 구분하는데 필요한 정보 즉, URI는 리소스를 구분할 수 있는 식별자라고 할 수 있다. 이 URI를 통해 우리가 접근해야 하는 리소스가 어디있는지를 판별할 수.. 2023. 1. 11.
IP, TCP, UDP, 포트, DNS 정리 0. 개요 이 게시물에서는 제목에 적힌대로 웹 개발에 필수적인 지식들인 IP, TCP, UDP, 포트, DNS에 대해 간단한 개념과 내용을 정리할 것이다. 사실 각각의 개념들은 하나하나 깊게 살펴봐야할 내용들이지만, 추후에 더 깊은 공부를 하여 작성할 예정이다. 1. 프로토콜 계층 클라이언트에서 서버로 통신을 할때, 데이터를 바로 전달하지 않고 감싸서 보내게 된다. 데이터 생성 -> TCP 세그먼트 생성 -> IP 패킷 생성 -> 이더넷 프레임 생성 -> 전송 2. IP(Internet Protocol) IP란, 인터넷에 연결되어 있는 장비들(컴퓨터, 스마트폰 등등..)을 식별하기 위해 각각의 장비들에게 부여되는 주소를 뜻한다. 따라서 각 기기의 IP 주소를 이용하여 수많은 노드들로 이루어져 있는 인터넷.. 2023. 1. 11.
[Spring] 빈 스코프 (@Scope) 0. 개요 이번 게시물에서는 스프링 스코프에 대해 작성할 것이다. 해당 게시물을 보기 전, 아래 링크의 글을 보고 오는 것을 추천한다. (스프링 빈과 스프링 컨테이너) 1. 빈 스코프란? 모든 설명에 나오는 예시 프로젝트의 설계 방식은 아래 링크를 참고 https://imgzon.tistory.com/114 빈 스코프란 빈이 존재할 수 있는 범위를 뜻한다. 스프링은 다음과 같은 다양한 스코프를 지원한다. - 싱글톤: 기본 스코프(default), 스프링 컨테이너의 시작과 끝을 함께하는 가장 넓은 범위의 스코프이다. - 프로토타입: 프로토타입 빈의 생성과 의존관계 주입까지만 스프링 컨테이너가 관여하고, 그 이후로는 관리하지 않는 매우 짧은 범위의 스코프이다. - 웹 관련 스코프 - request: 웹 요청.. 2023. 1. 10.
[Spring] 스프링 빈 생명주기 0. 개요 이번 게시물에서는 스프링 빈의 생명주기에 대해 작성할 것이다. 해당 게시물을 보기 전, 아래 링크의 글을 보고 오는 것을 추천한다. (스프링 빈과 스프링 컨테이너) 1. 스프링 빈 생명 주기 모든 설명에 나오는 예시 프로젝트의 설계 방식은 아래 링크를 참고 https://imgzon.tistory.com/114 개발자가 스프링 빈을 사용하기 위해서는 스브링 빈 객체가 생성되고, 의존관계가 주입된 후이다. 따라서 스프링에서는 스프링 빈에게 콜백 메서드를 통해서 초기화 시점을 알려주는 다양한 기능을 제공한다. 따라서 스프링 빈의 라이프사이클을 정리해보면, 스프링 컨테이너 생성 -> 스프링 빈 생성 -> 의존관계 주입 -> 초기화 콜백 -> 사용 -> 소멸전 콜백 -> 스프링 종료 - 초기화 콜백:.. 2023. 1. 10.
[Spring] 스프링 빈 조회 0. 개요 이번 게시물에서는 스프링 빈을 조회하는 법에 대해 작성할 것이다. 해당 게시물을 보기 전, 아래 링크의 글을 보고 오는 것을 추천한다. (스프링 빈과 스프링 컨테이너) 1. 빈 등록 모든 설명에 나오는 예시 프로젝트의 설계 방식은 아래 링크를 참고 https://imgzon.tistory.com/114 이번 게시물에서 조회 할 빈은 아래 게시물에서 자바 코드로 등록한 빈들이다. (스프링 빈 자바 코드로 수동 등록) 2. 스프링 컨테이너에 등록된 모든 빈 조회 class ApplicationContextInfoTest { AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class); @.. 2023. 1. 10.