지노개발일기

I LEARN BY WRITING

Today I Learned

배운 걸 잊지 않으려고 적기 시작했습니다.

아래로

Computer Science

[Computer Science 면접 준비] 3. 자료구조와 알고리즘

[Computer Science 면접 준비] 3. 자료구조와 알고리즘

들어가기 전이 질문의 질문도 딱 하나로 정리된다.“같은 데이터인데, 왜 어떤 코드는 빠르고 어떤 코드는 느린가?”그리고 왜 내가 이걸 알아야 하는가?... 이전 챕터에서 이런 말을 했다.“프로그램은 결국 메모리에 올라가서 실행된다.” OK, 그럼 그 데이터를 어떻게 구조화해서 저장하고 탐색할 것인가?“어떻게 구조화하는가”가 바로 자료구조“그걸 어떤 방법으로 처리, 특히 탐색할 것인가”가 알고리즘코딩 테스트를 보는 이유도 결국 이거다.“문제를 효율적으로, 즉 적절한 자료구조와 알고리즘으로 풀 수 있는가?” 그리고 면접에서도 “왜 그 자료구조를 골랐냐”를 자주 묻는다.또! 또! 이 생각을 가지고 가자.자료구조에서도 “무조건 좋은 것”은 없다.조회가 빠르면 좋겠다.삽입이 빠르면 좋겠다.정렬이 쉬우면 좋겠다.메..

[Computer Science 면접 준비] 2. 프로그래밍 언어

[Computer Science 면접 준비] 2. 프로그래밍 언어

사실 프로그래밍 언어에 대한 이야기를 하려면 며칠이 걸릴 수도 있다..하나의 언어에 대해서만 공부해도 일평생을 이해하지 못할 수도..C, Java, Python은 뭐가 다른데?어쩌다 이런 언어들이 나왔는데?그 언어는 어떤 장단점이 있는데?어떤 시스템에 사용되면 좋은데?끝도 없다. 사실 면접에서는 본인이 이력서에 적은 언어에 대한 질문이 자주 나온다.“Java 서버 개발자인데 Python도 쓰셨네요. 두 언어의 차이가 뭔가요?”물론 여기서 언어 하나하나를 딥하게 다루지는 않을 것이다. 다만 “왜 이 언어를 썼어요?”라는 질문에언어의 실행 방식과 특성을 연결해서 말할 수는 있어야 한다.Spring Boot의 Servlet이 어쩌고 하는 프레임워크 이야기 보다,일단 그 아래의 원론적인 언어 이야기를 조금 해보..

[Computer Science 면접 준비] 1. 컴퓨터구조

[Computer Science 면접 준비] 1. 컴퓨터구조

이 챕터의 질문은 딱 하나다.“컴퓨터는 도대체 어떻게 프로그램을 실행하는가?”컴퓨터 과학에서 말하는 Computing, 즉 컴퓨터가 계산을 수행하는 과정을 이해하는 가장 기본적인 질문이기도 하다.일단 전체 흐름부터 아주 단순하게 보면 이렇다.코드 작성 → 파일 저장 → 프로그램 실행→ 메모리 적재 → CPU 실행 → 결과 출력끝이다.물론 이 사이에 운영체제, 가상 메모리, 컴파일러, 캐시, 파일 시스템 등 온갖 개념이 끼어 있다. 하지만 지금은 큰 흐름을 먼저 잡자.디테일은 뒤에서 하나씩 다 나올 거임~1-0. 연산은 어떻게 이루어지는가?많은 사람이 이렇게 알고 넘어간다.CPU는 연산기, RAM은 임시 저장소.틀린 말은 아닌데, 이 정도로 끝내면 프로그램이 실제로 어떻게 실행되는지는 잘 안 잡힌다.Com..

[Computer Science 면접 준비] 0. CS 전체 지도

[Computer Science 면접 준비] 0. CS 전체 지도

들어가기 전Chapter 0에서는 개별 개념을 깊게 파기보다, 일단 전체 그림부터 잡고 시작해보자.CS 공부를 하다 보면 컴퓨터 구조, 운영체제, 네트워크, 자료구조, 데이터베이스처럼 알아야 할 주제가 정말 많다.그런데 각각은 알겠는데, 이런 생각이 들 때가 있음.HTTP? TCP? 프로세스? 스레드? 인덱스?각각은 알겠는데, 그래서 얘네가 실제로 어디서 연결되는 거지?지금 당장 모든 내용을 완벽하게 이해할 필요는 없다.부분부분 모르거나 헷갈리는 게 있어도 괜찮음.나중에 하나씩 배우다 보면 “아 그래서 여기서 나왔던 거구나” 하고 이해될 거임~이번 Chapter 0에서는 앞으로 배울 내용의 큰 지도, 흐름 정도만 잡아두자.디테일은 뒤에서 자세히 배우면 됨.0-1. 사용자가 버튼을 누른 순간, 컴퓨터 내부..

