CS 지식 11

개발자면접을 위한 CS전공지식 | CS면접 - 자료구조

#_자료구조 : 효율적으로 데이터를 관리하고 수정, 삭제, 탐색, 저장할 수 있는 데이터 집합, C++는 STL을 기반으로 전반적인 자료구조를 잘 설명할 수 있는 언어 *STL : C++의 표준 템플릿 라이브러리이자 스택, 배열 등 데이터 구조의 함수 등을 제공하는 라이브러리 묶음 #include //(1) using namespace std;//(2) string a;//(3) int main() { cin >> a;//(4) cout

개발자면접을 위한 CS전공지식 | CS면접 - 데이터베이스

#_데이터베이스 (DB, DataBase) : 일정한 규칙, 규약을 통해 구조화되어 저장되는 데이터 모음, DB내의 데이터드릉ㄴ 특정 DBMS마다 정리된 쿼리언어를 통해 삽입, 삭제, 수정, 조회 등 CRUD 수행가능, 실시간 접근과 동시공유 가능 #_DBMS (DataBase Management System) : 해당 데이터베이스를 제어, 관리하는 통합시스템 #_엔터티 (entity) : 사람, 장소, 물건, 사건, 개념 등 여러개의 속성을 지닌 명사, 서비스의 요구사항에 맞춰 엔터티의 속성이 정해짐 *약한 엔터티와 강한 엔터티 : A가 혼자서는 존재하지 못하고 B의 존재여부에 따라 종속적일 경우 A는 약한 엔터티, B는 강한 엔터티 #_릴레이션 (relation) : DB에서 정보를 구분하여 저장하는..

개발자면접을 위한 CS전공지식 | CS면접 - 운영체제

운영체제 #_운영체제의 역할 1. CPU 스케줄링과 프로세스 관리 : CPU 소유권을 어떤 프로세스에 할당할지, 프로세스의 생성과 삭제, 자원 할당 및 반환 관리 2. 메모리 관리 : 한정된 메모리를 어떤 프로세스에 얼마나 할당해야하는지 관리 3. 디스크 파일 관리 : 디스크 파일을 어떤 방법으로 보관할지 관리 4. I/O 디바이스 관리 : I/O 디바이스들인 마우스, 키보드와 컴퓨터 간에 데이터 주고받는 것 관리 #_운영체제의 구조 GUI : 사용자가 전자장치와 상호 작용이 가능하도록하는 사용자 인터페이스의 한 형태, 단순 명령어 창이 아닌 아이콘을 마우스로 클릭하는 단순한 동작으로 컴퓨터와 상호작용(리눅스 서버는 GUI가 없음) 드라이버 : 하드웨어를 제어하기 위한 소프트웨러 CUI : 그래픽이 아닌..

개발자면접을 위한 CS전공지식 | CS면접 - 네트워크

네트워크 #_TCP/IP 4계층 모델과 OSI 7계층 : 인터넷 프로토콜 스위트(internet protocol suite) : 인터넷에서 컴퓨터들이 정보를 주고받는데 쓰이는 프로토콜의 집합으로 TCP/IP 4계층 또는 OSI 7계층 모델로 설명 TCP/IP (Transmission control Protocol/Internet Protocol) 4계층 모델 : 네트워크에서 사용되는 통신 프로토콜의 집합, 프로토콜의 네트워킹 범위에 따라 구성 OSI 7계층 : TCP/IP 세분화 #_TCP/IP 4계층 : 각 계층에 영향x 애플리케이션(application) 계층 : FTP, HTTP, SSH, SMTP, DNS 등 응용프로그램이 사용되는 프로토콜 계층으로 웹 서비스, 이메일 등 서비스를 실질적으로 사람..

개발자면접을 위한 CS전공지식 | CS면접 - 디자인패턴

디자인패턴 #_디자인패턴 : 프로그램을 설계할 때 발생했던 문제점들을 객체간의 상호관계 등을 이용하여 해결할 수 있도록 하나의 '규약'형태로 만들어 놓은 것 #_라이브러리와 프레임워크의 차이 라이브러리 : 공통으로 사용될 수 있는 특정한 기능들을 모듈화한 것, 프레임워크에 비해 자유로우며 컨트롤주체는 '내'가 됨 프레임워크 : 공통으로 사용될 수 있는 특정한 기능들을 모듈화한 것, 라이브러리에 비해 엄격하며 컨트롤주체는 '도구'가 됨 #_싱글톤패턴(singleton pattern) : 하나의 클래스에 오직 하나의 인스턴스만 가짐, 일반적으로 DB연결 모듈에 사용, 인스턴스 생성시 비용 감소, 의존성이 높아짐 / 미리 생성된 하나의 인스턴스 기반으로 독립적인 인스턴스 생성이 어려워 TDD(Test Driv..

[ codeit ] 컴퓨터 아키텍처 (2)

