boostcamp 13

Day18 학습정리

HTTP Request와 Response TCP/IP 네트워크 정리했던거 기반으로 정리한 내용이다. 소켓 IP 주소, 포트 번호, 통신 동작이 어떤 진행상태인지 등을 기록한 메모리 영역이다. 프로토콜 스택이 소켓에 기록된 제어 정보를 참조해, 다음에 무엇을 할지 판단할 수 있도록 한다. 데이터 송수신 동작 소켓을 만든다. 서버 측의 소켓에 파이프를 연결한다. 데이터를 송수신한다. 파이프를 분리하고, 소켓을 말소한다. 웹 브라우저, 메일 서버 등의 프로그램이다. 애플리케이션에서 보낸 의뢰를 받아 데이터 송수신을 담당한다. - TCP, UDP를 사용해 데이터를 송수신한다. - IP : 패킷 송수신 동작을 제어한다. LAN 어댑터의 하드웨어를 제어한다. 실제 송수신 동작 즉, 케이블에 대해 신호를 송수신하는 ..

boostcamp 2023.08.02

Day16 학습 정리

파일 시스템 (2010년도 글이라 주의) 저장매체가 개발되었을 때는 데이터를 저장할 수 있다는 것 자체가 큰 이슈였다. 따라서 파일 시스템이라는 개념이 존재하지 않았다. 그런데, 저장할 데이터가 많아지면서, 파일이라는 개념을 사용해 데이터를 구분해 저장하기 시작했다. 이 때도 다순히 순차적으로 데이터를 기록한 후, 데이터의 시작위치와 크기만 알고 있다면, 해당 파일을 다룰 수 있을 것이다. 하지만, 단순히 백업용이 아닌, 데이터는 수시로 지워졌다 재기록된다. 또한 저장매체 용량이 커지면서 개인이 관리하는 파일 수가 수만에서 수십만개를 초과한다. 수많은 파일에서 자신이 필요한 파일을 순식간에 접근해 읽어야 하고, 또는 기록해야 한다. 파일 시스템 데이터를 효과적으로 관리하기 위해 사전에 정의한 기록 방식이..

boostcamp 2023.07.31

Day13 학습정리

소문으로만 듣던 그것이 나왔다. VCS(Version Control System) 버전관리 시스템 코딩을 하다보면 마주하는 여러 문제가 있다. 기능을 추가하다 문제가 발생해 원래 버전으로 돌아가고 싶은데, 수정사항이 너무 많을 때 여러명이 동시에 작업할때 발생하는 오류나 충돌 등의 문제들이 생기는데, 이런 문제를 해결하기 위한 것이 VCS다. 즉, 소프트웨어 개발 및 유지보수 과정에서 발생하는 소스코드, 문서 등의 생성, 변경, 삭제 이력 등을 관리하는 것이다. 내가 원하는 버전으로 이동할 수 있다. 버전관리 시스템 종류 자세한건 git만 다루겠다. 이거만 쓰기도 하고.. 당장 필요한 내용이라 Local VCS (로컬 버전 관리 시스템) CVCS (Centralized VCS, 중앙 집중식 버전 관리 시..

boostcamp 2023.07.26

Day11 학습 정리

동기적 (Synchronous) 직렬적 요청을 보낸 후, 응답을 받아야 다음 동작이 이루어지는 방식이다. 나머지 동작은 대기한다. 비동기적 (Asynchronous) 병렬적 요청을 보낸 후 응답 여부에 상관 없이, 다음 동작을 하는 방식이다. 콜백 함수 : 비동기 요청시 응답 후 처리할 콜백함수가 처리된다. 비동기 처리 문법 setTimeout setTimeout(function[, delay, arg1, arg2, ...]); 첫 번째 파라미터에 넣은 함수를, 두 번째 파라미터에 넣은 시간이 흐른 후 호출해준다. setTimeout을 사용하면, 우리가 정한 작업이 백그라운드에서 수행되기 때문에 기존의 코드 흐름을 막지 않고, 동시에 다른 작업들을 진행할 수 있다. function : 타이머가 완료된 뒤..

boostcamp 2023.07.24

Day09 학습 정리

피어세션 삼항연산자 : a ?? b ?? 와 || 비교해보 운영체제 스터디에서 정리했던 것 프로세스 관리 스레드와 병행성 CPU 스케줄링 스레드 프로세스 : OS로부터 자원을 할당 받는 작업의 단위 스레드 프로세스가 할당받은 자원을 이용하는 실행의 단위 프로세스 내에서 실제로 작업을 수행하는 주체를 의미한다. 모든 프로세스는 한 개 이상의 스레드가 존재해 작업을 수행한다. 두 개 이상의 스레드를 가지는 프로세스를 멀티 스레드 프로세스라고 한다. 특징 스레드는 같은 프로세스에 속한 다른 스레드와 코드, 데이터 섹션, 열린 파일이나 신호와 같은 OS 자원을 공유한다. 프로세스가 다수의 제어 스레드를 가지면, 동시에 하나 이상의 작업을 수행할 수 있다. PCB (Process Control Block) 프로세..

boostcamp 2023.07.20

Day08 학습 정리

window 시스템의 파일 경로 형식 참고자료 : 명명규칙 참고자료 : 공식문서 기존 Docs 경로 볼륨 || 드라이브 문자 다음에 볼륨 구분 기호 (:) 디렉터리 이름 선택적 파일 이름 위의 세 구성 요소가 모두 존재하면 절대 경로다. 볼륨, 드라이브 문자 || 디렉터리 구분 문자로 시작하는 경우는 현재 드라이브 루트에 대한 상대 경로다. 파일 || 폴더 경로 구분자 : \ ex path) c:\Documents\dir1\dir2\hello.txt 경로 표준화 단계 파일을 식별합니다. 현재 디렉터리를 부분적으로 정규화된 (상대) 경로에 적용합니다. 구성 요소 및 디렉터리 구분 기호를 정규화합니다. 상대 디렉터리 구성 요소(현재 디렉터리의 경우 '. 및 부모 디렉터리의 경우 '..')를 평가합니다. 특정..

boostcamp 2023.07.19

Day07 학습정리

JS는 진짜 너무 자유로워서 불안하지만, 그만큼 편하게 처리할 수 있는 것이 많아서 좋다. 함수형 프로그래밍 함수형 프로그래밍 원칙 입출력이 순수해야한다. 부작용이 없어야 한다. 함수와 데이터를 중점으로 생각행야 한다. 순수함수란? 받은 인자'만' 사용해서, 결과물을 내는 함수다. 부작용 프로그래머가 바꾸고자 하는 변수 외에는 바뀌어서는 안 된다는 뜻이다. 원본 데이터는 불변해야 한다는 것이다. ex) const arr = [1, 2, 3, 4, 5]; const map = arr.map(function(x) { return x * 5; }): // return : [5, 10, 15, 20, 25] map 함수는 마지막에 설명한다. arr를 사용했지만, 값은 변하지 않았고, map이라는 결과를 내고 다..

