cs지식기초

데브코스

목록 보기
127/131

CS 기초 지식, 한 번에 이해하기

"리액트 잘 다루면 됐지 CS가 왜 필요해?"라고 생각하기 쉬운데, CS 기초는 프레임워크가 바뀌어도 안 변하는 뿌리다. 면접에서 단골로 나오고, 성능 최적화나 디버깅할 때 결국 여기로 돌아온다. 핵심부터 한 줄로 정리하면 이렇다.

CS 기초 = 컴퓨터가 어떻게 동작하는지, 그리고 문제를 어떻게 효율적으로 푸는지에 대한 기본 지식


쉽게 비유하면

요리의 기본기라고 생각하면 됨! 레시피(프레임워크·라이브러리)만 보고 따라 하는 건 누구나 할 수 있다. 근데 칼질, 불 조절, 재료 궁합 같은 기본기가 있어야 레시피 없이도 응용하고, 망쳤을 때 왜 망쳤는지 알 수 있다.

CS 기초가 딱 그 기본기다. 라이브러리는 계속 바뀌고 유행도 변하지만, "데이터를 어떻게 저장하고, 어떻게 빠르게 찾고, 컴퓨터가 어떻게 일하는지"는 안 바뀐다. 그래서 기본기가 탄탄하면 새 기술도 빨리 흡수할 수 있는 거 같음!


자세히

CS 기초는 보통 이 기둥들로 나뉜다.

1. 자료구조 (Data Structure)

데이터를 어떤 모양으로 담을 거냐에 대한 이야기.

  • 배열(Array) — 순서대로 줄 세우기. 인덱스로 빠르게 접근
  • 스택(Stack) — 쌓기. 마지막에 넣은 게 먼저 나옴 (LIFO). 예: 뒤로가기 버튼
  • 큐(Queue) — 줄 서기. 먼저 온 게 먼저 나옴 (FIFO). 예: 대기열
  • 해시 테이블(Hash) — 이름표로 바로 찾기. 검색 초고속. 예: JS의 객체
  • 트리/그래프 — 계층·연결 구조. 예: 폴더 구조, 친구 관계망

같은 데이터라도 어떤 자료구조에 담느냐에 따라 속도가 천차만별이다. 그래서 "상황에 맞는 그릇 고르기"가 핵심.

2. 알고리즘 & 시간복잡도 (Big-O)

문제를 푸는 절차, 그리고 그게 얼마나 효율적이냐를 따지는 것.

  • 정렬, 탐색 같은 기본 알고리즘이 있고
  • Big-O 표기법으로 "데이터가 늘어날 때 얼마나 느려지나"를 표현함
    • O(1): 데이터 늘어도 그대로 빠름 (해시 검색)
    • O(n): 데이터에 비례해서 느려짐 (배열 전체 훑기)
    • O(n²): 데이터 늘면 확 느려짐 (이중 반복문)

비유: 책 100권에서 한 권 찾을 때, 처음부터 다 뒤지면 O(n), 색인 있으면 O(1). 면접 단골 중의 단골!

3. 운영체제 (OS)

컴퓨터의 자원을 관리하는 매니저.

  • 프로세스 vs 스레드 — 실행 단위. 프로세스는 독립된 작업, 스레드는 그 안의 일꾼들
  • 메모리 관리 — 누구한테 메모리를 얼마나 줄지 (→ 메모리 편 참고)
  • 스케줄링 — CPU를 어떤 작업에 먼저 줄지 순서 정하기

4. 컴퓨터 구조 (Computer Architecture)

컴퓨터가 물리적으로 어떻게 계산하나.

  • CPU(연산), 메모리(작업공간), 저장장치(보관) 같은 부품의 역할
  • 모든 데이터는 결국 0과 1(2진수) 로 표현된다는 것

5. 그 위에 얹히는 응용 분야

  • 컴퓨터 네트워크 — 컴퓨터끼리 데이터 주고받기 (→ 네트워크 편 참고)
  • 데이터베이스 — 데이터를 잘 저장하고 찾기 (→ DB 편 참고)
  • 소프트웨어 공학 — 이걸 다 모아서 제대로 만드는 법 (→ SW 공학 편 참고)

실사용 예

CS 기초는 추상적인 게 아니라 실전에서 계속 튀어나온다.

  • 면접 — "스택과 큐 차이는?", "Big-O가 뭐죠?", "해시 테이블 원리는?" → 거의 무조건 나옴
  • 성능 최적화 — 리스트 렌더링이 느릴 때, 자료구조나 알고리즘 복잡도를 줄여서 해결하는 경우가 많음. (예: 매번 배열 전체를 훑던 걸 해시로 바꿔서 O(n)→O(1))
  • 디버깅 — "왜 메모리가 계속 늘지?", "왜 이 함수가 화면을 멈추지?" 같은 문제는 결국 OS·메모리·복잡도 지식으로 푼다
  • 기술 선택 — "이 데이터엔 배열이 맞나 해시가 맞나", "RDB가 맞나 NoSQL이 맞나" 같은 판단의 근거가 됨

프레임워크는 도구고, CS 기초는 그 도구를 언제·왜 써야 하는지 알려주는 판단력 같음!


한 방 정리

기둥한 줄 설명
자료구조데이터를 담는 그릇 (배열·스택·큐·해시·트리)
알고리즘 / Big-O문제 푸는 절차 + 효율 측정
운영체제자원 관리 매니저 (프로세스·메모리·스케줄링)
컴퓨터 구조하드웨어가 계산하는 원리 (0과 1)
네트워크·DB·SW공학그 위에 얹히는 응용 분야

쉽게 외우면 "프레임워크는 유행, CS 기초는 뿌리" — 이렇게 보면 감 잡힐 듯!

이 글은 시리즈의 큰 지도 역할이고, 각 기둥을 더 깊게 파고 싶으면 메모리 편, 네트워크 편, DB 편, 소프트웨어 공학 편을 같이 보면 된다!

profile
Dive Head First | Work Super Hard | Attract Great People

0개의 댓글