CPU (Central Processing Unit) 1강. 프로그램을 실행하는 칩, CPU 컴파일러, 인터프리터 : 고수준의 언어를 컴퓨터 언어로 바꿔줌 CPU : 머신코드를 실행하는 곳, 중앙처리장치, 컴퓨터 성능에 영향 instruction : cpu 동작의 최소단위 (ex. 8자리의 0, 1 조합) 2강. 하나의 칩에 여러기능 넣기 opcode(operation code) : 기능을 알려주는 코드, + - x /, 컴퓨터는 6자리 내외의 opcode 를 가짐, 하나의 칩에 동시 여러기능을 넣기위한 신호 ALU(Arithmetic logit unit) : 수학연산기능을 할 수 있는 칩 instruction : 100101 0110110010 opcode : 100101 3강. CPU와 저장장치 I ..

[ codeit ] 컴퓨터 아키텍처 (1)

컴퓨터 들여다보기 1강. 컴퓨터의 구조, 꼭 알아야할까? 애플리케이션 개발자(애플리케이션 소프트웨어) vs 시스템 개발자(시스템 소프트웨어_ 운영체제, 컴파일러) 애플리케이션 - 시스템 소프트웨어 - 하드웨어 2강. 컴퓨터의 겉모습 살펴보기 메인보드 : 컴퓨터에 들어가는 부품들을 연결할 수 있게하는 판, 마더보드, 슬롯, 이어폰단자, usb 포트 등이 장착되어 있음 CPU : 마더보드에 부착해서 사용, 컴퓨터의 모든 계산이 이루어짐, 컴퓨터의 뇌 하드디스크 : 데이터를 저장하는 공간, Hdd(용량이 크고 속도가 느림), ssd(용량이 작고 속도가 빠름), 컴퓨터를 꺼도 데이터가 보관되는 공간 RAM : 컴퓨터가 켜진 동안 보관할 데이터 저장, 데이터 가져오기, 수정이 빠른편, 하드디스크에 있는 데이터를 ..

[ codeit ] 컴퓨터개론 - 소프트웨어 이해하기

컴파일러와 인터프리터 1강. 다양한 애플리케이션 애플리케이션 : 사용자가 직접 사용하는 프로그램, end user 컴퓨터, 모바일, 가전제품, 계산기 등 2강. 소프트웨어 퀴즈 I 3강. 애플리케이션을 만드는 프로그램 프로그래밍 코드를 실제 작동하는 프로그램으로 바꿔주는 소프트웨어인 컴파일러와 인터프리터 4강. 프로그래밍 언어의 번역기, 컴파일러 개발자 // 사용자 고수준의 프로그래밍 언어(1) ---> machine code(10) // ----> 사용자 컴퓨터 ---> 작동 compiler(프로그래밍 언어의 '번역기') 컴파일러의 단점 : 빠르게 개발할 수 없다 (machine code를 사람이 이해할 수 없어 간단한 수정에도 컴파일 과정이 필요해서) 5강. 실시간 코드 실행기, 인터프리터 컴파일러 ..

[ codeit ] 컴퓨터개론 - 프로그래머의 세계 이해하기

프로그래밍의 다양한 분야 1강. 컴퓨터 사이언스의 기본기 객체지향 프로그래밍, 알고리즘, 자료구조 컴퓨터 구조, 운영체제, 컴파일러, 웹개발, 데이터베이스, 네트워크 2강. 소프트웨어 공학 : 소프트웨어로 제품, 서비스를 만드는 방법에 대한 학문 기획: 어떤 것을 만들지 정하는 단계 개발: 기획한 것을 만드는 단계 테스트: 개발이 기획대로 잘 되었는지 확인하는 단계 배포(출시): 개발된 제품, 서비스를 사용자가 사용하는 단계 유지, 보수: 출시된 서비스를 변화시키는 단계 3강. 프로세스 관리 폭포수(waterfall) 방식 : 각 단계를 완료하고 다음단계로 넘어가는 방식, 각 단계를 한번에 완벽히 끝내기 어려움 수정사항이 많이 생길 가능성이 높고, 개발자들이 수정 사항을 반영하기 힘듦, 각 단계가 복잡하..

[ codeit ] 컴퓨터개론 - 프로그래밍 언어 이해하기

프로그래밍 언어 살펴보기 : 기본적인 이해/ 컴퓨터, 프로그램, 프로그래밍 언어의 관계/ 역사 1강. 프로그래밍을 배우기 힘든 이유 2강. 프로그래밍 언어 이해하기 토픽 소개 3강. 프로그래밍 언어란? 컴퓨터 : 일을 대신해주는 기계 프로그램 : 컴퓨터가 어떤 일을 해야할지 알려주는 설명서 프로그래밍 언어 : 설명서를 쓰기 위해 사용하는 언어 4강. 프로그래밍 퀴즈 5강. 프로그래밍 언어의 발전 초창기 프로그래밍 언어 : 단순 숫자 계산 파스칼 계산기 현대 프로그래밍 언어 : 숫자 계산, 번역, 채팅 등 프로그래밍 언어를 분류하는 두가지 기준 : 언어의 종류, 차이, 흐름 1강. 프로그래밍 언어가 너무 많아요! 프로그래밍 언어의 구성 요소: abc,123, (){}, "", ., ; Python name..

반응형