목록분류 전체보기 (73)
개발 공부 & 정리

비연결성 연결 유지 모델(TCP/IP) 서버와의 연결을 계속 유지한다. -> 자원 소모 연결 유지하지 않는 모델(Connectionless) 연결을 유지하지 않기 때문에 최소한의 자원을 사용한다. HTTP : 기본적으로 연결 유지하지 않는 모델이다. 다만, 초단위의 빠른 응답이 가능해서, 1시간 동안 수천 명이 서비스를 이용해도 실서버에서 동시에 처리하는 요청은 수십 개 이하로 매우 작다. => 서버 자원을 효율적으로 이용할 수 있다. 비연결성 단점 TCP/IP 연결을 새로 맺어야 하기 때문에 3 way handshake 시간들이 추가적으로 소모된다. Request시 HTML뿐만 아니라, JS,CSS,Image 등 수많은 자원을 다운로드하여야 한다. 극복 : HTTP 지속 연결(Persistent Con..

HTTP 거의 모든 형태의 데이터 전송 가능( HTML, TEXT, IMAGE, VIDEO, JSON ...) 서버 간의 데이터를 주고 받을때도 대부분 HTTP 사용 HTTP 1.1 - 가장 많이 사용 --개선 --> HTTP 2 (TCP 사용) ---TCP대신 UDP 사용 + 개선 --> HTTP3 특징 클라이언트 - 서버 구조 무상태 프로토콜(Stateless), 비연결성 HTTP 메세지 단순함, 확장 가능 클라이언트-서버 구조 클라-서버 구조 : 역할 분담 + 독립성 향상 ==> 각 역할에 맞게 양쪽이 독립적 발전 가능 무상태 프로토콜(Stateless) : 서버가 클라이언트의 상태를 보존 하지 않음 장점 : 서버 확장성 향상 (Scale-Out) 단점 : 클라이언트가 추가 데이터 전송 Statef..

URI (Uniform Resource Identifier) Uniform : 리소스를 식별하는 통일된 방식 Resource : 자원, URI로 식별 가능한 모든것 Identifier: 식별자 (식별 정보) URI : 리소스가 있는 위치 URN : 리소스에 이름 부여 (보편화 X) url : Scheme://[userInfo@] host:[port] / [path] [?query] [#fragment] foo:// example.com:8042/over/there?name=ferret#nose Scheme : 주로 프로토콜 사용 어떤방식으로 자원에 접근할 것인가에 대한 규칙 (ex http, https, ftp) Port 생략 가능 UserInfo : url에 사용자 정보 인증 (거의 사용 X) Host..

인터넷 네트워크 IP(Internet Protocol) 지정한 IP주소에 데이터 전달 패킷(Packet)라는 통신단위로 데이터 전달 지정한 IP주소에 패킷(통신단위)로 데이터 전달 한계 비 연결성 : 패킷 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송. 비 신뢰성 : 중간에 패킷을 Lost 할수 있고 패킷의 순서를 보장 못함. 프로그램 구분 : 같은 IP를 사용하는 서버에 통신을 하는 application이 둘 이상일 경우 문제 발생 TCP/UDP 인터넷 프로토콜 4계층 애플리케이션 계층 HTTP, FTP 전송 계층 TCP, UDP 인터넷 계층 IP 네트워크 인터페이스 계층 LAN TCP (Transmission Control Protocol) 특징 연결 지향 - TCP 3 way Handshake..
스프링과 스프링 부트의 차이점? 스프링 부트가 해주는 역할 auto configuration - 스프링 프레임워크의 경우 스프링을 사용하기 위한 다양한 모듈(Spring JPA, Spring Security, Spring MVC 등)을 원래 pom.xml 에 추가하고 설정해주어야 하지만 spring boot 사용 시 기본 설정 값을 제공해준다. Ex ) Spring JPA 사용시 (HIbernate Datasource, Entity Manager, Session Factory, Transaction Manager ) 등의 세팅을 할 필요 없다. spring boot starter -> 스프링을 사용하면 신경 써야 하는 버전 이슈들을 spring boot starter를 통해 실행할 시 버전의 호환성 문제..
시스템 성능 2가지 지표(metrics) 처리 시간 (Processing Time) or 응답 시간 (Response Time) : 특정 처리의 시작부터 종료까지 걸린 시간 처리율 (Throughput) : 특정 처리(트랜잭션)을 단위 시간에 몇 건 처리가 가능한가 ex 초당 50건 → 50 TPS(Transaction Per Second) 시스템의 자원 용량(Resource Capacity)를 결정하는 요인. 동시에 실행된 처리에 비례해 필요한 물리 자원 양 증가 동시 실행 처리 수가 증가 → 필요한 자원 양 증가 → 한가지 자원이라도 한계에 이르면 성능 저하 = 응답시간 상승 시작 & 처리율 하락 시작 ⇒ 최초로 한계에 이른 자원 = 버틀넥 포인트(Bottleneck Point 병목) 시스템은 동시 ..
트랜잭션의 ACID 중 D(durability)는 일련의 데이터 동작(트랜잭션 동작)을 완료(COMMIT)하고, 완료 통지를 사용자가 받은 시점에서 영속화 되어 결과를 잃어 버리지 않는 것.→ 시스템 장애를 견딜수 있다. DBMS에서 데이터를 보존하는 기억장치 → 대부분 HDD. '동기화 쓰기'를 지속성을 높이면 좋겠지만, DBMS에서 쓰기 작업은 기억장치의 임의 장소에 무작위로 액세스하여 쓰기때문에 동기화 쓰기를 하면 성능이 느리다 로그 선행 쓰기 (WAL Write Ahead Log) : 데이터베이스의 데이터 파일 변경을 직접 수행하지 않고, 로그로 변경 내용을 기술한 로그 레코드를 써서 동기화 하는 구조 (MySql → InnoDB로그) 디스크에 연속해서 쓰기 때문에 무작위로 쓰는 것..