전체 글

전체 글

    쿠키와 세션

    쿠키와 세션 HTTP 프로토콜의 특징 비연결 지향(Connectionless) 클라이언트가 request를 서버에 보내고, 서버가 클라이언트에 요청에 맞는 response를 보내면 바로 연결을 끊는다. 상태정보 유지 안 함(Stateless) 연결을 끊는 순간 클라이언트와 서버의 통신은 끝나며 상태 정보를 유지하지 않는다. 쿠키와 세션의 필요성 HTTP 프로토콜은 위와 같은 특징으로 모든 요청 간 의존관계가 없다. 즉, 현재 접속한 사용자가 이전에 접속했던 사용자와 같은 사용자인지 아닌지 알 수 있는 방법이 없다. 계속해서 연결을 유지하지 않기 때문에 리소스 낭비가 줄어드는 것이 큰 장점이지만, 통신할 때마다 새로 연결하기 때문에 클라이언트는 매 요청마다 인증을 해야 한다는 단점이 있다. 이전 요청과 현..

    웹 통신의 큰 흐름

    📍웹 통신의 큰 흐름 브라우저가 URL에 적힌 값을 파싱해서 HTTP request Message를 만들고, OS가 TCP 프로토콜을 사용하여 인터넷을 거쳐 해당 IP 주소의 웹 서버로 전송하도록 한다. 이 때, DNS 서버에서 해당 도메인 네임에 해당하는 IP 주소를 찾는 DNS Lookup을 수행합니다. DNS 룩업 과정은 크롬의 경우 브라우저-> hosts파일-> DNS Cache의 순서로 도메인에 매칭되는 ip를 찾습니다. 이 요청은 프로토콜 스택에 의해 패킷에 담기고 패킷에 제어정보를 덧붙여 LAN 어댑터에 전송합니다. 그리고 LAN어댑터는 이를 전기 신호로 변환시켜 송출합니다. 패킷은 스위칭 허브 등을 경유하여 인터넷 접속용 라우터에서 ISP로 전달되고 인터넷으로 이동합니다. 액세스 회선에 의..

    동기와 비동기

    📍동기와 비동기 1. Sync VS Async 먼저 Synchronous와 Asynchronous의 어원을 보자. Synchronous의 Syn는 together이란 뜻이고, chrono는 time이다. 따라서 Synchronous는 함께 시간을 맞춘다라는 뜻으로 해석된다. 반면에 Asynchronous는 앞에 A라는 접두사가 붙어 부정하는 형태가 되어 시간을 맞추지 않는 것이라 해석할 수 있다. Sync와 Async를 다루려면 위 어원에서 볼 수 있듯이 함께 하는 대상이 누구인지, 그 대상들의 시간은 어떻게 다루어지는지 두 가지를 살펴봐야한다. 1.1. Synchronous (동기) : 작업의 순서가 보장된다. 동기는 두 가지 이상의 대상(함수, 애플리케이션 등)이 서로 시간을 맞춰 행동하는 것이다. ..

    챕터 6. 연습 문제

    연습문제 6-1. 다음과 같은 멤버변수를 갖는 Student클래스를 정의하시오. 연습문제 6_1 문제 연습문제 6_1 정답 6-2. 다음과 같은 실행결과를 얻도록 Student클래스에 생성자와 info()를 작성하시오. 연습문제 6_2 정답 6-3. 연습문제 6-1에서 정의한 Student클래스에 다음과 같이 정의된 두 개의 메서드 getTotal( )과 getAverage( )를 작성하시오. (1) getTotal( ) - 메서드 명 : getTotal - 기능 : 국어(kor), 영어(eng), 수학(math)의 점수를 모두 더해서 반환 ③ 반환타입 : int ④ 매개변수 : 없음 (2) getAverage( ) - 메서드 명 : getAverage - 기능 : 국어(kor), 영어(eng), 수학(..

    챕터 6. 객체지향 프로그래밍(OOP) 1

    1. 객체지향언어 1.1. 객체지향언어의 기본 개념 실제 세계는 사물(객체)로 이루어져 있으며, 발생하는 모든 사건들은 사물간의 상호작용이다. 1.2 객체지향언어 객체지향언어는 기존의 프로그래밍언어와 다른 완전히 새로운 것이 아니라, 기존의 프로그래밍 언어에 몇 가지 새로운 규칙을 추가한 보다 발전된 형태의 것이다. 규칙들을 이용해서 코드 간에 서로 관계를 맺어줌으로써 보다 유기적으로 프로그램을 구성하는 것이 가능해졌다. 객체지향언어의 주요 특징 1. 코드의 재사용성이 높다. - 새로운 코드를 작성할 때 기존의 코드를 이용하여 쉽게 작성할 수 있다. 2. 코드의 관리가 용이하다. - 코드간의 관계를 이용해서 적은 노력으로 쉽게 코드를 변경할 수 있다. 3. 신뢰성이 높은 프로그래밍을 가능하게 한다. - ..

    트랜잭션

    DB 트랜잭션(Transaction) 트랜잭션이란? 데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 완전성 을 보장해주는 작업 단위 즉, 논리적인 작업 셋을 모두 완벽하게 처리하거나 또는 처리하지 못할 경우에는 원 상태로 복구해서 작업의 일부만 적용되는 현상이 발생하지 않게 만들어주는 기능 트랜잭션을 통해 사용자의 입장에서는 작업을 논리적 단위로 이해를 할 수 있고 시스템의 입장에서는 그것이 데이터들을 접근 또는 변경하는 프로그램의 단위가 된다. 상태를 변화시킨다는 것 → SQL 질의어를 통해 DB에 접근하는 것 ``` SELECT INSERT DELETE UPDATE 작업 단위 → 많은 SQL 명령문들을 사람이 정하는 기준에 따라 정하는 것 예시) 사용자 A가 사용자 B에게 만원을 송금한다. 이때..