컴퓨터 과학: 연산, 정보, 자동화에 대한 학문. 더 큰 범위에서 이야기하면 프로그램 작동 근거를 설명하는 학문
- 프로그래밍의 근복적인 이해와 관련이 있다
- 포괄적 범위 : 컴퓨터 구조, 운영 체제, 자료 구조, 네트워크, 데이터베이스가 포함된다
( 이들의 유기적 관계를 이해하는 것이 중요 )
AI 와 다용한 자동화 기술들이 발전하는 현대에
개발자는 단순한 코드 작성을 넘어서 작동 근거에 의거한 문제 해결 능력이 필요하다
다양한 open ai 설명에서도 코드나 코딩에 대한 설명을 활용하는 것은 사용자의 책임이라는 내용이 명시되어있으며
언제나 정확성이 보관된, 일관된, 책임질 수 있는 답변을 하는 것은 아니다
CS지식은 암기가 아닌 이해하는 방향으로 학습해야한다.
키워드나 정의를 단순히 외우는 것은 문제 해결 능력 향상이나 기술 면접에 도움이 되지 않는다
취업을 위한 cs 지식 (전체)
1. 컴퓨터 구조
- 구조의 큰 그림
- 컴퓨터가 이해하는 정보
- 데이터 (명령어가 실행되기 위해 필요한 재료) - 필요 학습 : 인코딩
- 명령어 (cpu가 실행하는 가장 기본적인 정보) - 필요학습 : 작동원리/명령어 사이클, 인터럭터
- 핵심 부품
- CPU - 학습: 명령어 처리 방식의 발전 과정
- 메모리(주), 캐시메모리(보조) (RAM) - 학습:
- 보조기억장치 - 보관할 프로그램 저장(전원 종료시에도 저장된 내용 잃지 않음 - 비휘발성 저장장치)
- 입출력장치 - 학습 : 입출력 기법(어떻게 주고받는지)
2. 운영체제
- 운영체제 큰 그림 (커널 / 시스템 콜)
- 프로세스 및 스레드관리
- 프로세스와 스레드
- 프로세스 : 실행중인 프로그램
- 스레드 : 프로세스의 실행 단위
[ ** 프로세스는 코드로 관찰하고 표현할 수 있다 -> 코드상 표현 방식 이해 필요]
[ => 이를 활용시 여러 코드를 동시에 실행할 수 있다- 그 방식 및 유의사항 이해 필요]
- 자원 할당 및 관리
- CPU 관리 : CPU 스케줄링
- 메로리 관리 : 가상 메모리
- 파일/디렉터리 관리 : 파일 시스템
3. 자료구조 (data structure)
- 자료구조의 큰 그림(시간 복잡도, 공간 복잡도)
- 주요 자료구조
- 배열과 연결 리스트
- 스택 / 큐
- 해시 테이블 (구조 및 주요 구성요소(해시함수) - 이점 및 해시 충돌 이해 필요 )
- 트리 ** - 계층적 구조 및 다양한 구조에서 활용 가능 / 트리의 순회 이해, 코드 구현 방법
- 그래프
4. 네트워크
- 네트워크의 큰 그림
- 네트워크 계층 구조
- 프로토콜
- 계층별 주요 프로토콜, 네트워크 장비
- 물리 계층과 데이트 링크 계층(이더넷과 네트워크 장비)
- 네트워크 게층(IP)
- 전송 계층 (TCP와 UDP)
- 응용 계층 (HTTP, HTTPS)
- 프록시와 안정적인 트래픽
5. 데이터베이스
- 데이터베이스의 큰 그림
- 데이터베이스와 DBMS(database manegement system)
- 데이터베이스 VS 파일 시스템 - 왜 파일이 아닌 데이터베이스에 저장해야 하는가에 대한 이해
- 엔티티, 스키마
- 엔티티 : db에 저장 가능한 객체
- 스키마 : 엔티티가 저장되는 형태(틀)
- 트랜잭션, ACID
- 트랜잭션 : db와 상호작용 하는 단위
- RDBMS와 SQL
- RDMBS의 기본
- SQL
- 효율적 쿼리 (index, join, view)
- 데이터베이스 설계
- NoSQL
- 특징
- 다양한 NoSQL (MongoDB, Redis)
------------------
FE 개발에 도움될것 같은 것들 꼽아보기
1. 컴퓨터 구조
- 메모리(RAM, 캐시) -> js 실행 방식 및 성능 최적화
- CPU 명령어 처리 방식
-> JS 엔진 작동 원리, 이벤트 루프, 싱글 스레드 특성
- 입출력 장치 -> 브라우저 렌더링 최적화, 비동기 처리 관련
2. 운영체제
- 프로세스 vs 스레드 -> 브라우저 내부 동작 및 Web worker 활용
- CPU 스케줄링 -> 비동기 처리, 이벤트루프, 요청 처리 방식
- 메모리 관리(가상 메모리) -> js 메모리 할당, 가비지 컬렉션
3. 자료구조
- 배열, 해시 테이블 -> js의 객체, Map, Set
- 스택/ 큐 -> 콜 스택, 이벤트 루프와 연관
- 트리 -> dom 트리, virtual DOM(리액트), 렌더링 최적화
4. 네트워크
- HTTP/HTTPS, TCP/UDP -> API 요청, CORS, 웹소켓 이해
- 프록시와 CDN -> 웹 성능 최적화, 캐싱 전략
- 네트워크 계층 -> 브라우저와 서버 간 데이터 흐름 이해
5. 데이터베이스
- RDBMS와 SQL → 백엔드 협업 시 필수
- NoSQL (Redis, MongoDB) → 상태 관리, 캐싱 활용
- 트랜잭션, ACID → 데이터 일관성 이해
'CS' 카테고리의 다른 글
CPU - 레지스터 (0) | 2025.03.25 |
---|---|
명령어 (0) | 2025.03.25 |
데이터 (0) | 2025.03.24 |
cs 학습의 필요 이유(당연한 이야기) (0) | 2025.03.24 |
웹 브라우저 작동 방식(기록용) (0) | 2025.03.22 |