분류 전체보기 79

코딩 테스트에서 자주 쓰이는 기본 문법들

기술면접을 위해 기초 CS에 대한 복습중이다. 공부한 내용 중 요점이나 나중에 기억해야할 부분을 정리해보려고 한다. 내가 아는 부분은 생략되어 있을 수 있고, 혹여나 틀린 부분이 있을 수도 있으니 이 글을 보고 '다른 사람'이 공부하기에는 도움이 되지 않을 수 있으니 주의! String 사용법 String 크기: s.length(); 혹은 s.size() String의 첫 문자: s.front(); String의 끝 문자: s.back(); String 찾기: s.find("aroma");라고 하면 aroma라는 단어가 나오기 시작하는 곳의 index를 반환 String 맨 뒤에 문자 추가하기: void push_back(char a); String 맨 뒤에 문자 삭제하기: s.pop_back(); St..

외국계 시험 대비 Summary

기술면접을 위해 기초 CS에 대한 복습중이다. 공부한 내용 중 요점이나 나중에 기억해야할 부분을 정리해보려고 한다. 내가 아는 부분은 생략되어 있을 수 있고, 혹여나 틀린 부분이 있을 수도 있으니 이 글을 보고 '다른 사람'이 공부하기에는 도움이 되지 않을 수 있으니 주의! 1. C++ templetes templete void swap(T& a, T& b) { //... } T가 int든, string이든 어느 타입이든 다 될 수 있다. generic programming의 특징을 구현할 수 있게 하는 게 templete이다. 2. Dynamic allocation int *array = new int[length]; // ... delete[] array; 3. Class access control ..

Study note/CS 2024.04.12

DS - Data Structure

기술면접을 위해 기초 CS에 대한 복습중이다. 공부한 내용 중 요점이나 나중에 기억해야할 부분을 정리해보려고 한다. 내가 아는 부분은 생략되어 있을 수 있고, 혹여나 틀린 부분이 있을 수도 있으니 이 글을 보고 '다른 사람'이 공부하기에는 도움이 되지 않을 수 있으니 주의! Stack & Queue Stack 2개로 Queue 구현하는 방법 enqueue용 stack, dequeue용 stack을 만들어서 구현한다. enqueue: 1st stack에 push dequeue: 1st stack에서 pop 후 2nd stack에 push, 이걸 반복한다. 주의할 점은 2nd stack이 완전히 비었을 때에만 1st stack의 첫 번째 값이 들어올 수 있다. Stack의 활용 시스템 스택 (프로그램 간의 ..

Study note/CS 2024.04.12

객체지향 프로그래밍 OOP

기술면접을 위해 기초 CS에 대한 복습중이다. 공부한 내용 중 요점이나 나중에 기억해야할 부분을 정리해보려고 한다. 내가 아는 부분은 생략되어 있을 수 있고, 혹여나 틀린 부분이 있을 수도 있으니 이 글을 보고 '다른 사람'이 공부하기에는 도움이 되지 않을 수 있으니 주의! OOP 장점: 재사용성, 생산성↑, 유지보수 용이, 디버깅 용이, 대형 프로젝트 함에 있어 분담 용이 5가지 키워드: 클래스&객체, 추상화, 캡슐화, 상속, 다형성 추상화: 공통의 속성이나 기능을 묶어 이름을 붙이는 것. Class 정의 다형성: 오버라이딩, 오버로딩(매개 변수 수나 타입을 달리하는 것) 객체지향 설계원칙(SOLID) Single Responsible Principle: 단일 책임 원칙. 클래스의 단 하..

Study note/CS 2024.04.12

디자인 패턴 2

기술면접을 위해 기초 CS에 대한 복습중이다. 공부한 내용 중 요점이나 나중에 기억해야할 부분을 정리해보려고 한다. 내가 아는 부분은 생략되어 있을 수 있고, 혹여나 틀린 부분이 있을 수도 있으니 이 글을 보고 '다른 사람'이 공부하기에는 도움이 되지 않을 수 있으니 주의! Facade 패턴 여러 객체를 만들고 작업하는 것을 facade(외벽)으로 감싸서 사용하는 방식 Templet-method 패턴 세부방식을 다양화하기 위함 Strategy와 다른 점: Overriding. 추상클래스의 method 절차는 바꿀 수 없음. 같은 method 절차를 따르는데 그 안 내용이 다름. 공통된 절차가 있을 때 Decorator 패턴 여러 옵션들을 필요에 따라 장착할 수 있게 하는 방식 abstract에서 상속 받..

Study note/CS 2024.04.12

디자인 패턴 1

기술면접을 위해 기초 CS에 대한 복습중이다. 공부한 내용 중 요점이나 나중에 기억해야할 부분을 정리해보려고 한다. 내가 아는 부분은 생략되어 있을 수 있고, 혹여나 틀린 부분이 있을 수도 있으니 이 글을 보고 '다른 사람'이 공부하기에는 도움이 되지 않을 수 있으니 주의! Singleton 패턴 setting처럼 object을 딱 하나만 생성해야할 때 이 패턴을 사용 생성자를 private으로 선언 => 다른 클래스에서 new로 생성 못하게 하기 위함 static으로 자기 자신의 객체 만들기: 정해진 공간에 하나만 생성하도록 구현 방법: 다른 클래스에서 get할 때 처음에만 new로 만들고, 다음부터는 만들어놓은 object을 get Strategy 패턴 Interface로 공통적인 기능을 만들 수 있..

Study note/CS 2024.04.12

네트워크

기술면접을 위해 기초 CS에 대한 복습중이다. 공부한 내용 중 요점이나 나중에 기억해야할 부분을 정리해보려고 한다. 내가 아는 부분은 생략되어 있을 수 있고, 혹여나 틀린 부분이 있을 수도 있으니 이 글을 보고 '다른 사람'이 공부하기에는 도움이 되지 않을 수 있으니 주의! HTTP의 GET과 POST 비교 GET: HTTP Request Message의 header 부분에 있는 url에 데이터가 담겨서 전송 크기에 제한이 있음. 보안이 필요한 것에는 적절하지 않음. Select적인 성향. 서버의 값을 변경하지 않음. POST: HTTP Message의 Body에 담겨서 전송 크기, 보안 면에서 GET보다 낫다. 서버의 값을 변경/추가 등 Handshake 연결 성립(3-way-handshake): 클라..

Study note/CS 2024.04.12

DB 데이터베이스

기술면접을 위해 기초 CS에 대한 복습중이다. 공부한 내용 중 요점이나 나중에 기억해야할 부분을 정리해보려고 한다. 내가 아는 부분은 생략되어 있을 수 있고, 혹여나 틀린 부분이 있을 수도 있으니 이 글을 보고 '다른 사람'이 공부하기에는 도움이 되지 않을 수 있으니 주의! 인덱스 (Index) 책 부록에 '찾아보기(index)'처럼 모든 변수 다 검색할 필요 없이 빠르게 조회 가능 해시 테이블 or B-Tree 구조로 되어 있다. 주로 B-Tree 해시 테이블로 하면 검색은 빠르지만($O(1)$), 등호 연산 밖에 되지 않아 순차 검색이 불가하다. B-Tree는 $O(NlogN)$이지만, 부등호 연산이 가능해서 순차 검색이 가능하다. 관계형 데이터베이스 vs 비관계형 데이터베이스 관계형: key와 va..

Study note/CS 2024.04.12

개발 상식

기술면접을 위해 기초 CS에 대한 복습중이다. 공부한 내용 중 요점이나 나중에 기억해야할 부분을 정리해보려고 한다. 내가 아는 부분은 생략되어 있을 수 있고, 혹여나 틀린 부분이 있을 수도 있으니 이 글을 보고 '다른 사람'이 공부하기에는 도움이 되지 않을 수 있으니 주의! RESTful API REST의 기본 원칙을 지킨 API 개발자들 사이에서 널리 알려진 약속. 어떤 URI에 어떤 Method를 사용할지 URI: 자료를 구조와 함께 나타내는 구분자. 리소스. 명사. 소문자 HTTP Method: 자원에 대한 행위. CRUD POST, GET, PUT/PATCH, DELETE TDD (Test-Driven Development) 새로운 기능을 추가하기 전에 테스트 코드를 먼저 작성 (TDD라는 걸 몰..

Study note/CS 2024.04.12

Operation System

기술면접을 위해 기초 CS에 대한 복습중이다. 공부한 내용 중 요점이나 나중에 기억해야할 부분을 정리해보려고 한다. 내가 아는 부분은 생략되어 있을 수 있고, 혹여나 틀린 부분이 있을 수도 있으니 이 글을 보고 '다른 사람'이 공부하기에는 도움이 되지 않을 수 있으니 주의! 시분할 시스템 CPU가 하나일 때 어떻게 스케줄링 하는지에 대한 방법론 중 하나 다중 프로그래밍의 장점 + 아주 짧은 주기로 분할함 ex) 리눅스(웹서버, DB 등)에 여러 User가 동시 접속을 해도 혼자 독점한 것처럼 느낀다. 다중 처리 시스템 (Multiprocessor) CPU가 여러 개일 때 (CORE) 대칭적 다중 처리 시스템: 모든 CPU가 동등한 준위 비대칭적 다중 처리 시스템: Master-slave처럼 준위가 다름 ..

Study note/CS 2024.04.12