본문 바로가기
→ 블로그 운영자의 CS 무료 강의 보러가기

전체 글557

쉘의 종류는 왜 하나가 아닐까? 처음 리눅스나 macOS 터미널을 접하면“쉘”이라는 것이 마치 운영체제의 일부처럼 느껴진다.하지만 중요한 사실부터 짚고 가야 한다.쉘은 운영체제의 고정된 구성 요소가 아니라, 여러 개 중 하나를 선택해서 사용하는 프로그램이다.운영체제 입장에서 쉘의 역할은 단순하다.사용자가 입력한 명령을 해석해서, 커널에게 전달하는 것.이 역할 자체는 바뀐 적이 거의 없다.그런데도 쉘의 종류가 여러 개인 이유는,역할은 같지만 철학과 사용 경험이 다르기 때문이다. 쉘은 인터페이스다쉘을 기술적으로 보면 “명령 해석기(command interpreter)”다.하지만 사용자 입장에서는 훨씬 더 단순하다.쉘은 운영체제와 대화하기 위한 텍스트 기반 인터페이스다.ls를 치면 디렉토리를 보여주고cd를 치면 위치를 바꾸고echo를 치면 .. 2026. 1. 8.
동적 라이브러리의 본질: 실행 파일은 왜 혼자서 완성되지 않을까 프로그램을 실행하면, 우리는 흔히 하나의 실행 파일이 모든 일을 처리한다고 생각한다.하지만 실제로는 실행 파일 하나만으로 동작하는 프로그램은 거의 없다.대부분의 프로그램은 실행 시점에 외부 코드의 도움을 받아 완성된다. 이 글에서는 동적 라이브러리, 동적 연결, 그리고 플러그인 실행이어떤 하나의 흐름으로 이어지는지, “프로그램은 언제 완성되는가”라는 질문을 중심으로 정리해본다.정적 링크와 동적 링크는 무엇이 다를까먼저 대비되는 개념부터 짚고 가야 한다.정적 링크는 필요한 코드가 모두 실행 파일 안에 포함된 방식이다.컴파일과 링크가 끝나는 순간, 프로그램은 이미 완성되어 있다. 반면 동적 링크는 다르다.실행 파일은 “이 함수가 필요하다”는 정보만 알고 있을 뿐,실제 구현 코드는 파일 바깥에 남겨둔다.그리고.. 2025. 12. 27.
제어 흐름(Control Flow): 모든 코드는 왜 if와 for로 수렴할까 프로그래밍 책을 읽다 보면 어느 순간 비슷한 문장을 만나게 된다.모든 프로그램은 결국 if, for, 그리고 statement의 조합이라는 말이다.처음에는 너무 단순화한 설명처럼 들리지만, 곱씹어보면 이 문장은 꽤 강력한 통찰을 담고 있다.이 글에서는 이 문장이 왜 성립하는지,그리고 이 관점이 코드를 읽고 설계하는 데 어떤 결론으로 이어지는지를 차분히 정리해보려 한다. if와 for를 제거하면 무엇이 남을까코드를 구성하는 문법은 언어마다 다르다.하지만 언어의 외형을 걷어내고 보면, 남는 것은 생각보다 많지 않다.조건에 따라 갈라지는 흐름과, 어떤 작업을 반복하는 흐름이 전부다. if는 선택을 담당한다.조건이 참이면 이쪽, 거짓이면 저쪽으로 실행 흐름을 분기시킨다.for는 반복을 담당한다.같은 작업을 여러.. 2025. 12. 27.
비전공자 CS 핵심 이론 정리 (자료구조·알고리즘) 이 글은 「비전공자 CS 공부 로드맵 시리즈」 3편입니다.앞선 글에서 컴퓨터 구조·운영체제, 네트워크·데이터베이스를 통해“프로그램이 어떻게 실행되고, 통신하고, 데이터를 저장하는가”를 살펴봤다면,이번 글에서는 자료구조와 알고리즘을 통해“데이터를 어떤 구조로 다루고, 문제를 어떤 방식으로 해결하는가”를 정리합니다.자료구조와 알고리즘은 코딩 테스트 이미지가 강하지만,면접에서는 ‘문제를 푸는 실력’보다 ‘사고 방식과 선택의 이유’를 더 중요하게 봅니다.비전공자 CS 공부에서 자료구조·알고리즘이 중요한 이유면접에서 자료구조·알고리즘 질문은 보통 이런 의도로 나옵니다.이 문제에서 왜 이 자료구조를 선택했는가시간·공간 복잡도를 고려한 의사결정을 할 수 있는가라이브러리를 쓰더라도 내부 동작을 이해하고 있는가즉, “정.. 2025. 12. 13.
비전공자 CS 핵심 이론 정리 (네트워크·데이터베이스) 이 글은 「비전공자 CS 공부 로드맵 시리즈」 2편입니다.1편에서는 컴퓨터 구조와 운영체제를 중심으로 “컴퓨터 내부에서 프로그램이 어떻게 실행되는가”를 다뤘다면,이번 글에서는 네트워크와 데이터베이스를 통해 “프로그램이 어떻게 통신하고, 데이터를 어떻게 저장·관리하는가”를 정리합니다.네트워크와 데이터베이스는 실무와 면접에서 가장 직접적으로 질문이 이어지는 CS 과목입니다.비전공자 CS 공부에서 네트워크·데이터베이스가 중요한 이유면접에서 네트워크·DB 질문은 보통 이런 의도로 나옵니다.서버와 클라이언트가 어떻게 통신하는지 이해하고 있는가데이터가 왜 이렇게 저장되고, 왜 이런 문제가 발생하는지 설명할 수 있는가즉, “내가 작성한 코드가 실제 서비스 환경에서 어떻게 동작하는지 설명할 수 있는지”를 확인하는 영역.. 2025. 12. 13.
비전공자 개발자 취업을 위한 CS 공부법 (꿀팁) 비전공자로 개발자 취업을 준비하다 보면CS 공부에서 가장 먼저 막히는 지점이 있습니다.“CS가 중요하다는 건 알겠는데, 도대체 어디서부터 어디까지 공부해야 하는지 모르겠다”는 점입니다.운영체제, 자료구조, 알고리즘, 네트워크, 데이터베이스…검색해보면 전부 중요하다고만 말하지,비전공자 기준으로 우선순위와 공부 순서를 정리해주는 글은 많지 않습니다.그래서 이 글에서는비전공자 취업 기준으로 CS 공부 전체 로드맵을 정리해보려고 합니다. 비전공자가 CS 공부에서 가장 많이 막히는 이유비전공자로 개발자 취업을 준비하다 보면 가장 많이 듣는 말이 있습니다.“CS는 기본이다”, “CS 없으면 면접에서 떨어진다”는 말이죠.문제는,비전공자 입장에서는 어디서부터, 얼마나, 어떤 수준까지 공부해야 하는지가 전혀 명확하지 않.. 2025. 12. 13.