boostcamp 2023.07.18

Day06 학습 정리

클래스 프로그래밍상 정의되어 있는 데이터와 메소드의 집합으로, 객체를 생성하기 위한 설계도다. 인스턴스 클래스로부터 생성된 객체를 해당 클래스의 인스턴스라고 한다. 위의 반환받은 값을 저장한 것을 인스턴스라고 한다. 객체 물리적으로 존재하는 개념으로, 다른것과 식별이 가능한 것이다. 클래스, 인스턴스를 합해서 객체라고 한다. 다형성 정리해둔게 있는데 예제랑 잘 되어있다. 다형성 상속 객체가 다른 객체를 상속받아, 상속받은 객체의 요소를 사용하는 것이다. 이 때, 상속된 객체를 부모, 상속 받은 객체를 자식이라고 한다. 부모 객체가 추상 객체일 경우, 추상 메소드와 오버라이딩을 통해 부모 객체의 메소드를 구현하거나 다룰 수 있다. super JS에서 자식 클래스가 부모 클래스의 생성자와 메소드를 사용할 때..

boostcamp 2023.07.18

Day04 학습 정리

참고자료 : 전에 정리해둔 내용 참고 프로그램 : 명령어 리스트를 내용으로 가진, 디스트에 저장된 파일이다. 프로세스 : 프로그램이 메모리에 적재될 때 프로그램은 프로세스가 된다. 프로세스 메모리 구조 프로세스 메모리 배치 크기 동적 Heap : 프로그램 실행 중 동적으로 할당되는 메모리 - c언어의 malloc과 같이 사용자에 의해 관리되는 영역 - Java, C++의 클래스, new() 연산자, 참조 변수 - 대개 낮은 주소에서 높은 주소로 할당된다. Stack : 함수를 호출할 때 임시 데이터 저장소 - 함수 매개변수, 복귀 주소, 지역 변수 등이 해당한다. 크기 정적 Text : 실행 코드가 저장된다. - 코드영역 즉, 명령문, 제어문, 함수, 상수 등이 저장된다. Data : 전역 변수, 정적 ..

boostcamp 2023.07.13

Day03 학습정리

컴파일러 참고자료 학교에서 강의를 들은 적 있어 정리해뒀던 자료를 참고했다. 그래도 다시 복습 해보자. Tokenizer Token은 의미있는 단위다. 주로 identifiers, reserved words, integers, doubles, floats, delimiters, operators, special symbols 로 이루어진다. 참고자료 : 강의에서 정리해둔 예시들이다. Lexer Tokenizer에 의해 만들어진 Token에 의미를 분석하는 역할을 한다. 예를 들어 4 : "number" 이런식으루 참고자료 : 강의 때 정리해둔 예시 Parser Token을 입력받아 Tree를 만든다. 구조적으로 나타내며, 데이터가 올바른지 검증하는 역할을 수행한다. Parser에 의해 도출된 결과는 AS..

boostcamp 2023.07.12