운영체제란? 컴퓨터 시스템을 작동하는 소프트웨어 컴퓨터란? 정보를 처리하는 기계 정보란? 불확실성을 측정해서 수치적으로 표현한 것 정보의 최소 단위: bit(binary digit) 정보의 처리: 정보의 상태 변환(0에서 1로, 1에서 0으로) 부울 대수(Boolean Algebra): NOT, AND, OR 논리 게이트: NOT, AND, OR, XOR, NAND, NOR 논리 회로: IC, LSI, VLSI, ULSI, SoC, ... 무어의 법칙, 황의 법칙 정보의 저장과 전송: 플립-플롭, 데이터 버스 컴퓨터가 정보를 처리하는 방법 덧셈: 반가산기, 전가산기 뺄셈: 2의 보수 표현법 곱셈, 나눗셈: 덧셈과 뺄셈의 반복 실수 연산: 부동 소수점 표현법 함수: GOTO(if 등) 삼각합수, 미분, 적..
필드 내용 크기(bits) Source Port 출발지 포트번호 표시. 대부분의 경우 처음 세그먼트를 전송하는 측에서 임의의 번호를 사용한다. 응용 서비스에 따라 포트번호가 정해져 있는 것도 있다. 16 Destination Port 목적지의 포트번호를 표시. 응용 서비스에 따라 포트번호가 정해져 있다. (예: DNS 53) 16 Length 헤더와 데이터를 포함한 세그먼트 전체 길이를 바이트 단위로 표시. 16 Checksum 헤더와 데이터의 에러를 확인하기 위한 필드. 에러 복구를 위한 필드가 불필요해 TCP 헤더에 비해 간단함. 16 참조: https://m.blog.naver.com/PostView.nhn?blogId=minki0127&logNo=220804490550
웹사이트들이 같은 포트를 쓰는 이유 : 서버 주소가 일정해야 클라이언트가 찾아가기 편하기 때문 OSI 7계층에서는 기본적으로 하위 계층이 상위 계층에 서비스를 제공한다. 응용계층에서 데이터 유실 안되게 서비스 제공: 전송계층(TCP) HTTP: HyperText Transfer Protocol Persistent HTTP VS Non-persistent HTTP TCP연결 유지 여부에 따라 달라짐 Non-persistent HTTP는 한번 요청에 하나의 응답만 수행한 후 TCP 연결을 끊어버림. -> stateless
프로토콜이란? 얘기하는 방식(약속) 서킷 스위칭과 패킷 스위칭의 차이 서킷 스위칭 하나의 회선(서킷)을 할당받아 데이터를 주고받는 방식 패킷 스위칭 데이터를 패킷(Packet)이라는 단위로 분할하여 전송하는 방식 패킷 전송 방식의 딜레이 종류 데이터를 읽는 과정 패킷 내의 정보를 읽는 시간때문에 걸리는 딜레이 큐 딜레이 라우터 안의 큐에 패킷들이 대기하는 것 자기 차례가 올 때까지 기다리는 딜레이 사람들의 사용 패턴에 의한 것이기 때문에 자체적인 해결법은 없다. 대부분의 패킷 유실은 큐의 용량 문제로 생긴다. 전송 딜레이 큐에서 마지막 패킷이 빠져나갈 때까지 걸리는 시간 통로의 너비에 비례 Propagation delay(번식 딜레이?) 라우터의 큐에서 출발한 패킷이 다음 라우터에 도달하는 시간 거리에 비례
메모리 영역 OS 상주 영역 낮은 주소 영역 사용 사용자 프로세스 영역 높은 주소 영역 사용 할당 방법 연속 할당 불연속 할당 연속 할당 고정분할 방식 물리적 메모리를 몇 개의 영구적 분할(파티션)으로 나눠놓음 분할의 크기가 모두 동일한 방식이 있고 서로 다른 방식이 있다 분할 당 하나의 프로그램 적재 융통성이 없음 동시에 메모리에 로드되는 프로그램의 수가 고정됨 최대 수행 가능 프로그램 크기 제한 내부 조각(내부 단편화), 외부 조각(외부 단편화) 발생 내부 조각은 분할 크기보다 프로그램 크기가 작을 경우 낭비되는 메모리 외부 조각은 분할 크기보다 프로그램 크기가 커 해당 분할을 건너뛰어 낭비되는 메모리 가변분할 방식 프로그램 크기를 고려해서 순서대로 할당 분할의 크기, 개수가 동적으로 변한다 기술적인..
웹 서버(Web Server)와 웹 애플리케이션 서버(Web Application Server, WAS) 웹 서버 HTTP 기반 동작 정적 리소스(HTML, CSS, JS, 이미지, 영상) 제공 예) NGINX, APACHE 웹 어플리케이션 서버 HTTP 기반 동작 웹 서버 기능 포함(정적 리소스 제공) 프로그램 코드 실행해 애플리케이션 로직 수행 동적 HTML, HTTP API(JSON) 서블릿, JSP, 스프링 MVC 예) 톰캣(Tomcat), Jetty, Undertow 웹 서버와 웹 애플리케이션 서버의 차이 웹 서버는 정적 리소스(파일), WAS는 애플리케이션 로직 웹 서버도 프로그램 실행 기능 포함하기도 함 WAS도 웹 서버의 기능 제공 자바는 서블릿 컨테이너 기능 제공 = WAS WAS는 애플..
클라이언트에서 서버로의 데이터 전송 데이터 전달 방식 1. 쿼리 파라미터 GET 정렬 필터(검색어) 2. 메시지 바디 POST, PUT, PATCH 회원 가입, 상품 주문, 리소스 등록, 리소스 변경 상황 별 데이터 전송 1. 정적 데이터 조회 이미지, 정적 텍스트 문서 조회는 GET 사용 쿼리 파라미터 없이 리소스 경로로 단순 조회 /static/image.png 2. 동적 데이터 조회 검색, 게시판 목록에서 정렬 필터(검색어) 조회는 GET 사용 GET은 쿼리 파라미터를 사용해 데이터를 전달함 /search?keyword=world&lg=ko 3. HTML Form을 통한 데이터 전송 회원 가입, 상품 주문, 데이터 변경 submit 시 POST 전송 Content-Type: application/x..
진짜 구성을 완벽하게 했다고 생각했는데 갑자기 사라지지 않는 에러가 생겼다. Cannot set error status - response is already committed 이 에러다. 아직도 공부할 것들이 한참 많은 것 같다. 본론부터 말하자면 저 에러는 Entity에서 나오는 문제이다. Spring Data JPA를 사용했을 때 등장한 문제이다. 순환 참조라는 원인인데 예를 들어 Review 엔티티가 있고 Photo 엔티티가 있다고 치자. Review의 PK를 Photo가 FK로 가지고 있는 상태이다. 무엇이 문제인지 알겠는가? Response를 하게 되면 JSON 형태로 매핑하기 위해 모든 엔티티를 불러오는데 이 때 Photo는 Review를 참조하고 Review는 Photo를 참조한다. 그렇게..