[Computer Science 면접 준비] 개요

[Computer Science 면접 준비] 개요

CS 면접 완전정복CS 면접을 준비하다 보면 자료구조, 운영체제, 네트워크, 데이터베이스처럼 알아야 할 주제가 정말 많습니다.그런데 개별 개념은 공부했는데, 서로 어떻게 연결되는지는 잘 모르겠는 경우가 많습니다.이 시리즈에서는 단순히 CS 개념을 외우는 데서 그치지 않고,컴퓨터와 서비스가 실제로 어떻게 동작하는지 큰 흐름부터 잡아보려고 합니다.컴퓨터는 어떻게 계산할까?작성한 코드는 어떤 과정을 거쳐 실행될까?여러 요청은 어떻게 동시에 처리될까?컴퓨터와 서버는 어떻게 통신할까?데이터는 어디에, 어떤 방식으로 저장될까?실제 서비스는 어떻게 운영될까?처음에는 각각 완전히 다른 주제처럼 보일 수 있습니다.하지만 하나의 서비스가 동작하는 과정을 따라가다 보면, 모든 개념은 자연스럽게 연결됩니다.이 시리즈는 이렇게..

🔒 TLS vs SSL : HTTPS 보안 개념

🔒 TLS vs SSL : HTTPS 보안 개념

0️⃣ 들어가기 전우리는 웹 브라우저와 웹 서버 간에 데이터를 주고 받기 위한 프로토콜로 HTTP를 사용하고 있다는 점은 익히 안다.그러나, 시대가 지남에 따라 다양한 해킹 방법이 등장하고, HTTP 또한 보안적으로 취약한 프로토콜로 지적받기 시작했다.특히, HTTP는 데이터 전송 과정에서 암호화 과정이 포함되어 있지 않기 때문에, 중간자 공격 같은 보안 위협에 쉽게 노출될 수 있다.그래서 더욱 안전하게 리소스를 주고 받을 수 있는 보안 체계가 필요했고, HTTPS가 탄생했다.1️⃣ HTTPSHTTPS는 HTTP의 보안버전이며,SSL(Secure Sockets Layer) 또는 TLS(Transport Layer Security) 프로토콜을 사용하여데이터를 암호화하고, 서버와 클라이언트 간의 통신을 안전..

네트워크 보안 개념 정리

네트워크 보안 개념 정리

클라우드에서의 보안 (AWS)IAM사용자의 권한을 관리하는 시스템사용자의 증명, 혹은 Group에 대한 권한을 부여함.최소 권한 원칙 (Principle of Least Privilege)보는 것이 필요할 경우, 나열 혹은 읽기 권한만 준다.viewOnlyAccessVPC네트워크 접근 제어보안 그룹인바운드 규칙 혹은 아웃바운드 규칙을 정한다.인바운드는 필요한 서비스만 연다.아웃바운드는 외부와의 연결이 필요한 인스턴스에만 적용한다.포트와 IP 주소를 기준으로 트래픽 허용 혹은 거부네트워크 ACL서브넷 수준에서 트래픽을 필터링하는 정책 기반의 보안 구성 요소이다.VPC의 서브넷 간에 오가는 트래픽을 제어한다.(보안 그룹과 다르게 상태가 비저장 방식으로 작동하므로, 들어오는 트래픽과 나가는 트래픽을 독립적으로..

[알고리즘] BFS/DFS 그리고 다익스트라 알고리즘 & 백트레킹

[알고리즘] BFS/DFS 그리고 다익스트라 알고리즘 & 백트레킹

이전 포스팅을 참고https://jinhos-devlog.tistory.com/entry/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EC%99%84%EC%A0%84-%ED%83%90%EC%83%89-Exhaustive-Search ✒️ 1. BFS / DFS- 너비우선탐색(Breadth-First Search, BFS)는 하나의 요소를 방문하고 그 요소에 인접한 모든 요소를 우선 방문하는 방식- 깊이우선탐색(Depth-First Search, DFS)는 트리의 한 요소(노드)와 다음 수준(level)의 자식 노드를 따라가는 방향으로 탐색하는 방식- 길 찾기 등에 주로 쓰이는 알고리즘이다. (미로 등) ✒️ 2. BFS (너비 우선 탐색)BFS는 그래프나 트리 구조에서 노드를 탐색..

맨 위로

화면

50%
테마