ssung_항해일지/CS 지식 및 기술면접 22

Stack & Queue

Stack (스택) 클래스 Stack 클래스는 List 컬렉션 클래스의 Vector 클래스를 상속받아, 전형적인 스택 메모리 구조의 클래스를 제공 스택 메모리 구조는 선형 메모리 공간에 데이터를 저장하면서 후입선출 (LIFO - Last In First Out)의 시멘틱을 따르는 자료 구조 즉, 가장 나중에 저장된(push) 데이터가 가장 먼저 인출(pop)되는 구조 스택은 단순히 stack만 import 해주어도 사용 가능 스택에 원소를 삽입하는 함수로는 push()가 있고, peek()을 통해 다음에 빼낼 원소를 조회할 수 있고, pop()을 통해 원소를 빼낼 수 있음 import java.util.Stack; Stack stack = new Stack(); // 스택 객체 생성 stack.push(..

Exception(예외) 처리

Exception (예외) 처리 프로그램 실행 시 발생할 수 있는 예기치 못한 예외의 발생에 대비한 코드를 작성하는 것 자바에서 코드를 예외 처리 한다고해서 프로그램의 예외 상황 자체를 막을 수는 없음 목적 예외 발생으로 인해 실행 중인 프로그램의 갑작스런 비정상적인 동작 방지 에러를 잡고 복구를 시도하거나 회피식으로 처리하여 프로그램이 정상 실행상태를 유지할 수 있도록 하는 것 try - catch 문 예외처리를 위한 try, catch문의 기본 구조 try 블록에는 예외발생 가능 코드가 위치하고 오류 발생 시, 오류 종류(예외 클래스)에 맞는 catch문으로 가서 catch 블록 안에 있는 코드 실행 만약 오류가 발생하지 않으면 catch 문은 실행하지 않음 catch 문에 예외클래스 타입과 변수 e..

RDB & NoSQL

들어가기 전 기본 정보 Database - 컴퓨터 시스템에 전자 방식으로 저장되고 구조화된 정보 또는 데이터의 체계적인 집합을 의미 DBMS (DataBase Management System) - 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해주고 데이터 베이스를 관리해주는 소프트웨어 SQL (Structured Query Language) - 관계형 데이터베이스 관리 시스템의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어. 관계형 데이터베이스 관리 시스템에서 자료의 검색과 관리, 데이터베이스 스키마 생성과 수정, 데이터베이스 객체 접근 조정 관리를 위해 고안 RDBMS - Relational DataBase Managment System의 약자로 관계형 데이터베이스 관리 ..

오버로딩과 오버라이딩

