궁금한게 많은 열아홉
article thumbnail
[알고리즘] 개념 정리하기
CS 2023. 9. 2. 17:20

다이나믹 프로그래밍 연산 속도와 메모리 공간을 최대한으로 활용할 수 있는 효율적인 알고리즘을 작성하는데 해결할 수 있는 대표적인 방법. 큰 문제를 작은 문제로 나누어 푸는 문제를 일컫는 말 / 한 번 계산한 문제는 다시 계산하지 않도록 하는 알고리즘 DP는 다음의 조건을 만족할 때 사용할 수 있음 최적 부분 구조 (Optimal Substructure) 큰 문제를 작은 문제로 나눌 수 있고, 작은 문제의 답을 모아 큰 문제를 해결할 수 있는 경우를 의미 중복되는 부분 문제 (Overlapping Subproblem) 동일한 작은 문제를 반복적으로 해결해야 하는 경우 피보나치 수열 피보나치 수열이란 이전 두 항의 합을 현재의 항으로 설정하는 특징을 가진 수열이다. 점화식 풀이 _ 단순 재귀 함수 def f..

article thumbnail
모든 프로젝트 관리의 기본, GIT & GitHub 파헤치기
CS 2023. 7. 30. 00:43

개요필자의 동생은 곧 고등학교 입학을 앞두고 있는데, 나와 같은 고등학교에 입학할 예정이다. 학교에서 개발을 배우게 될 예정이긴 하지만, 이제 막 개발을 시작하는 단계이기 때문에 어떠한 베이스 지식도 없다. 그래서 동생에게 가장 공통적으로 많이 쓰이면서도 기본적인 GIT 사용법과 용어들에 대해 알려주기로 했고, 동생 뿐만 아니라 이제 개발을 시작한 분들에게도 조금이나마 도움이 되고자 이 글을 작성하게 되었다. GIT이란?컴퓨터 파일의 변경사항을 추적하고 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 스냅샷 스트림 기반의 분산 버전 관리 시스템이다. - 위키백과 여기서 스냅샷 스트립 기반이라는 말을 제외하고 의미를 정리해보면, GIT은 변경사항 즉, 버전을 관리해주는 시스템을 말한다. GIT..

[알고리즘] 알고리즘 개념 정리
CS 2023. 6. 16. 23:47

그리디현재 상황에서 지금 당장 좋은 것만 고르는 방법,순간 가장 좋아보이는 것을 선택하며, 현재 선택이 나중에 미칠 영향에 대해서는 고려하지 않는다. 구현머릿속에 있는 알고리즘을 소스코드로 구현하는 과정.모든 경우의 수를 주저 없이 다 계산 하거나, 문제에서 제시한 알고리즘을 한 단계씩 차례대로 직접 수행하는 등의 유형있다. DFS깊이 우선 탐색으로 그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘. 스택을 사용한다.const graph = { A: ["B", "C"], B: ["A", "D"], C: ["A", "E"], D: ["B", "F"], E: ["C","G"], F: ["D","H","I"], G: ["E","J","K"], H: ["F","L..

article thumbnail
아직도 동기와 비동기를 이해 못하는 너에게
CS 2023. 3. 18. 03:01

🚨 본 글은 필자의 친구들, 후배들에게 동기 / 비동기에 대해 쉽게 설명하기 위해 간략히 작성한 글입니다 :) 며칠 전 본의 아니게 친구의 대화를 듣게 되었는데 나로썬 약간의 충격이었다. Javascript의 async/await에 대해 얘기하던 중 동기와 비동기 관련 얘기가 나왔고, 한 친구는 이런 말을 내뱉게 된다. "근데, 동기와 비동기가 뭐야?" 그 친구의 강렬한 한 마디는 아직까지도 내 머릿속에 맴돌고 돌았다.(하지만 엄청 놀랍진 않았다... 니 덕분이야 연진아,) 처음엔 모를 수도 있지... 했는데 점점 모를 수가 있나...? 모르면 안될것 같은데...? 라는 생각이 무한 루프를 탔고, 결국 이 글을 적게 되었다. 설명을 위해 쉽게 예시도 들어놨으니 꼭 읽고 이해가 되었으면 좋겠다. 우리는 학..

article thumbnail
[CS] CSR, SSR 그리고 SSG에 대해 이해하기
CS 2023. 3. 11. 17:41

🚨 본 글은 기본적인 내용(서버-클라이언트가 요청과 응답을 보내는 과정)을 알고 있다는 전재하에 작성한 글 입니다. 간단히 정리했습니다 :) 우리는 검색창에 주소를 찍음으로써 서버에 페이지를 요청하게 된다. 요청을 받은 후 웹페이지를 렌더링 하고 처리하여 브라우저를 통해 사용자에게 보여주는 과정을 거치게 되는데, 이 렌더링하는 방식은 어떤 라이브러리 혹은 프레임워크를 썼냐에 따라 달라질 수 있다. 어떤 렌더링 방식을 사용했냐에 따라 최고의 웹사이트가 될수도, 최악의 웹사이트가 될수도 있다. 우리는 상황에 맞춰 어떤 것을 이용할 것인지 잘 선택해야 한다. 그래서 오늘은 각 렌더링 방식에 대해 알아보고, 어떤 상황에 어떤 방식을 사용할지 같이 고민해볼 것이다. 렌더링 하는 방식에는 총 3가지가 있다. 1. ..

