분류 전체보기

· Backend/HTTP
1. HTTP API 만들기 API URI(Uniform Resource Identifier)를 설계 시에 중요한 것은 리소스의 식별입니다. 예를 들어, 회원을 등록, 수정, 조회, 삭제하는 기능을 설계한다고 가정해보겠습니다. 회원 목록 조회 /read-member-list 회원 조회 /read-member-by-id 회원 등록 /create-member 회원 수정 /update-member 회원 삭제 /delete-member 여기서 회원을 등록하고 수정하고 조회하는 동작은 리소스가 아닙니다. 여기서의 리소스는 회원이라는 개념입니다. 더 쉽게 예를 들자면 미네랄을 캐라는 명령에서 캐는 행위가 리소스인 것이 아니라 미네랄이 리소스입니다. 그래서 위 예시처럼 URI를 설계한다면 리소스가 명확히 드러나지 않..
· Backend/HTTP
1. HTTP (HyperText Transfer Protocol) HTTP 메시지를 통해 다양한 종류의 데이터를 전송할 수 있습니다. HTML, 텍스트, 이미지, 음성, 영상, 파일, JSON, XML 등 모든 형태의 데이터를 전송할 수 있습니다. 서버 간에 데이터를 주고받을 때에도 대부분 HTTP를 사용합니다. HTTP는 HTTP/0.9부터 시작하여 HTTP/1.0, HTTP/1.1, HTTP/2, HTTP/3까지 이어집니다. HTTP/0.9 버전에는 GET 메서드만 지원하고 HTTP 헤더X가 없었습니다. 1997년에 등장한 HTTP/1.1은 가장 널리 사용되는 버전으로, 지금 HTTP의 대부분의 기능이 포함되어 있습니다. 이후에 등장한 HTTP/2와 HTTP/3는 성능 개선을 위해 개발되었고, 특히..
· Backend/HTTP
URI(Uniform Resourse Identify) URI 란 리소스를 식별하는 방법을 말합니다. 인터넷 상의 어떤 자원이나 정보를 고유하게 식별하는 방법을 제공하는 것입니다.  URI를 단어 그대로 파헤쳐보자면,Uniform : 리소스를 식별하는 통일된 방식Resource : 자원, URI로 식별할 수 있는 모든 것Identifier : 다른 항목과 구분하는데 필요한 정보즉 리소스를 식별하는 통일된 방식으로 볼 수 있습니다.  그런데 URI 외에도, URL과 URN이라는 단어도 많이 들어보셨을 겁니다. URI과의 차이가 무엇일까요?  (1) URL과 URN  결론부터 말하자면, URI 안에 URL과 URN이 포함되는 개념입니다. URI는 Resource Identifier로 리소스를 식별합니다. 자..
· Backend/HTTP
IP(인터넷 프로토콜) 복잡한 인터넷 망에서 멀리 있는 대상에게 정보를 전송해야하는 경우, IP 주소를 통해 이를 가능하게 합니다. IP 주소는 통신 네트워크 상에서 각 장치를 식별하는 주소로, 어떤 데이터를 지정한 IP 주소에 전송합니다. 이때, 데이터는 패킷이라는 작은 통신 단위로 분할되어 전송됩니다. (1) IP 패킷 정보 패킷은 패키지 + 버킷으로 택배를 보내는 상자 정도로 생각할 수 있습니다. 패킷에는 출발지 IP 주소와 목적지 IP 주소를 가지고 있습니다. 전송하면 네트워크 상의 노드를 통해 전달됩니다. 전송 과정에서 각 노드는 패킷을 받아 목적지 주소를 확인하고, 다음에 어디로 전송해야할지를 결정합니다. 이 과정은 라우팅이라고 하는데, 패킷은 이런 라우팅을 통해 최종적인 목적지에 도달합니다..
정렬 알고리즘을 배우며 병합 정렬, 퀵 정렬 등 다양한 종류의 알고리즘에 대해 배웠습니다. 그렇다면 자바에서 자주 사용하는 Arrays.sort() 는 어떤 알고리즘으로 구현되어있는지 궁금해졌습니다.  구글링과 자바 내부코드를 보면, Arrays.sort는 듀얼 피봇 퀵소트를 사용한다라고 나와있습니다.  Arrays.sort 메서드 내부를 들여다보면서, 듀얼 피봇 퀵소트란 무엇인지 그리고 범위에 따라 어떤 정렬 방식을 적용하는지를 알 수 있었습니다.  Arrays.sort() 내부 들여다보기int[] arr = {1, 3, 4, 2, 1 ,7};Arrays.sort(arr)---result: {1, 1, 2, 3, 4 ,7} 보통 자바에서 배열을 정렬할 때,  java.util.Arrays 클래스의 so..
지난 포스팅에서 자바 제너릭의 도입 배경과 기능을 살펴보았습니다. 이번 포스팅에서는 제너릭의 중요한 특징인 PECS에 대해 살펴보겠습니다.  PECS PECS(Producer Extends Consumer Super)란, Producer(데이터 생산: 조회) Component에서는 extends 를 사용하고 Consumer (데이터 소비: 저장, 수정 등) Component 에서는 super를 사용한다는 의미입니다.  불공변이란? 이것을 보다 자세히 이해하기 위해서는 제너릭의 불공변이라는 특징을 알아야만 합니다. 불공변이란, 서로 다른 제너릭 타입 간에는 상하위 관계가 없다는 것입니다. public class Vehicle {}//Car 클래스public class Car extends Vehicle {..
동구름이
'분류 전체보기' 카테고리의 글 목록 (26 Page)