오버로딩과 오버라이딩의 공통점은 인스턴스 멤버인 메소드를 재정의 또는 확장하는 개념이다 간단하게 차이점을 말하자면, 오버로딩 (overloading)은 하나의 클래스 내부에서 확장하는 개념이고, 오버라이딩 (overring)은 부모 클래스의 상속을 받은 자식 클래스에서 확장하는 개념이다. 오버로딩 (overloading) - 오버로딩은 같은 클래스 내부에서 메소드를 확장하기 위한 개념 - 오버로딩 충족 조건 메소드의 이름이 일치해야 한다 메소드 매개변수의 개수 또는 타입이 달라야 한다 (매개변수의 개수가 같다면 타입이, 타입이 같다면 개수가 달라야 함) 메소드의 return 타입이 달라야 한다 예제 - Car 클래스에 modelNum을 대입하여 저장 class Car { int modelNum; publ..

절차지향, 객체지향, 함수형 프로그래밍

절차지향 프로그래밍 (Procedural Programming) - 일이 진행되는 순서대로 프로그래밍하는 방법 장점 코드의 가독성이 좋음 컴퓨터의 처리구조와 비슷해 실행 속도가 빠름 단점 각각의 코드가 순서에 민감하게 연결 되어있어, 유지보수 및 분석이 어려움 객체지향 프로그래밍 (Object Oriented Programming) - 모든 데이터를 객체 (Object)로 취급 - 객체가 처리 요청을 받았을 때, 객체 내부에 있는 기능을 사용해 처리 - 서로 연관되어 있는 함수와 변수들을 객체라는 것을 그룹핑 - 객체에 들어있는 함수들을 호출해서 다른 함수들과 분리/구분해줌 특징 추상화 : 공통적인 속성이나 기능을 하나로 묶어 이름을 정의함 캡슐화 : 데이터를 은닉하고 데이터 기능을 노출시키지 않음 (보..

Stack & Queue / Array & LinkedList

Stack & Queue Stack 책을 쌓는 것처럼 쌓아 올린 형태의 자료구조 즉, 후입선출(LIFO, Last In First Out) 방식의 자료구조 시간 순서에 따라 데이터를 쌓아올리는 자료구조 가장 마지막에 삽입된 데이터가 가장 먼저 삭제되는 특징 Queue 사전적 의미로는 “줄을 서서 기다린다.” 라는 의미 먼저 들어온게 먼저나가는 자료구조 선입선출(FIFO, First In First Out) 데이터 삽입, 삭제가 다른 방향에서 이루어짐 삭제 연산만 수행되는 곳은 프론트(front) 디큐(dnQueue)라고 부름 삽입 연산만 수행되는 곳은 리어(rear) 인큐(enQueue)라고 부름 가장 먼저 삽입된 데이터가 가장 먼저 삭제되는 특징 Array & Linked List Array 연속된 메..

Web Server 와 WAS

웹 서버 (Web Server)란? 말 그대로 작성된 html 페이지 등을 네트워크망에 종속되지 않고, 웹 서비스를 할 수 있도록 하는 어플리케이션 HTTP 프로토콜을 기반으로 클라이언트가 웹 브라우저에서 어떤 요청을 하면 그 요청을 받아 정적 컨텐츠를 제공 (HTML 문서, CSS, 이미지, 파일 등 즉시 응답이 가능한 컨텐츠) 웹 서버 (소프트웨어) : 클라이언트로부터 HTTP 요청을 받아들이고, HTML 문서와 같은 웹 페이지에서 흔히 찾아볼수 있는 자료 콘텐츠에 따라 HTTP에 반응하는 컴퓨터 프로그램 웹 서버 (하드웨어) : 위에 언급한 기능을 제공하는 컴퓨터 프로그램을 실행하는 컴퓨터 Apache, NginX 등이 존재 웹 어플리케이션 서버 (Web Application Server)란? 웹 ..

TCP와 UDP

TCP와 UDP는 데이터를 보내기 위한 프로토콜이다. TCP 특징 연결 지향 방식 3-way handshaking 과정을 통해 연결을 설정, 4-way handshaking 을 통해 해제 3-way handshaking : 목적지와 수신지를 확실히 하여 정확한 전송을 보장하기 위한 세션 수립 과정 흐름 제어 및 혼잡 제어 높은 신뢰성 보장 UDP보다 속도가 느림 전이중 (Full-Duplex), 점대점 (Point to Point) 방식 TCP 서버 특징 서버 소켓은 연결만을 담당 연결과정에서 반환된 클라이언트 소켓은 데이터의 송수신에 사용 서버와 클라이언트는 1대1로 연결 스트림 전송으로 전송 데이터의 크기가 무제한 패킷에 대한 응답을 해야하기 때문에 성능이 낮음 (시간 지연, CPU 소모) 패킷 : ..

트랜잭션

트랜잭션이란? - DB에서 데이터의 무결성과 일관성을 보장하기 위한 최소 작업 단위 - 일련의 작업을 하나의 논리적인 작업 단위로 묶어서 처리 특징 원자성(Atomicity) : 트랜잭션 내에서 수행되는 모든 작업은 전체 성공 또는 전체 실패해야 한다. 즉, 트랜잭션이 실행되는 동안 어떤 이유로든 작업이 중단될 경우, 이전 상태로 롤백된다. 일관성(Consistency) : 트랜잭션이 수행되기 전과 후의 DB 상태가 일관성을 유지해야 한다. 즉, 트랜잭션이 수행되기 전에 정의된 제약 조건이나 규칙이 트랜잭션 수행 후에도 만족되어야 한다. 격리성(Isolation) : 트랜잭션 수행 중에는 다른 트랜잭션에 의해 영향을 받지 않도록 격리되어야 한다. 이를 통해, 다른 트랜잭션이 동시에 실행되는 경우 발생할 ..

728x90