CS

    [백준 - 2480] 3개의 주사위 게임

    1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다. - 같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다. - 같은 눈이 2개만 나오는 경우에는 1,000원+(같은 눈)×100원의 상금을 받게 된다. - 모두 다른 눈이 나오는 경우에는 (그 중 가장 큰 눈)×100원의 상금을 받게 된다. 예를 들어, 3개의 눈 3, 3, 6이 주어지면 상금은 1,000+3×100으로 계산되어 1,300원을 받게 된다. 또 3개의 눈이 2, 2, 2로 주어지면 10,000+2×1,000 으로 계산되어 12,000원을 받게 된다. 3개의 눈이 6, 2, 5로 주어지면 그중 가장 큰 값이 6이므로 6×100으로 계산되어 600원을 상금으로..

    [HTTP] HTTP Header에 대해서 알아보자(1)

    HTTP Header에는 HTTP 전송에 필요한 모든 부가 정보가 담겨있다. ex) 서버 정보, 캐시 정보, 메세지 바디의 크기 ... 최신인 RFC7230에서는 메세지 본문을 통해 표현 데이터를 제공하며, 이를 페이로드(payload)라고 한다. 표현은 요청이나 응답에서 실제로 사용할 수 있는 데이터를 뜻하며, 표현 헤더는 표현 데이터를 해석할 수 있는 정보인 데이터 유형, 압축 정보, 데이터 길이등을 제공한다. 표현 헤더 표현 헤더는 응답과 요청에 모두 사용되며, 아래의 4가지가 있다. Content-type : 표현 데이터 형식 Content-Encoding : 표현 데이터 압축 방식 Content-Language : 표현 데이터의 자연 언어 Content-Length : 표현 데이터의 길이 Con..

    [CS] 진법에 대해 알아보자(1)

    2진법과 10진법 우리는 일상생활에서 주로 10진법을 사용한다. 1946년에 개발된 컴퓨터 에니악은 사람에게 익숙한 10진법을 사용하도록 설계되었지만, 전기 회로는 전압이 불안정하여 전압을 10단계로 나누어 처리하는 데 한계가 있었다. 그래서 1950년에 개발된 에드박은 단 두가지 단계, 전기가 흐르면 1, 전기가 흐르지 않으면 0으로만 동작하도록 설계되었고 매우 성공적이었기에, 지금까지 대부분의 컴퓨터는 2진법을 사용한다. 우리는 변수에 값을 저장하면 10진수로 저장되는 것처럼 보았지만, 실제로 컴퓨터는 2진수 밖에 모르기에, 2진수로 바뀌어 저장하게 된다. 따라서 age에 22를 저장하면 실제로는 2진수인 11001로 저장이 되는 것이다. 2진수는 0과 1로만 데이터를 표현하기에 10진수보다 많은 자..

    [HTTP] HTTP 상태 코드

    HTTP 상태 코드 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능으로 크게 5가지로 구분된다. 1XX (Informational) : 요청이 수신되어 처리 중 2XX (Successful) : 요청 정상 처리 3XX (Redirection) : 요청을 완료하려면 추가 행동이 필요 4XX (Client ERROR) : 클라이언트 오류, 잘못된 문법등으로 서버가 기능을 수행 할 수 없다. 5XX (Server ERROR) : 서버 오류, 서버가 정상 요청을 처리하지 못 함. 2XX (Successful) 클라이언트의 요청을 성공적으로 처리 200 : 요청 성공 201 : 요청이 성공하여, 새로운 리소스가 생성됨 202 : 요청이 접수는 되었지만,처리가 되지 않았다. 204 : 서버가 요청을 성..

    [Http] HTTP에 대해서 알아보자.

    HTTP HyperText Transfer Protocol HTTP의 특징 클라이언트 서버 구조 무상태 프로토콜(Stateless), 비연결성 HTTP 메세지 단순함, 확장 가능 HTTP 버전 HTTP/1.1 : TCP -> 주로 해당 버전 사용 HTTP/2 : TCP HTTP/3 : UDP 1. 클라이언트와 서버 구조 클라이언트와 서버는 요청(Request)과 응답(Response)을 주고 받는다. 클라이언트는 요청을 보내고 응답을 대기하며, 서버는 요청에 대한 결과를 만들어서 응답한다. 2. 무상태 프로토콜(Stateless) 서버가 클라이언트의 상태를 보존하지 않기에, 서버 확장성이 높지만, 클라이언트가 지속적으로 추가 데이터를 전송해야한다. 3. 비연결성 HTTP는 연결을 유지하지 않는 모델로, ..

    [인터넷 통신] URI

    URI (Uniform Resource Identifier) Uniform : 리소스 식별하는 통일된 방식 Resource : 자원, URI로 식별 가능한 모든 것 Identifier : 다른 항모과 구분하는 데 필요한 정보 URI는 URL과 URN을 모두 포함하지만 주로 URN은 사용이 되지 않는다. URN (Uniform Resource Name) : 리소스에 이름을 부여한다. URL (Uniform Resource Locator) : 리소스가 있는 위치를 지정한다. 프로토콜(https) 호스트명(www.google.com) 포트 번호(443) 패스(/search) 쿼리 파라미터 예시 # 구조 scheme://[userinfo@]host[:port][/path][?query][#fragment] # ..

    [인터넷 통신] IP, TCP/UDP, PORT, DNS

    IP (Internet Protocol) -> 인터넷 프로토콜 지정한 IP 주소에 데이터 전달 패킷(Packet)이라는 통신 단위로 데이터 전달 패킷의 구성 : 출발 IP 주소, 도착 IP 주소, 데이터 IP의 한계 비연결성 : 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷이 전송 된다. 비신뢰성 : 중간에 패킷이 소실 되거나 순서대로 도착하지 않을 수 있다. 프로그램 구분 : 같은 IP 주소에서 사용하는 서버에서 통신하는 프로그램이 두 개 이상이라면 구분이 안 됨. TCP (Transmission Control Protocol) -> 전송 제어 프로토콜 연결 지향(TCP 3 way handshake) : 연결 후 데이터 전달 데이터 전달 보증 : 패킷이 누락 되었을 경우 확인 가능 순서 보장 :..

    [Git] 브랜치(branch)

    Git은 비선형 개발 작업 흐름을 가진 버전 관리 시스템이다. 이 말은 분기처리, Branch를 사용한다는 것이다. 브랜치란? 새로운 버전을 만드는 것이며, 메인 브랜치에 반영이 되지 않아서 안전하고 오류 없는 상태를 유지한다. 브랜치는 작업 중인 새 기능에 대한 브랜치를 생성하여, 자유롭게 실험해보고 원할하게 작동하면 메인 브랜치에 병합 하는 등으로 사용한다. 브랜치는 여러개 생성도 가능하고, 브랜치에 브랜치를 생성하는 것 또한 가능하다.

    [Git] 버전 관리

    버전 관리란? 파일의 추가 및 수정 이력등을 관리하는 것을 의미한다. 프로젝트들의 규모가 커짐에 따라 개개인의 파일 버전 관리의 필요성이 대두 되기 시작하였다. 파일명으로 관리를 하면 복잡해지기도 하고, 해당 파일을 언제 어떻게 수정 되었는 지에 대한 정보도 알 수 없다. 버전 관리에는 누가 어느 저장소에, 어느 파일을, 언제, 무엇을이라는 개념이 필요하다. 시간 흐름에 따라 파일 또는 폴더에 대한 변경 사항을 추적하고 관리를 할 수 있어야한다. 필요하면 이전 버전으로 되돌리고, 변경 사항의 자세한 확인이 가능해야하고, 소스 내용의 충돌에 대한 철리와 언제 어떤 파일이 삭제되고 추가 되었는 지에 대한 확인, 여러 사용자에 대한 처리 등 여러가지로 버전 관리가 되어야하는 데, 그것을 해주는 것 중 하나가 ..

    [Github] Github 사용하기

    해당 강좌는 Github 계정을 생성했다는 가정하에 진행 합니다. 01. Git 설치하기. 해당 사이트에 접속한 후 GIT을 설치한다. Git git-scm.com MAC 사용자의 경우 아래의 명령어를 사용하여 설치한다. //homebrew가 있을 경우 brew install git //homebrew가 없을 경우 sudo port install git 윈도우 사용자는 Git을 설치했을 때 Git BASH라는 새로운 터미널 프로그램이 설치가 되는 데 해당 터미널을 이용한다. 02. Github Repository 생성하기. Github에 접속 및 로그인 후 새로운 Repository(저장소)를 생성한다. GitHub: Where the world builds software GitHub is where ..