반응형

전체 글 18

전산직렬 필수 CS- 정렬기법 (선택, 삽입, 버블, 퀵, 힙), 배열 스택 큐 리스트, 트리, 힙, 폭포수, 애자일 등 이론 내용

1. 정렬 기법 선택 정렬 : 정렬되지 않은 데이터들에 대해 가장 작은 데이터를 찾아 가장 앞의 데이터와 교환해나가는 방식, 시간 복잡도 O(N^2) 삽입 정렬 : 정렬되지 않은 임의의 데이터를 정렬된 부분의 적절한 위치에 삽입해가며 정렬하는 방식. 시간 복잡도 O(N^2), 정렬이 끝난 리스트를 넣어줄 경우 O(n) 버블 정렬: 큰 값을 한칸씩 오른쪽으로 이동시키는 알고리즘입니다.시간복잡도 O(n^2) 병합 정렬: 분할정복방식이며, 데이터를 계속 절반으로 나누고 최종적으로 합치면서 정렬이 이루어는 방식입니다. 배열의 크기를 N이라 두면 logN의 단계가 만들어지고, 각 단계마다 N번의 원소들을 비교하기 때문에 O(NlogN)의 시간복잡도를 가집니다. 퀵정렬 : 기준키를 중심으로 좌우로 정렬하는 방식이며..

IT/CS 2022.05.29

개발 CS 지식 기술 면접 정리 (4) - 자바

클래스, 객체, 인스턴스 개념 1. 클래스 : 객체를 만들어 내기 위한 설계도, 툴. 연관되어 있는 변수와 메서드의 집합 2. 객체 : oop 관점에서 클래스의 타입으로 선언되었을 때 객체라 부름, 모든 인스턴스를 대표하는 포괄적인 이름을 가짐, 클래스에 선언된 모양 그대로 생성된 실체. 3. 인스턴스: 객체가 메모리에 할당되어 실제 사용될 때 ‘인스턴스’라 부름, 구체적인 실체. 1) 자바 특징 ➀ 이식성이 높음 (서로 다른 실행 환경을 가진 시스템 간에 프로그램을 옮겨 실행 O) - 자바 실행 환경 (JRE:Java Runtime Environment)이 설치되어 있는 모든 OS 실행 가능 ➁ 객체 지향 언어 : 캡슐화, 상속, 다형성 기능 ➂ 함수적 스타일 코딩 지원 : 람다식 ➃ 메모리 자동 관리..

IT/CS 2022.05.28

개발 CS 지식 기술면접 질문 정리 (3)- 파이썬, 데이터베이스, 비동기 프로그래밍, react native

1. 파이썬 - 파이썬 프로그램은 기본적으로 하나의 쓰레드에서 실행됨. 하나의 메인 쓰레드가 파이썬 코드를 순차적으로 실행함. 코드를 병렬로 실행하기 위해선 별도의 쓰레드를 생성해야하는데 이를 위해 threading 모듈 사용. 2. 데이터베이스 1) SQL, Non- SQL 이 있고, 나는 관계형 DB만 사용해봄 (RDB) 2) ORM: 객체와 관계를 매핑(연결) 해주는 개념, 관계형 데이터베이스에 제약을 최대한 받지 않으면서 객체를 클래스로 표현하는 것과 같이 RDB를 객체처럼 쉽게 표현 또는 사용하자는 것. 3. 비동기 프로그래밍 (특히 자바 스크립트) = 쓰레드나 프로세스가 여럿이 돌고 있다. - 자바 스크립트: 웹브라우저나 node.js의 자바스크립트 엔진에서 실행, - 시간이 걸리는 작업을 처..

IT/CS 2022.05.27

웹 프로그래머 단골 기술 면접 질문 (2)

10. Primitive type과 Reference type ∎ Primitive type - 변수에 값 자체를 저장 정수형 byte, short, int, long 실수형 float, double 문자형 char 논리형 boolean * Primitive type은 Wrapper Class를 통해 객체로 변형할 수 있다. ∎ Reference type - 메모리상에 객체가 있는 위치를 저장 종류 - Class, Interface, Array 등 11. Wrapper Class Primitive type으로 표현할 수 있는 간단한 데이터를 객체로 만들어야 할 경우가 있는데 그러한 기능을 지원하는 클래스 12. 접근제한자(public > protected > default > private) public..

IT/CS 2022.05.26

웹 프로그래머 단골 질문, 기술 면접 모음 (1) - java, oop, Overloading vs Overriding, 프레임 워크 등

1. JAVA의 특징 a. 자바가상머신(JVM)만 설치하면 컴퓨터의 운영체제에 상관없이 작동한다. (즉, 운영체제에 독립적) b. 기본 자료형을 제외한 모든 요소들이 객체로 표현 c. 객체 지향 개념의 특징인 캡슐화, 상속, 다형성이 잘 적용된 언어 d. Garbage Collector를 통한 자동적인 메모리 관리 e. 멀티쓰레드(Multi-thread)를 지원 2. OOP(객체지향 프로그래밍) - 데이터를 객체로 취급하여 프로그램에 반영한 것이며, 순차적으로 프로그램이 동작하는 기존의 것들과는 다르게 객체와 객체의 상호작용을 통해 프로그램이 동작하는 것을 말한다. -OOP 특징- a. 객체지향 프로그래밍은 코드의 재사용성이 높다. b. 코드의 변경이 용이 c. 직관적인 코드분석 d. 개발속도 향상 e...

IT/CS 2022.05.25

IT개발/ 서버 직무 기술면접 질문 정리 - rest api, was, JSP, Servlet, MVC패턴, get/post 방식 등

