본문 바로가기

개발지/Today I learn

(52)
[1010] CS 지식 - 웹 (HTTP Messages) #HTTP 메시지 - HTTP ▪ HTTP(HyperText Transfer Protocol)는 HTML과 같은 문서를 전송하기 위한 애플리케이션 계층 프로토콜이다. ▪ 웹 브라우저와 웹 서버의 소통을 위해 사용된다. ▪ 클라이언트 - 서버 모델에서 클라이언트가 HTTP를 양식에 맞춰 보내면 서버도 양식에 맞춰 응답한다. ▪ HTTP는 무상태성의 특징이 있다. (HTTP로 통신을 주고받는 과정에서 클라이언트, 서버의 상태를 확인하지 않음) ▪ HTTP 메시지를 통해 클라이언트와 서버 사이에 데이터가 요청과 응답의 형식으로 교환된다. - HTTP 교환 방식 : 요청과 응답 요청(Requests) ▪ 클라이언트가 서버에 보내는 메시지. Start line, Headers, Body 로 구성되어 있다. ▪ S..
[0926] CS 지식 - 웹(CORS) #CORS - CORS ▪ CORS(Cross-Origin Resource Shariing)은 서로 다른 출처를 가진 자원을 한 웹 애플리케이션에서공유하는 것이다. ▪ CORS는 웹애플리케이션에서 리소스가 자신의 출처와 다를 때 추가 HTTP 요청을 통해 실행됩니다. ▪ 한 화면에 포함되어 있는 리소스의 출처가 다를 때, 브라우저는 해당 서버에 Prefilght Request을 보낸다. 이후 서버에서 허가된다면 요청된 리소스를 받아와서 브라우저에서 로딩되는 것이다. ▪ Prefilght Request는 요청의 종류에 따라 필요 여부가 달라진다. 강의를 듣고 정리한 것으로 오류가 있을 수 있습니다. 추후 학습해 나가면서 틀린 점을 알게 된다면 수정해 나가겠습니다.
[0925] CS 지식 - 웹(SSR / CRS) #SSR과 CRS - SSR이란? ▪ SSR(Server Side Rendering)은 자바스크립트가 서버에서 랜더링 하는 것을 말한다. ▪ 클라이언트는 브라우저에서 이미 서버에서 렌더링된 화면을 보게 된다. ▪ 웹 페이지에서 새로운 데이터가 필요한 경우, 서버는 요청된 데이터를 포함한 페이지를 랜더링한 뒤에 브라우저로 응답. ▪ 웹 페이지의 다른 경로로 이동시, 서버는 랜더링 작업 다시 수행. - CSR이란? ▪ CSR(Client Side Rendering)은 자바스크립트가 브라우저에서 랜더링 하는 것을 말한다. ▪ 클라이언트는 서버에서 렌더링 될 파일을 받아 브라우저에서 랜더링한다. ▪ 웹 페이지에서 새로운 데이터가 필요한 경우, 필요한 데이터를 서버에 API요청하여 받아와 브라우저에서 랜더링. ▪..
[0922] CS 지식 - 네트워크 (웹) #WEB웹 - 웹의 구성 ▪ 웹은 인터넷에서 제공되는 하이퍼텍스트 시스템이다. (하이퍼텍스트: 문서 안에 타 문서의 위치 정보 등이 포함, 문서 간의 정보가 연결되어 있어 서로 참조할 수 있는 문서) (예전 워드, 파워포인트 등에서 파란색으로 표시되는 텍스트도 하이퍼텍스트의 예시) ▪ 웹은 하이퍼텍스트 형식인 HTML과 인터넷이 융합되어 있다. ▪ HTML이란 운영체제와 애플리케이션에 상관없이 하이퍼텍스트에 담긴 정보가 일정하게 출력될 수 있도록 만든 기준. - 클라이언트 / 서버 아키텍쳐 ▪ 클라이언트는 웹에서 서비스를 사용한다. ▪ 서버는 웹에서 서비스를 제공한다. ▪ 클라이언트 - 서버 아키텍처는 위와 같이 웹에서 클라이언트와 서버가 서비스를 주고받는 구조(2 티어 아키텍처)이다. ▪ 클라이언트 -..
[0919] CS 지식 - 네트워크 (네트워크 기술3) #PORT - 포트번호 ▪ 포트번호는 TCP와 UDP에서 모두 사용된다. ▪ 포트번호는 접속 기기에서 특정 애플리케이션을 특정할 때 사용되는 번호이다. ▪ 포트번호를 통해 클라이언트가 어느 서버로 보내는 요청인지 구분할 수 있다. ▪ 포트번호는 0 ~ 65535번을 사용할 수 있는데, 특정 번호는 통신 규약에 따라 용도가 정해져 있다. ▪ 자주 사용되는 포트 번호는 다음과 같다. 포트 이름 포트 범위 용도 Well-known port 0 ~ 1023 시스템 사용 번호 (슈퍼유저 권한 필요) 사용 권장 X Registered port 1024 ~ 49151 특정 프로토콜이나 어플리케이션에서 사용하는 번호 (슈퍼유저 권한 필요 X) Dynamic port 49152 ~ 65535 어플리케이션에서 사용 혹은 ..
[0918] CS 지식 - 네트워크 (네트워크 기술2) # IP - IP 주소 구조 ▪ IPv4 주소는 OOO.OOO.OOO.OOO 의 형식으로 되어 있다. ▪ 마침표로 구분된 4개의 8비트 필드로 되어 있으며, 각 필드는 1바이트를 나타낸다. ▪ 위 주소는 네트워크부와 호스트부로 나뉜다. 네트워크부는 네트워크에 대한 정보를 호스트부는 네트워크 안 특정 컴퓨터를 지칭하는 정보이다. ▪ 서브넷 마스크(Subnet Mask)는 IPv4 주소에서 네트워크가 어디까지인지 나타내준다. ▪ 옥텟은 8자리 2진수 묶음이다. IPv4 주소는 4개의 옥텟으로 이루어져 있으며, 각 1~4옥텟의 이름을 가진다. IP 주소 : 192.168.1.1 서브넷 마스크 : 255.255.255.0 네트워크 주소 : 192.168.1.0 브로드캐스트 주소 : 192.168.1.255 ▪ ..
[0914] CS 지식 - 네트워크 (네트워크 기술) # TCP / IP - LAN & WAN ▪ 연결된 네트워크. ▪ LAN(Local Area Network)은 좁은 의미의 네트워크를 의미한다. ▪ WAN(Wide Area Network)는 LAN이 모여 구성한다. ▪ LAN이 WAN으로 확장되기 위해서는 LAN들의 거점이 연결되는 통신회선이 필요하다. - 인터네트워킹 (internetworking) ▪ 네트워크와 네트워크가 연결되어 확장되는 것을 의미한다. ▪ 인터네트워킹을 통해 네트워크 일부의 고장의 영향을 줄이고, 불필요한 통신의 확산을 제한하며, 개별 네트워크의 관리가 용이해진다는 장점이 있다. ▪ 인터넷은 세계가 인터네트워킹된 것이다. - 프로토콜 (protocol) ▪ 인터넷에 연결된 컴퓨터가 네트워크를 사용할 때 사용하는 언어. ▪ TCP ..
[0913] 자바 가상머신 (JVM) #JVM(Java Virtual Machine) - JVM란? ▪ JVM은 자바로 작성한 소스 코드를 해석해 실행하는 별도의 프로그램이다. ▪ JVM은 프로그램 실행에 필요한 컴퓨터 자원을 할당받기 위하여 운영체제와 소통한다. ▪ JVM은 각 운영체제에 맞는 버전이 따로 존재한다. ▪ 각 운영체제에 따라 자바 소스 코드를 변환해 실행시키기 때문에 자바는 운영체제와 독립적으로 실행될 수 있다. - JVM 구조 ▪ 자바 코드 실행 시 컴파일러가 자바 소스 코드를 바이트 코드 파일로 변환시킨다. ▪ JVM은 운영 체제로부터 실행에 필요한 메모리를 할당받는다. (런타임 데이터 영역) ▪ 클래스 로더가 바이트 코드 파일을 JVM 내부로 불러들여 메모리 영역으로 로드시킨다. ▪ 로드된 바이트 코드를 실행 엔진이 인..
[0908] 자바 스레드 (스레드 제어) #스레드 제어 - 스레드 동기화 ▪ 멀티 스레드 프로세스의 경우, 두 스레드가 같은 데이터를 공유하게 될 때 문제가 발생할 수 있다. ▪ 스레드 동기화를 통해 두 스레드가 충돌하는 상황을 피할 수 있다. - 임계 영역(Critical section)과 락(Lock) ▪ 임계 영역은 하나의 스레드만 코드를 실행할 수 있는 코드 영역이다. ▪ 락은 임계 영역을 포함하고 있는 객체에 접근할 수 있는 권한을 의미한다. ▪ synchronized 키워드를 통해 특정 코드 구간을 임계 영역으로 설정한다. (1) 메서드 전체를 임계 영역으로 지정 -> 메서드 반환 타입 좌측에 synchronized 키워드를 작성하여 메서드 전체를 임계 영역으로 설정한다. -> 임계 영역으로 지정된 메서드를 실행하는 스레드는 메서드가..
[0905] 자바 스레드 (스레드의 생성/실행, 스레드의 이름) #스레드 - 프로세스와 스레드 ▪ 프로세스 : 실행 중인 애플리케이션. 실행에 필요한 만큼의 메모리를 할당받음. ▪ 프로세스의 구성 : 데이터, 컴퓨터 자원, 스레드로 구성됨 ▪ 스레드 : 스레드는 데이터와 애플리케이션이 확보한 자원을 활용하여 소스 코드를 실행함. 즉 코드 실행 흐름과 같음 - 메인 스레드 ▪ 메인 스레드는 자바 실행 시 가장 먼저 실행되는 main 메서드를 실행시킨다. ▪ main 메서드의 코드의 끝을 만나거나 return문을 만나면 실행을 종료한다. ▪ 소스 코드가 싱글 스레드라면 프로세스는 실행 중 하나의 스레드만 작동시키는 싱글 스레드 프로세스가 된다. - 멀티 스레드 ▪ 멀티 스레드 프로세스란 여러 개의 스레드를 가진 프로세스를 말한다. ▪ 여러 스레드가 동시에 작업을 수행하고..