장르: 애초에 역경을 딛고 이룩하는 숭고한 사랑이란 없다. 그 역경 자체가 사랑이다.
프로그램 특징: 그 곳에서 살아남는 사랑이 어떤 모습으로 걸어오는지 기다려 보고 싶다.
-
HTTP Protocol 기초0319분*Node.js 프로그래밍 입문(고경희)를 읽고 작성한 글입니다. 클라이언트는 서버로 자료를 요청하고, 서버는 클라이언트로 자료를 전송하는 방식으로 웹이 동작한다. HTTP requestHTTP response 근데 서로 사용하는 프로그래밍 언어도 다르고 동작 방식도 다르기 때문에 통일된 규칙, HTTP protocol을 사용해 자료를 주고 받는다. 1. HTTP request클라이언트가 서버로 무엇인가 요청할 때는 웹 브라우저에 URL을 입력해서 요청한다. 2. IP address & Port우리는 문자로 입력하지만 사실 인터넷에서 서버에 접속하기 위해선 IP주소: 포트번호(211.47.28.14:443)가 필요하다. 수많은 클라우드 컴퓨터와 서버 컴퓨터에게 각각 고유한 주소가 있기엔 숫자가 부족하..
-
[데이터베이스] WITH구문 : CTE0308분서브쿼리를 배웠다면 with 구문도 알아야 한다. 둘의 기능은 비슷하나 가독성은 with가 높다. 재사용이 가능하기 때무니다. CTE (Common Table Expression, CTE) : WITHCTE는 쿼리의 시작 부분에 정의되며, 정의된 쿼리는 메인 쿼리에서 여러 번 재사용할 수 있다.코드 공유시 가독성이 높다.복잡한 sql 쿼리의 구조 대신 with를 이용해 단순화한다.WITH {CTE 이름} AS -- 이렇게 시작한다. ❌AS 뒤에 별칭(Alias) 만드는 것이 아니다❌ 별칭은 join 문에서 만들었다. WITH LatestOrders AS ( SELECT customerNumber, MAX(orderDate) AS MaxOrderDate FROM orders GROUP B..
-
[데이터베이스] 서브쿼리0308분쿼리(select ~) 안에 또 쿼리(select from ~ ) 형식을 가지는 것을 서브쿼리라 한다. 즉, JOIN처럼 값을 가져오기 위함인데 가상의 테이블을 만든다고 생각하면 된다. ‼️ 모든 서브쿼리는 괄호() 안에 포함되어야 한다. select, from, where 절에서 사용 가능 Scalar subquery : 단일값Select, where, havingTable subquery : 테이블이 반환 From절에서 사용되는데 별칭 필수 => INLINE VIEWCorrelated subquery : 메인 쿼리의 각 행을 참조하여 수행Where에서 사용 Scalar subquerySELECT productName,buyPriceFROM productsWHERE buyPrice > (SELECT A..
-
[데이터베이스] window 함수0308분window 함수select 구문에서 사용sum(col1) over(partition by col2 order by col3) as new_colpartition by : group by랑 비슷하지만, 집계 결과가 아닌 본래 table 그대로 출력partition by는 생략 가능: 순서대로 누적합order by를 생략하면 누적 합계의 순서(1 + 3 -> 4 (+ 3) -> 7 식으로 나타나지 않고 바로 7이 뜸.cumtomer number 끼리의 amount를 더할건데, pay_date 오름차순으로 더해가는 것 -> 같은 custom_num의 total_amount누적합 개념 group by는 customer number를 하나로 모아서 집계 출력하지만, partition by는 table 모든 행을..
-
[cpp] 복사 생성자1113분복사생성자 copy constructor생략 시 컴파일러가 자동 생성해주지만 클래스 내부에서 메모리 동적 할당 및 해제하고 이를 멤버 포인터로 관리하는 경우 직접 선언해야 한다.이를 이해하기 위해선 Pass by value의 선행 이해가 필요하다.다른 함수의 매개변수로 사용되는 경우 Call by value 로 전달된다. 호출 함수 스택에 따로 메모리를 할당해 객체의 복사된 값을 전달되는 형태인데 이를 복사 생성자라고 생각하면 된다.Myclass(const Myclass &rhs)// :m_data(rhs.m_data) { this -> m_data = rhs.m_data; cout a 를 복사의 원본으로 rhs가 a를 참조하는 형태 원본을 복사하는 형태기 때문에 멤버 m_data 두 ..
-
운영체제의 작동1101분운영체제는 시스템 자원의 효율적인 관리와 안전한 접근이다.컴퓨터의 전원을 켜거나 재부팅할 때와 같이 컴퓨터를 실행하려면 초기 프로그램을 실행해야 한다.부트스트랩(초기프로그램)펌웨어에 저장된 단순한 형태의 부트스트랩은 CPU 레지스터, 장치 컨트롤러, 메모리 내용 등 시스템의 모든 측면을 초기화한다.부트스트랩은 OS 커널을 찾아 메모리에 적재하는 방법과 해당 시스템 실행 시작 방법을 알아야 한다.커널이 RAM에 로드되면 시스템과 사용자에게 서비스를 제공할 수 있다. OS는 이벤트가 없는 경우 조용히 앉아 기다리게 되는데 이벤트는 거의 항상 인터럽트를 발생시켜 신호를 보낸다.인터럽트인터럽트는 하드웨어 인터럽트와 trap이 있다. 트랩은 예외 상황(유효하지 않은 메모리 액세스)에 대한 오류이거나 소프트웨어 생..
-
관계 데이터 모델 기본 개념과 제약 조건1023분DBMS 기본 아키텍처: ANSI/SPARC외부: 사용자 : 자신만의 뷰를 가지고 디비 이용--[ 외부/ 개념 mapping ] sql 질의어를 관계대수로 전환하는 등 질의 수준 변환논리적인 데이터 독립성: 개념 스키마 변경에도 사용자는 영향 받지 않음--개념: 사용자 공동체가 보는 개념 스키마 - 어떤 데이터가 어떤 관계, 우떤 무결성 제약 조건을 가지는 지 정의 (EMP(ENO: INT, PROJ: STR ~) ...)- 데이터 베이스 당 한 개의 개념 스키마만 존재함--[개념/ 내부 mapping] 질의를 디스크 디비 접근하기 위해 변환물리적인 데이터 독립성: 내부 변화에도 개념 스키마의 변화는 없도록--내부: 물리적으로 데이터를 어떻게 저장할 지 - 보통 성능향상을 위하면 내부 스키마 변경이 바..
-
[관계 대수] 관계 연산자1023분관계 대수 relational algebra원하는 데이터를 어떠한 연산과 연산 순서로 가져오라고 명시하는 절차적인 언어. SQL의 이론적인 기초가 되는 언어다.관계 DBMS는 SQL 질의를 DBMS 내부에서 관계대수식으로 변환한 후 최적의 질의 수행 계획을 찾는다.우리는 DB에 SQL로 어떤 데이터를 달라고 명령하게 된다. 이 명령을 DBMS는 관계대수식으로 변환해서 연산을 수행하니 관계대수식을 알면 데이터 처리 방법에 대해 이해할 수 있다.관계 데이터 모델에서 지원하는 두 가지 정형적인 언어정형적인이 무슨 뜻 일까?관계 해석 relational calculus원하는 데이터만 명시관계 대수 relational algebra필수 관계 연산자Selection σselection의 조건을 predicate(술..
-
[SQL] SELECT, INSERT, DELETE, UPDATE1023분SQL과 관계대수가 뭐가 다른가?SQL은 IBM 연구소에서 관계 DBMS(System R) 연구할 때 관계대수를 기반으로 집단 함수, 그룹화, 갱신 연산을 추가해서 개발한 언어사용자가 관계 DBMS에 원하는 데이터(what) 명령 -> 관계 DBMS에서 효율적으로 처리(how)하여 반환SQL은 비절차적, 관계대수는 절차적SQL은 원하는 것만 질의에 명시하고, 관계대수식은 소괄호 ()를 이용해 관계 연산자의 수행 순서를 명시한다.SQL은 3개 종류의 연산으로 명시할 수 있다.DDL: SCHEMA(구조나 제약조건 등)을 생성하거나 변경, 제거한다. CREATE (DOMAIN, TABLE... ), ALTER TABLE, DROP DOMAIN, TABLE, VIEW ...DML: 튜플의 검색(SELECT), ..
*Node.js 프로그래밍 입문(고경희)를 읽고 작성한 글입니다.
클라이언트는 서버로 자료를 요청하고, 서버는 클라이언트로 자료를 전송하는 방식으로 웹이 동작한다.
- HTTP request
- HTTP response
근데 서로 사용하는 프로그래밍 언어도 다르고 동작 방식도 다르기 때문에 통일된 규칙, HTTP protocol을 사용해 자료를 주고 받는다.
1. HTTP request
클라이언트가 서버로 무엇인가 요청할 때는 웹 브라우저에 URL을 입력해서 요청한다.
2. IP address & Port
우리는 문자로 입력하지만 사실 인터넷에서 서버에 접속하기 위해선 IP주소: 포트번호(211.47.28.14:443)가 필요하다.
수많은 클라우드 컴퓨터와 서버 컴퓨터에게 각각 고유한 주소가 있기엔 숫자가 부족하다. 그래서 google, naver처럼 영문 이름를 사용하면 서버에서 자동으로 IP(Internet Protocol)주소를 할당해준다. Port 번호는 서버 프로그램 중 어느 프로그램을 실행할 지 알려준다.
- Domain과 DNS(Domain Name System Server)
- 라우팅 프로토콜과 vlan은 트래픽 관리 개념
서버 프로그램은 파일 업로드/다운 프로그램, 웹 내용 관리 프로그램, 메일 전송/수신 프로그램 등 다양한 프로그램의 묶음으로 동작하는데, HTTP 프로토콜에서 웹은 80을 사용한다. 근데 구글 웹은 HTTP 가 자동으로 HTTPS 로 바뀌므로 443을 포트로 쓴다.
번호 | 기능 |
20, 21 | FTP(FILE Transfer) |
25 | SMTP(Simple Mail) |
53 | DNS |
80 | Web(HTTP) |
110 | POP3(Post Office) 이메일 수신 |
443 | HTTPS |
자 이제 원하는 주소로 접속을 했으니 서버가 어떻게 이걸 불러왔는지 확인해보자.
3. Headers
클라이언트가 서버에 요청하는 Request는 헤더와 본문으로 구성되어있다.
- Request Headers에는 사용하는 시스템 정보, 웹 브라우저 정보, 사용한 언어 등이 담겨 있다.
- Request 본문에는 사이트 주소가 있다.
서버가 클라이언트에 응답하는 응답 메시지는 Response Headers, Response 본문으로 구성된다.
- 헤더에는 현재 파일이 어떤 형식을 사용하는지, 인코딩은 무엇인지 등 파일과 관련된 기타 정보가 담겨있다.
- 본문에 브라우저 창에 띄울 텍스트나 이미지같은 사이트 내용이 들어있다.
3-1. Method
아까 서버에는 여러 프로그램이 있다고 했다. 클라이언트가 서버로 정보를 보내면서 서버 정보를 가져올 건지, 브라우저 화면에 입력한 정보를 서버에 전송하는 것인지 등 어떻게 데이터를 처리할 건지 방식을 미리 알려준다. 이것을 Method라고 한다.
Request Method | |
GET | 서버 정보를 가져올 때 사용한다. URL의 문서를 응답으로 반환하여 URL이 바뀐다. |
POST | 서버에 데이터를 저장할 때 사용한다. 회원가입, 로그인 등 사용자가 입력한 정보가 POST를 통해 서버로 넘어간다. |
PUT | 서버에 있는 데이터를 수정(업데이트)할 때 사용한다. 이미 저장되어 있는 정보의 일부를 수정할 때 서버로 전송된다. |
DELETE | 서버에서 데이터를 삭제할 때 사용한다. |
3-2. Status Code
CODE | Message | Description | |
1xx | Informational | 계속 처리 중 | |
2xx | Successful | 요청 성공 | |
200 | OK | ||
201 | Created | 요청이 성공적으로 처리되어 새로운 자료가 생성되었습니다. | |
204 | No Content | 요청이 성공적으로 처리되었지만 응답으로 반환할 자료가 없습니다. | |
3xx | Redirection | 다른 위치로 이동 | |
301 | Moved Permanently | ||
4xx | Client Error | ||
400 | Bad Request | 클라이어언트 요청이 잘못되었거나 유효하지 않습니다. | |
401 | Unauthorized | 권한이 없어 거절되었지만 인증을 다시 시도할 수 있습니다. | |
403 | Forbidden | 권한이 없어 거절되었고 인증을 시도하면 계속 거절됩니다. | |
404 | Not Found | 해당 데이터를 찾을 수 없습니다. | |
5xx | Server Error | ||
500 | Internal Server Error | 서버에 요청을 처리하는 동안 오류가 발생했습니다. | |
503 | Service Unavailable |
200을 반환하면 서버가 요청을 성공했다는 것을 말한다.
'Computer Science > Network' 카테고리의 다른 글
TCP/IP 와 UDP (1) | 2025.05.14 |
---|