1) REST API - HTTP URI를 통해 자원을 명시하고 HTTP 메소드 (POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미 cf) 개발자들 사이에서 협업을 위해 통용되는 규칙 2) 웹 서버, WAS(Web application server) ➀ 웹 서버 : 클라이언트가 서버에 페이지를 요청하면 요청을 받아 정적 컨텐츠 (.html, .css)를 제공하는 서버, 클라이언트에서 요청이 올 때 가장 앞에서 요청에 대한 처리를 함. ➁ WAS : 동적 컨텐츠를 제공하기 위해 만들어진 애플리케이션 서버( DB 조회, 로직 처리) - JSP,Servlet 구동 환경 제공, 컨테이너, 웹컨테이너, 서블릿 컨테이너라고도 부름. => 둘의 차이는..

IT/CS 2022.05.24

개발 CS 지식 기술면접 질문 정리 (2)- Iterator, 컴파일러, 인터프리터, 프로세스, 스레드 등

5) Iterator : 컨테이너에 저장되어 있는 모든 원소들을 전체적으로 훑어나갈 때 사용하는, 일종의 포인터와 비슷한 도구 6) 컴파일러 VS 인터프리터 ➀ 컴파일러 - PL를 Runtime 이전에 기계어로 해석하는 작업 방식. 런타임 이전에 Assembly 언어로 변환하기에 구동 시간이 오래 걸리지만, 구동 후에는 매우 빠르게 작동. ( C, C++) - OS 및 빌드 환경에 종속적임. - 구동 시 코드와 함께 시스템으로부터 메모리를 할당받으며 할당받은 메모리를 사용. ➁ 인터프리터 - 런타임 이후에 Row 단위로 해석하며 프로그램을 구동시킴. - PL을 기계어로 바꾸지 않고 중간 단계를 거친 뒤, 런타임에서 즉시 해석하기 때문에 실제 실행시간은 느림. - 단 런타임에 실시간 디버깅 및 코드 수정이..

IT/CS 2022.05.23

개발 CS 지식 기술면접 질문 정리 (1) - 해시 테이블, 정렬 알고리즘, 자료구조, 프로그래밍 방법론

1) 해시 테이블 - 데이터를 관리, 유지하는 자료구조. 삽입. 수정. 삭제에 대한 모든 시간 복잡도 O(1) - 데이터들이 해시함수에 의해 분류됨. 분류된 데이터들은 규칙에 의해서 해시 테이블안에 들어가게 되는데, 이과정을 해싱이라 함. - 해시: 임의의 데이터에 대해 고정된 길이의 데이터로 매핑하는 함수 - 해시 충돌이 일어날 경우 1) 체이닝 기법과 (리스트 같은 자료구조를 이용하여 해시값이 다음 해시값을 가리키게 이어 붙임.) 2) linear probing (충돌할 경우 다음 버켓으로 넘어가며 빈 자리를 찾음.) 2) 정렬 알고리즘 ➀ 선택정렬 : 가장 작은 것을 선택해서 제일 앞으로 보내는 알고리즘. - min 값을 두고, 0번째 인덱스부터 끝까지 각각 n-i번 비교하여 작은 값을 찾으면 mi..

IT/CS 2022.05.22

간장계란밥에 대하여 feat. 술주정

오늘 아점으로 먹은 음식. 간장계란밥. 뜨겁게 달궈진 팬위에, 기름을 넉넉히 붓고 계란을 톡! 까올린다. 튀겨지듯 구워졌을때, 불을 끄고 빈곳에 간장을 한숟가락 반 붓는다. 타기전 계란에 향을 입히고, 미리 데워놓은 밥위에 올린다. 그럼 풍미가 장난 아닌 이 간장계란밥! 미리 만들어둔 감자채볶음도 조금 올렸다. 너무맛있는 간장계란밥. 이렇게 간단히 한끼를 해결할수있다니 자취생들이 좋아하는 이유를 알것같다는 생각이 들었다. 나는 사실 간장계란밥을 자취하기전에 딱히 먹지않었었다. 먹을게 많은데 굳이 간계밥을 먹는다니. 이해가 가지않았는데 자취를하고나니 이처럼 맛있고 간편한 식사가 없다는것을 알게되었다. 간장계란밥처럼 간단하지만 저렴하고 완벽한 그러한 식사가 또 있을까 !! 그렇다. 나는 지금 취했다. 그런데..

Daily/끄적끄적 2022.05.21

트래픽 공격의 유형 - TCP, UDP, ICMP, Smurf 플러딩 공격

∎ TCP 플러딩 공격 - 연결형 프로토콜인 TCP의 취약점 이용. ( SYN, ACK, RST 플러딩 공격) ★1. TCP SYN 플러딩 공격 - 3방향 핸드쉐이크 절차에 의해 연결을 설정하는 TCP 프로토콜의 취약점을 이용한 공격 - 공격 대상 시스템의 동시 가용 사용자 수를 점유하여 정당한 사용자가 접속할 수 없게 함. ➀ 해커가 시스템 A의 IP 주소로 위장하여 피해 시스템으로 SYN을 보내 연결을 요청. ➁ 피해 시스템이 시스템 A에게 연결 허락 ➂ 연결을 요청하지 않은 시스템 A는 응답 X ➃ 과정이 반복되면서 피해 시스템은 오버플로우 발생 ➄ 서비스를 원하는 시스템 B: 피해 시스템에 연결 요청 ⑥ 피해 시스템이 시스템 B의 연결 요청에 응답 못함. 근원지 포트 번호 목적지 포트 번호(276..

IT/CS 2022.05.20
반응형