REST API란? REST란, 클라이언트와 서버가 통신하는 방법 중 하나로 HTTP URI로 자원을 명시하고 HTTP METHOD로 그 자원의 행위를 적용하는 것을 의미한다. 예를들어 게시글을 작성하는 기능의 API를 설계한다고 하면, api/posts/write 처럼 URI에 자원의 행위까지 명시하는 것이 아니라 api/posts 라고 하고 HTTP METHOD를 POST로 하여 구분하는 것이다. 이러한 REST 아키텍처 스타일을 따르는 API 설계방식을 REST API라고 하고 REST 아키텍처를 구현하는 웹 서비스를 RESTful 웹서비스라고 한다. 오버로딩과 오버라이딩 자바에서 다형성을 지원하는 방법으로, 오버로딩(Overloading)은 같은 이름의 메서드를 여러개 가지면서 각각 매개변수의 유..
TCP/IP 데이터를 작게 잘라서 전송하는 방식을 패킷이라고 하는데, IP와 TCP는 이러한 패킷 통신을 위한 규약이다. IP는 패킷 데이터들을 최대한 빨리 목적지로 전송하는 것이 목적이기 때문에 패킷이 제대로 전달되었는지나 패킷이 순서대로 전달 되었는지를 보장하지 않는다. TCP는 3 way handshaking을 통해 데이터 전달을 보장하고 데이터 조각을 순서대로 정렬해서 빠진 조각들은 재요청한다. TCP/IP는 두 가지 프로토콜 방식을 조합해서 IP를 이용해 데이터를 빠르게 전송하고 TCP가 데이터의 신뢰성을 보장하는 방식이다. Docker와 VM 차이 VM과 Docker는 둘 다 기본 하드웨어에서 격리된 환경으로 어플리케이션을 구동한다. VM은 하이퍼바이저 기술을 통해서 Host OS 위에 여러 ..
HTTP와 HTTPS의 차이점 HTTP는 웹에서 데이터를 주고받기 위한 통신 규약으로 서버가 클라이언트의 상태를 보존하지 않는 무상태성과 연결을 유지하지 않는 비연결성의 특징을 갖는다. 기존 HTTP가 전송계층의 TCP에서 동작한다면, HTTPS는 SSL이라는 보안소켓계층 위에서 보안이 보장된 통신을 하는 프로토콜이며 검색엔진 최적화(SEO)에서도 HTTPS가 유리하다. 인터넷 주소창에 www.naver.com 을 치면 일어나는 일 www.naver.com은 도메인 네임이기 때문에 DNS에 도메인을 검색하기 위한 요청을 보낸다. DNS는 도메인에 대응하는 IP주소를 찾아서 응답한다. 받은 IP주소로 TCP통신을 통해 IP서버에 요청을 보낸다. 요청 받은 서버는 응답 메시지를 TCP 통신에게 보내고 브라우..
WS와 WAS 웹서버(WS)는 apache나 nginx처럼 클라이언트와 직접 통신하는 서버로, 클라이언트의 요청을 받아서 정적인 데이터를 처리하고 동적인 데이터 처리가 필요하면 WAS에게 처리를 요청하고 처리 결과를 클라이언트에게 응답한다. 웹애플리케이션서버(WAS)는 tomcat처럼 DB에 접근하거나 어떤 로직을 수행해야 하는 동적인 처리가 필요할 때 웹서버의 요청을 받아서 처리한다. WAS 또한 WS처럼 정적 리소스를 제공할 수 있지만 굳이 둘을 나누는 이유는, WAS가 정적 리소스까지 모두 처리하게 된다면 중요 애플리케이션 로직이 정적 리소스 처리 때문에 방해를 받을 수도 있고 웹서버가 로드밸런싱 역할을 해서 서버 부하를 줄여줄 수도 있으며 또한 DB정보나 주요 로직들이 WAS에 있기 때문에 WS를..
싱글톤 패턴(singleton pattern) 객체의 인스턴스가 오로지 한 개만 생성되도록 설계하는 패턴으로 private을 이용해 외부에서 인스턴스를 생성하지 못하도록 막고, static을 이용해 어느 영역에서든 접근이 가능하도록 설계한다. 객체가 생성된 이후에는 호출이 되었을 때 최초로 생성된 인스턴스를 사용하기 때문에 메모리 낭비를 막을 수 있다. 싱글톤 패턴은 구현 코드가 많고 내부속성 변경이 어려운 등 유연성이 떨어지며 OCP(개방폐쇄원칙, 기존의 코드를 변경하지 않으면서 기능을 추가할 수 있어야 한다)와 DIP(의존역전원칙)을 위반하기 쉬운데 이러한 단점을 해결해주는 것이 스프링 컨테이너이다. 스프링 컨테이너는 싱글톤 패턴을 적용하지 않아도 객체 인스턴스를 싱글톤으로 관리하는데 이 때 객체 인..
- Total
- Today
- Yesterday
- 자바트리
- DP
- 스프링부트
- 형변환
- CS
- 알고리즘
- Algorithm
- Comparator
- 자바스크립트
- 이분탐색
- 스프링
- Spring
- 자바
- Nest
- 정렬
- dfs
- java
- 자바dp
- SQLD
- 프로그래머스
- 타입스크립트
- Queue
- 자바bfs
- 리액트
- 해시맵
- BFS
- JavaScript
- JPA
- SQL
- 백준
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |