전체 글
-
[네트워크] HTTPCS/네트워크 2021. 4. 5. 01:03
HTTP 규격? 클라이언트 서버 구조 Request - Response 구조 클라이언트 서버 각각 독립적으로 발전 할 수 있음 무상태 프로토콜 (Stateless) 서버가 클라이언트의 상태를 보존 X 서버 확장성 ↑ (스케일 아웃 - 수평 확장 유리) 비연결성 (Connectionless) HTTP는 기본이 연결을 유지하지 않는 모델 서버 자원을 효율적으로 사용 가능 HTTP 메세지 HTML부터 이미지, 영상까지 모든 데이터를 주고 받을 수 있음 단순하고 확장 가능 HTTP Request 구조 start line ex) GET /search HTTP/1.1 HTTP Method Request Target HTTP Version headers body HTTP Response 구조 status line e..
-
SOLID 원칙 (객체지향 5대원칙)CS/프로그래밍 공통 2021. 4. 5. 00:59
1. SRP, Single Reponsibility Principle (단일 책임 원칙) 소프트웨어의 설계 부품(클래스, 함수 등)은 단 하나의 책임(기능)만을 가져야 한다. 프로그램 변경에 영향을 받는 부분이 적어야 함 -> 응집도는 높고, 결합도는 낮은 프로그램 2. OCP, Open-Close Principle (개방-패쇄 원칙) 기존의 코드를 변경하지 않고(Close) 기능을 수정하거나 추가할 수 있도록(Open) 설계해야 한다. public class SoundPlayer { public void play() { System.out.println("play was"); } } public class Client { public static void main(String[] args) { Soun..
-
다형성 (Polymorphism)CS/개발 언어 (JAVA) 2021. 4. 5. 00:28
정의 하나의 객체가 여러 가지 타입을 가질 수 있는 것을 의미 하나의 메소드나 클래스가 있을 때 이것들이 다양한 방법으로 동작하는 것을 의미 예시 public class A { public void x() { System.out.println("A.x"); } } public class B extends A { public void y() { System.out.println("B.y"); } } public class PolymorphismDemo { public static void main(String[] args) { A obj = new B(); obj.x(); // B에 x()가 없기 때문에 A.x가 출력 obj.y(); // A에 y()가 없기 때문에 에러 } } public class A ..
-
[JPA] JPA 소개강의노트/JPA - 기본편 2021. 3. 31. 10:25
SQL 중심적인 개발의 문제점 지금 시대는 객체를 관계형 DB에 관리 객체를 관계형 데이터베이스에 저장 객체를 자바 컬렉션에 저장 하듯이 DB에 저장할 수는 없을까? JPA의 탄생 배경 SQL 중심적인 개발의 문제점 무한 반복, 지루한 코드 (CRUD) SQL 의존적인 개발을 피하기 어렵다 패러다임의 불일치 객체 vs 관계형 데이터베이스 객체와 관계형 데이터베이스의 차이 상속 연관관계 참조 vs FK를 이용한 조인 객체는 한 방향으로 관계를 맺음 vs 테이블은 양방향으로 관계를 맺음 데이터 타입 데이터 식별 방법 객체 그래프 탐색 객체는 자유롭게 객체 그래프를 탐색할 수 있어야 한다. '.'을 찍어서 연관된 객체를 탐색하는 것을 객체 그래프 탐색이라 한다. 객체 그래프 탐색은 처음 실행하는 SQL에 따라..
-
[HTTP] HTTP 기본강의노트/HTTP 2021. 3. 30. 09:43
HTTP (HyperText Transfer Protocol) HTTP 메시지에 모든 것을 전송 HTML, TEXT IMAGE, 음성, 영상, 파일 JSON, XML (API) 거의 모든 형태의 데이터 전송 가능 서버간에 데이터를 주고 받을 때도 대부분 HTTP 사용 지금은 HTTP 시대! HTTP 역사 HTTP/0.9 1991년 : GET 메서드만 지원, HTTP 헤더X HTTP/1.0 1996년 : 메서드, 헤더 추가 HTTP/1.1 1997 : 가장 많이 사용, 우리에게 가장 중요한 버번 RFC2068 (1997) -> RFC2616 (1999) -> RFC7230~7235 (2014) HTTP/2.0 2015 : 성능 개선 HTTP/3 진행중 : TCP 대신 UDP 사용, 성능 개선 기반 프로토콜..
-
[HTTP] URI와 웹 브라우저 요청 흐름강의노트/HTTP 2021. 3. 29. 17:02
URI (Uniform Resource Idendifier) URI 사람을 주민등록번호로 식별 할 수 있듯이 리소스를 식별 할 수 있는 식별자 (URL과 URN을 모두 포함하는 개념) Uniform : 리소스를 식별하는 통일된 방식 Resource : 자원, URI로 식별 할 수 있는 모든 것 (제한 없음) Identifier : 다른 항목과 구분하는데 필요한 정보 URL (Uniform Resource Locator) Locator : 리소스가 있는 위치를 지정 URN (Uniform Resource Name) Name : 리소스에 이름을 부여 URL 전체 문법 scheme://[userinfo@]host[:port][/path][?query][#fragment] ex) https://www.googl..
-
[HTTP] 인터넷 네트워크강의노트/HTTP 2021. 3. 29. 16:33
IP (인터넷 프로토콜) 복잡한 인터넷 망에서 수많은 노드들을 거쳐서 어떻게 클라이언트에서 서버로 메세지가 전달될 수 있을까? 최소한의 규칙이 필요 : IP 주소 인터넷 프로토콜 역할 지정한 IP 주소(IP Address)에 데이터 전달 패킷(Packet)이라는 통신 단위로 데이터 전달 IP 패킷 정보 출발지 IP 목적지 IP 기타 전송 데이터 IP 프로토콜의 한계 비연결성 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송 대상 서버가 패킷을 받을 수 있는 상태인지 모름 ex) 우편 전송 비신뢰성 중간에 패킷이 사라지면? 노드(서버)를 거쳐서 전달되기 때문에 패킷이 손실될 가능성이 있음 패킷이 순서대로 안오면? 패킷의 사이즈가 크면 대략 1500Byte씩 끊어서 전송 프로그램 구분 같은 IP를 ..
-
[JAVA] OAuth2자바/기타 2021. 3. 24. 23:11
구성 요소 Resource Owner 보호 자원에 대한 액세스 권한을 부여할 수 있는 엔티티. Resource Owner가 사람이면, 이를 최종 사용자라 합니다. Resource Server 보호 자원을 호스팅하고, 보호 자원에 대한 요청을 액세스 토큰을 사용해서 수락하고 응답하는 서버입니다. 이 경우 API gateway는 보호 된 리소스 앞에 있는 리소스 서버를 구현하는 게이트웨이 역할을 합니다. Client Application Resource Owner를 대신하여 부여된 권한을 가지고 보호 된 요청을 만드는 클라이언트 어플리케이션입니다. Authorization Server 리소스 소유자를 인증하고 권한을 얻은 후 Authorization Server는 클라이언트 어플리케이션에 액세스 토큰을 발급..