본문 바로가기

분류 전체보기

(209)
24.01.23 프로세스 1 1. 프로세스 - 컴퓨터에서 실행되고 있는 프로그램을 말하며 CPU 스케쥴링의 대상이 되는 작업 이라는 용어와 거의 같은 의미로 쓰임 - 아래 그림처럼 프로그램이 메모리에 올라가면 프로세스가 되는 인스턴스화가 일어나고, 이후 운영체제의 CPU 스케줄러에 따라 CPU 가 프로세스를 실행 1) 프로세스와 컴파일 과정 - 프로세스는 프로그램이 메모리에 올라가 인스턴스화된 것을 말함 - 예) 프로그램은 구글 크롬 프로그램(chrome.exe)과 같은 실행 파일이며, 이를 두번 클릭하면 구글 크롬 프로세스로 변환되는 것 - 컴파일 과정은 아래와 같다 (1) 전처리 - 소스 코드의 주석을 제거하고 #include 등 헤더 파일을 병합하여 매크로를 치환 (2) 컴파일러 - 오류처리, 코드 최적화 작업을 하며 어셈블리..
24.01.22 비선형 자료 구조 2 1. 비선형 자료 구조 - 일렬로 나열하지 않고 자료 순서나 관계가 복잡한 구조 - 일반적으로 트리나 그래프를 말함 1) 힙 - 완전 이진 트리 기반의 자료구조 - 최소힙과 최대힙 두가지가 있고 해당 힙에 따라 특징을 지킨 트리 * 최대힙 : 루트 노드에 있는 키는 모든 자식에 있는 키중에서 가장 커야한다 각 노드의 자식 노드와의 관계도 이와 같은 특징이 재귀적으로 이뤄져야 함 * 최소힙 : 최소힙에서 루트노드에 있는 키는 모든 자식에 있는 키 중 최소값이어야 함 각 노드의 자식 노드와의 관계도 이와 같은 특징이 재귀적으로 이루어져야 함 - 힙에는 어떤 값이 들어와도 특정 힙의 규칙을 지키게 만들어짐 (1) 최대힙의 삽입 - 힙에 새로운 요소가 들어오면, 일단 새로운 노드를 힙의 마지막 노드에 이어서 삽..
24.01.15 ~ 24.01.21 한주의 회고 월요일에는 HTTPS 에 대해 CS 공부를 했다. 화요일에는 HTTPS 와 HTTP / 3 에 대해 CS 공부를 했다 수요일과 목요일에는 선형자료구조에 대해 CS 공부를 했다 금요일에는 비선형자료구조에 대해 CS 공부를 했다 항해99를 마치고 두달여 아직 취업의 문은 두껍기만하다 슬슬 꺽이고있다.. 다음주에 유의미한 결과가 없다면 다음달엔 어떻게 해야할지 고민중이다
24.01.19 비선형 자료 구조 1 1. 비선형 자료 구조 - 일렬로 나열하지 않고 자료 순서나 관계가 복잡한 구조 - 일반적으로 트리나 그래프를 말함 1) 그래프 - 정점과 간선으로 이루어진 자료구조 (1) 정점과 간선 - 어떠한 곳에서 어떠한 곳으로 무언가를 통해 간다고 했을 때 어떠한 곳은 정점(vertex)이 되고 무언가는 간선(edge)이 됨 - 짝사랑은 단반향 간선이고 서로 좋아하는 것은 양방향 간선과 같다 - 예) 아래 그림처럼 집으로 간다고 했을 때 나와 아파트는 하나의 정점이고 거기로 가는 길은 간선이 됨 - 정점으로 나가는 간선을 해당 정점의 outdegree 라고 하며, 들어오는 간선을 해당 정점의 indegree 라고 한다 - 위의 그림의 정점 V 는 outdegree 는 세개, indegree 는 두개인 상태 - 정..
24.01.18 선형 자료 구조 2 1. 선형 자료 구조 - 요소가 일렬로 나열되어 있는 자료 구조를 말한다 1) 벡터 - 동적으로 요소를 할당할 수 있는 동적 배열 - 컴파일 시점에 개수를 모른다면 사용해야함 - 중복을 허용하고 순서가 있고 랜덤 접근이 가능하다 - 탐색과 맨 뒤의 요소를 삭제하거나 삽입하는데 O(1) 이 걸리며, 맨 뒤나 맨 앞이 아닌 요소를 삭제하고 삽입하는데 O(n) 의 시간이 걸린다 - 뒤에서 삽입하는 push_back() 의 경우 O(1) 시간이 걸리는데 벡터의 크기가 증가되는 시간 복잡도가 amorized 복잡도, 즉 상수시간 복잡도 O(1) 과 유사한 시간 복잡도를 가지기 때문 - 위의 그림처럼 push_back() 을 한다고 해서 매번 크기가 증가하는 것이 아니라 2의 제곱승 + 1 마다 크기를 2배로 늘린..
24.01.17 선형 자료 구조 1 1. 선형 자료 구조 - 요소가 일렬로 나열되어 있는 자료 구조를 말한다 1) 연결 리스트 - 데이터를 감싼 노드를 포인터로 연결해서 공간적인 효율성을 극대화 시킨 자료구조 - 삽입과 삭제가 O(1) 이 걸리며 탐색에는 O(n) 이 걸린다 - 아래 그림처럼 prev 포인터와 next 포인터로 앞과 뒤의 노드를 연결시킨 것이 연결리스트 - 맨 앞에 있는 노드를 헤드(head) 라고한다 * 싱글 연결 리스트 : next 포인터만 가짐 * 이중 연결 리스트 : next 포인터와 prev 포인터를 가짐 * 원형 이중 연결 리스트 : 이중 연결리스트와 같지만 마지막 노드의 next 포인터가 헤드 노드를 가리키는 것 2) 배열 - 같은 타입의 변수들로 이루어져있고, 크기가 정해져있으며, 인접한 메모리 위치에 있는 ..
24.01.16 HTTPS 2 와 HTTP / 3 1. SEO 에도 도움이 되는 HTTPS - SEO (Search Engine Optimization) 는 검색엔진 최적화를 뜻하며 사용자들이 구글, 네이버 같은 검색엔진으로 웹 사이트를 검색했을 때 그 결과를 페이지 상단에 노출시켜 많은 사람이 볼 수 있도록 최적화 하는 방법 - 서비스를 운영한다면 SEO 관리는 필수이며 이를 위한 방법으로 아래와 같은 방법이 있다 1) 캐노니컬 설정 - 아래처럼 사이트 link 에 캐노니컬을 설정 2) 메타 설정 - html 파일의 가장 윗부분인 메타를 잘 설정해야 함 3) 페이지 속도 개선 - 구글의 PageSpeedInsights 로 가서 자신의 서비스에 대한 리포팅을 주기적으로 받으며 관리가 필요함 - https://pagespeed.web.dev/ PageSp..
24.01.15 HTTPS 1 1. HTTPS - HTTP / 2는 HTTPS 위에서 동작 - 애필리케이션 계층과 전송 계층 사이에 신뢰 계층인 SSL / TLS 계층을 넣은 신뢰할 수 있는 HTTP 요청을 말함 - 통신을 암호화 함 1) SSL / TLS - 전송 계층에서 보안을 제공하는 프로토콜 - 클라이언트와 서버가 통신할 때 SSL / TLS 를 통해 제 3자가 메시지를 도청하거나 변조하지 못하도록 함 - 아래 그림처럼 SSL / TLS 를 통해 공격자가 서버인척하며 사용자 정보를 가로체는 네트워크상의 인터셉터를 방지할 수있다 - SSL / TLS 는 보안 세션을 기반으로 데이터를 암호화하며 보안 세션이 만들어질 때 인증 메커니즘, 키 교환 암호화 알고리즘, 해싱 알고리즘이 사용됨 (1) 보안 세션 - 보안이 시작되고 끝나는 ..
24.01.08 ~ 24.01.14 한주의 회고 월요일과 화요일에는 TCP / IP 4계층에 대해 CS 공부를 했다 수요일에는 네트워크 기기에 대해 CS 공부를 했다 목요일에는 IP 주소에 대해 CS 공부를 했다 금요일에는 HTTP 에 대해 CS 공부를 했다 이렇게 CS 공부를 하면서 예전에 알던 지식들이 짜집기가 되면서 조금씩 이해가 가기 시작했다 그래봐야 입으로 내뱉으려면 아직 많은 공부가 필요한것 같다 다음주에는 면접 약속이 좀 생기면 좋을텐데...
24.01.12 HTTP 1. HTTP - 전송 계층 위에 있는 애플리케이션 계층 - 웹 서비스 통신에 사용 1) HTTP / 1.0 - 기본적으로 한 연결당 하나의 요청을 처리하도록 설계되었는데 RTT 증가를 불러오게 되었다 (1) RTT 증가 - 서버로부터 파일을 가져올 때마다 TCP 의 3-웨이 핸드셰이크를 계속해서 열어야 하기 때문에 RTT 가 증가한다는 단점이 있다 * RTT : 패킷이 목적지에 도달하고 나서 다시 출발지로 돌아오기까지 걸리는 시간이며 패킷 왕복 시간 (2) RTT 증가를 해결하기 위한 방법 A) 이미지 스플리팅 - 많은 이미지를 다운로드 받게 되면 과부화가 걸리기 때무네 많은 이미지가 합쳐 있는 하나의 이미지를 다운받고 이를 기반으로 background-image 의 position 을 이용하여 이미지..