공부/Computer Science 5

[SQL] 코딩테스트를 위한 쿼리문 및 문법 정리

SELECT 찾을 컬럼 COUNT와 같은 함수를 사용할 때는 AS로 컬럼 이름을 정할 수 있음 ORDER BY order by 뒤에 우선순위가 있는 열을 적음 다중정렬 : 순서대로 정렬의 우선순위를 의미하며 2가지 이상의 필드를 조합하여 정렬할 수 있음 -- NAME 오름차순, 같을 경우 DATE 내림차순으로 ORDER BY NAME, DATE DESC GROUP BY 집계함수와 함께 사용되어 결과를 지정한 컬럼에 따라 그룹으로 묶을 수 있음 -- 각 도시에 사는 사람이 몇명인지 계산하여 출력 SELECT COUNT(id) FROM customers GROUP BY country; LIMIT 결과 개수 제한 -- NAME 순으로 오름차순 정렬된 테이블 가장 위에서부터 2개의 레코드 결과만 가져옴 ORDE..

[CS 면접 대비 공부] 소프트웨어 공학

TDD(Test Driven Development) TDD : 테스트 주도 개발, "테스트가 개발을 이끌어 나간다" 우리는 보통 개발할 때, 설계(디자인)를 한 후 코드 개발과 테스트 과정을 거치게 된다. 하지만 TDD는 기존 방법과는 다르게, 테스트케이스를 먼저 작성한 이후에 실제 코드를 개발하는 리팩토링 절차를 밟는다. 반복적인 "검토"와 "고쳐쓰기"를 통해 좋은 글이 완성된다. 이런 방법을 소프트웨어에 적용한 것이 TDD 방식이다. 소프트웨어 또한 반복적인 테스트와 수정을 통해 고품질의 소프트웨어를 탄생시킬 수 있다. 장점 작업과 동시에 테스트를 진행하면서 실시간으로 오류 파악이 가능함 (시스템 결함 방지) 짧은 개발 주기를 통해 고객의 요구사항을 빠르게 수용 가능. 피드백이 가능하고 진행 상황 파..

[CS 면접 대비 공부] 데이터베이스

데이터베이스 풀 Connection Pool 클라이언트의 요청에 따라 각 어플리케이션의 스레드에서 데이터베이스에 접근하기 위해서는 Connection이 필요하다. Connection Pool은 이런 Connection을 여러 개 생성해 두어 저장해 놓은 공간(캐시) 또는 이 공간의 Connection을 필요할 때 꺼내 쓰고 반환하는 기법을 말한다. DB에 접근하는 단계 웹 컨테이너가 실행되면서 DB와 연결된 Connection 객체들을 미리 생성하여 pool에 저장한다. DB에 요청시, pool에서 Connection 객체를 가져와 DB에 접근한다. 처리가 끝나면 다시 Pool에 반환한다. Connection이 부족하면? 모든 요청이 DB에 접근하고 있고 남은 Connection이 없다면, 해당 클라이언..

[CS 면접 대비 공부] 네트워크

OSI 7계층 물리 계층 (Physical Layer) 네트워크의 기본 네트워크 하드웨어 전송 기술을 이룬다. 네트워크의 높은 수준의 기능의 논리 데이터 구조를 기초로 하는 필수 계층이다. 전송 단위는 Bit이다. 데이터 링크 계층 (Data Link Layer) 종단(Point to Point) 간 신뢰성 있는 전송을 보장하기 위한 계층으로 CRC 기반의 오류 제어와 흐름 제어가 필요하다. 주소 값은 물리적으로 할당 받는데, 이는 네트워크 카드가 만들어질 때부터 맥 주소(MAC address)가 정해져 있다는 뜻이다. 데이터 링크 계층의 가장 잘 알려진 예는 이더넷이다. 데이터 전송 단위는 Frame이다. 네트워크 계층 (Network Layer) 여러개의 노드를 거칠 때마다 경로를 찾아주는 역할을 하..

[CS 면접 대비 공부] 운영체제

운영체제 운영체제란 운영체제는 사용자에게 편리한 인터페이스 환경을 제공하고 컴퓨터 시스템의 자원을 효율적으로 관리하는 소프트웨어입니다. 운영체제의 구성 운영체제는 인터페이스(GUI)와 시스템 호출(System Call), 커널(Kernel)과 드라이버(Driver)로 구성됩니다. 이 중 사용자와 응용 프로그램에 인접하여 커널에 명령을 전달하고 실행 결과를 사용자와 응용 프로그램에 돌려주는 인터페이스와 운영체제의 핵심 기능을 모아놓은 커널로 구분됩니다. 운영체제의 역할과 목적 효율적인 자원 관리 안정적인 자원 보호 확장성 높은 하드웨어 인터페이스 제공 편리한 사용자 인터페이스 제공 커널과 인터페이스 커널(kernel)은 운영체제의 핵심 기능을 모아놓은 것이며, 인터페이스(interface)는 사용자와 응용..