[CS] 쿠키와 세션 그리고 브라우저 저장소
CS 2023. 3. 8. 21:37

🚨 본 글은 필자가 발표를 위해 기록한 글입니다. 1. 쿠키(Cookie) [1] 정의 ➡️ 쿠키는 클라이언트(브라우저) 로컬에 저장되는 키와 값이 들어있는 작은 데이터 파일 하나의 쿠키당 4kb를 저장함. 웹사이트에서 쿠키를 설정하게 될 시 그 이후 모든 웹 요청은 쿠키 정보를 포함해 전송. 인증 기한이 있고, 키-값으로 이뤄져있음. 쿠키를 상실하면 정보를 상실하는 것과 같다. 2. 세션(Session) [1] 정의 ➡️ 쿠키와 달리 사용자 정보를 서버에 저장하여 서버측에서 세션ID파일을 생성해 관리함. 세션 ID로 클라이언트를 구분 ➡️ 요구에 맞는 서비스를 제공 사용자가 많아질수록 서버 메모리를 많이 차지하게 됨 +) 쿠키와 세션의 차이점 정보가 저장되는 위치(세션 - 서버, 쿠키 - 클라이언트) ..

article thumbnail
[OS] 운영체제 기초 활용하기
CS 2022. 8. 28. 14:31

운영체제의 특징 파악 사용자 편의성을 위한 인터페이스 제공 컴퓨터의 구성을 잘 알고 있지 않더라도 아이콘/버튼을 통해 컴퓨터를 다룰 수 있는 것을 의미함. 다양한 자원을 관리함 CPU 등과 같이 컴퓨터 자원의 속도를 관리함 윈도즈 계열 운영체제의 특징 장점 : 고객 지원이 체계적임 단점 : 문제점을 발견했을 때 수정에 시간이 걸림 ➡️ 시간적인 차이가 있음 리눅스/유닉스 계열 운영체제 특징 장점 : 다수의 개발자가 수정에 참여해 빠른 업데이트가 가능함 단점 : 체계적인 지원이 상대적으로 부족해 일반인들보다는 전문가들이 사용함. 운영체제의 역할과 목표 운영체제 기본 명령어 제어 방법 CLI : 사용자가 직접 명령어를 입력해 컴퓨터에게 명령을 내리는 방식 GUI : 마우스로 화면을 클릭해 컴퓨터를 제어하는 ..

article thumbnail
[CS] TCP/IP를 알아보자
CS 2022. 8. 24. 16:44

인터넷 프로토콜 스택의 4계층 왼쪽은 컴퓨터 간 패킷 통신을 위해 거쳐야하는 7개의 계층을 의미합니다. 인터넷 프로토콜은 TCP/IP 프로토콜 통신 과정에 4계층으로 나눠져있습니다. 각 층은 아래와 같습니다. 애플리케이션 - HTTP,FTP 프로토콜 웹브라우저, 네트워크 게임, 채팅 프로그램, SOCKET 라이브러리 전송 - TCP, UDP :: OS(운영체제) 인터넷 - IP :: OS(운영체제) 네트워크 인터페이스 - LAN IP 패킷의 구성 출발지, 목적지, 기타 전송데이터 TCP/IP 패킷 출발지 포트, 목적지 포트, 전송제어, 순서, 검증정보 특징 전송제어 프로토콜 연결지향 - TCP 3 way handshake(가상연결) 데이터 전달 보증 순서 보장 신뢰성있는 프로토콜 현재에 대부분 쓰임 연결..

article thumbnail
[CS] 클라이언트와 서버가 통신하는 아주 간단한 방법 - IP
CS 2022. 8. 23. 20:14

클라이언트와 서버간의 통신에 대해 조금 더 잘 이해하기 위해 네트워크 지식은 필수다. 그래서 오늘은 인터넷 네크워크가 어떻게 통신을 하는지 알아보고 이를 정리해보려고 한다. 클라이언트와 서버의 통신방법 우리가 어떠한 정보를 주고 받으려면 통신을 해야한다. 아래와 같이 클라이언트로 사용할 컴퓨터와 서버로 사용할 컴퓨터가 가까이 있다면 그냥 케이블을 활용해서 유선 연결을 하면 된다. 만약 멀리 그것도 아~주 먼곳에 내가 원하는 정보를 보내고 싶다면 인터넷 망을 활용해야한다. 하지만 이 인터넷 망으로 보낸다는 것이 단순하지 않다. 그림으로 보면 알겠지만 인터넷의 속은 굉장히 복잡하다. 왜냐하면 중간에 광케이블을 거쳐서 가기 때문에 정보가 전달되지 않을 수 있고, 전달된다 하더라도 그 정보가 깨지거나 유실되서 ..