[패스트캠퍼스 수강 후기] {코딩테스트인강} 100% 환급 챌린지 47회차 미션

2020. 12. 4. 23:05IT공부/자료구조&알고리즘 연습

1.    인터페이스

->일종의 추상클래스

->추상클래스처럼 추상메서드를 갖지만 추상클래스보다 추상화 정도가 높아

->추상클래스와는 달리 몸통 갖춘 일반 메서드 또는 멤버변수를 구성원으로 가질 수 없다

->기본적으로 추상메서드의 모음

->인터페이스는 구현과 상속을 모두 할 수 있다

public interface Walkable {

  void walk();

}

 

->구현부가 없으므로 인터페이스를 만든다면 반드시 구현하는 클래스를 만들어야 하며

-> 인터페이스를 구현하기로 한 클래스는 반드시 인터페이스에 명시되어 있는 추상메서드를 모두 구현해야 한다 만약 이를 구현하지 않으면 컴파일 에러가 발생

public class Dog implements Walkable {  // ...  @Override  public void walk() {    // ...  }}

-> 인터페이스를 사용하는 구체적인 클래스는 해당 인터페이스를 구현해야 한다

-> 인터페이스 사이에는 상속가능

-> 인터페이스 사용해 다중 상속 가능

-> 인터페이스 사이에서도 구체 클래스에서도 여러 인터페이스 구현 및 상속 가능

public interface Walkable {  void walk();} public interface Flyable {  void fly();} public interface Moveable extends Walkable, Flyable {}

인터페이스 사용 이유

-> 다형성 구현을 위해 사용

-> 같은 인터페이스를 구현하는 클래스들은 실행하는 객체가 인터페이스를 통해 다른 객체를 사용할 수 있도록 해 클래스간의 결합도를 낮추고 응집도를 높일 수 있어

2.    스크립트 언어 vs 컴파일 언어

-> 스크립트 언어 – python ruby PHP

컴파일 단계 없이 실행 단계에서 한 줄씩 기계어로 번역 후 , 실행되므로 컴파일 언어보다 실행이 느림

-> 컴파일 언어 – C  C++ JAVA

컴파일러를 통해 사전에 컴파일 되어 기계어 상태로 실행되므로 실행이 빨라

또한 컴파일 단계에서 전체 코드를 기계어로 변환할 때 최적화작업을 진행해 실행시간을 보다 빠르게 할 수 있어

3.    가비지 콜렉터

-> 메모리는 OS 가 관리

-> 모든 프로그램들은 OS위에서 돌아가

-> 그리고 프로그램이 실행되려면 당연 메모리가 있어야 한

[ OS ]

4.    프로세스 vs 스레드

프로세스

-> 운영체제로부터 자원을 할당받아 실행

-> 메모리에 올라와 실행되고 있는 프로그램 인스턴스

-> 운영체제로부터 시스템 자원을 할당 받는 작업 단위

 

-> 프로세스는 각각 독립된 메모리 영역을 할당받아

-> 기본적으로 프로세스당 최소 1개의 스레드를 가지고 있어

-> 각 프로세스는 별도의 주소 공간에서 실행

-> 한 프로세스는 다른 프로세스의 변수나 자료구조에 접근 불가

-> 한 프로세스가 다른 프로세스에 접근하려면 통신사용해야 함 ex) socket

스레드: 프로세스의 특정한 수행 경로

-> 프로세스 내에서 실행되는 여러 흐름 단위

-> 프로세스가 할당 받은 자원을 이용하는 실행 단위

 

-> 스레드는 프로세스 내에서 각각 STACK만 따로 할당받고 Code, Data, Heap 영역 공유

-> 스레드는 한 프로세스 내에서 동작되는 여러 실행의 흐름

 

 

 

5.     동기식 VS 비동기식

동기식 일처리

-> 요청에 대한 응답을 기다린 후 응답이 오면 다음 요청을 방식

-> 구성이 단순 & 순서대로 실행 가능 & 여러 일 동시에 수행하는 멀티스태킹은 불가

비동기식

-> 요청에 대한 응답을 기다리지 않고 다음동작을 진행

-> 동시에 여러 일을 수행 가능 일정 시간당 요청량이 많아질 경우 부하 발생

6.     DB에서 인덱스 사용 이유

-> 인덱스는 데이터를 논리적으로 정렬해서 검색과 정렬 속도를 높이기 위해 사용

-> 데이터 삽

7.     데이터베이스에서 이상 현상 종류

-> 삽입 이상

릴레이션에 데이터 삽입할 때 의도와 상관없이 원하지 않는 값들도 함께 삽입

-> 삭제 이상

릴레이션에 데이터 삭제할 때 의도와는 상관없는 값들도 함께 삭제하는 연쇄삭제

-> 갱신 이상

릴레이션에 튜플에 있는 속성값을 갱신할 때 튜플의 정보만 갱신되어 정보에 모순 생겨

8.     TCP  VS UDP

-> UDP는 비연결형 프로토콜 & 흐름제어 & 오류제어 X

TCP 처럼 종단간 연결설정, 흐름제어, 오류제어를 하지 않아

-> TCP는 연결형 프로토콜 & 흐름제어 & 오류제어

[ DB ]

용어정리

-> 테이블 : 행과 열로 이루어진 데이터 집합

-> = 튜플 = 레코드

-> = 도메인 = 속성 =Attribute

 

1.     DDL DML DCL

-> DDL: CREATE , ALTER, DROP

-> DML: SELECT , INSERT , DELETE , UDPATE

-> DCL: COMMIT, ROLLBACK, GRANT, REVOKE

 

2.    

-> 관계 데이터베이스에서 튜플을 식별하기 위해 사용하는 속성 & 속성의 집합

-> 데이터베이스 참조 또는 검색시 사용

 기본키 -후보키 중 선발

-> 테이블의 각 행을 고유하게 식별해주는 역할

-> null 값을 X

-> 고유한 값을 가져야 한다

-> 테이블에 기본키는 하나만 만들 수 있다

 

후보키

-> 테이블에서 각 튜플들을 구별하는 데 기준이 되는 하나 혹은 그 이상의 칼럼들의 집합

 

색인 =INDEX

-> 컴퓨터에서 내용을 미리 목록으로 만들어 놓고 찾고자 하는 내용을 검색하는데 시간을 줄이기 위한 것

-> 검색 성능을 향상시켜 요구자가 보다 빨리 정보에 접근할 수 있도록 정보의 소재 표시

 

트랜잭션  = Transaction

è DB 관리 시스템 또는 유사한 시스템에서 상호작용의 단위

è 원자성 일관성 고립성 영구성

 

CRUD

-> Create  = 생성 = INSERT

-> Read = 읽기  = SELECT

-> Update = 갱신 = UPDATE

-> Delete  = 삭제  = DELETE

 

 

[ Servlet & JSP ]

Java Servlet  

-> JAVA를 사용해 웹페이지를 동적으로 생성하는 서버 프로그램  = 서블릿

-> HTTP 프로토콜 서비스를 지원하는 javax.servlet.http.HttpServlet 클래스 상속해 개발

-> Servlet은 컨테이너에 의해 실행되고 관리

JSP VS 서블릿

-> JSP: HTML 문서안에 java 코드 포함   == MVC 안에서 VIEW 역할

-> 서블릿 : JAVA코드안에 HTML 포함 = 주로 MVC안에서 컨트롤러 역할

서블릿 컨테이너란

-> HTTP 요청을 받아서 Servlet을 실행 & 생명주기 관리

-> Servlet과 웹서버가 통신할 수 있는 방법 제공

-> 멀티 스레딩을 지원해 클라이언트의 다중 요청을 알아서 처리

 

1.     사용자가 URL을 클릭하면 HTTP Request를 서블릿 컨테이너에 보내

2.     서블릿 컨테이너는 HttpRequest HttpServletResponse 객체 생성

사용자가 요청한 URL분석해 어느 서블릿에 대한 요청인지 찾아

3.     만일 그 클래스가 서블릿 컨테이너에서 한번도 실행된 적이 없거나 현재 메모리에 생성된 인스턴스가 없다면 새로 인스턴스 생성하고 init() 메서드 실행해 초기화 한뒤 스레드 하나 생성

init ( ) – 서블릿에 메모리에 Load 되면 init() 메서드 수행

서블릿이 서비스하기 위해 필요한 초기화 작업 수행

한 번만 수행

JSON vs XML

공통점

-> 둘다 데이터를 저장하고 전달하기 위해 만들어져

-> 둘다 계층적인 데이터 구조

-> 둘다 XMLHttpRequest 객체를 이용해 서버로부터 데이터 전송받을 수 있습니다

 

차이점

-> JSON 종료태그 사용 X

-> JSON 구문은 XML 보다 더짧아

-> XML 특징

HTML의 한계를 극복할 목적으로 만들어져 단순성, 일반성 ,인터넷을 통한 사용가능성 강조

<MYbatis vs ibatis>

->   SQL에 기반한 데이터베이스와 자바 등을 연결시켜주는 역할하는 프레임워크

-> SQL문장을 분리해 별도의 XML 파일로 저장하고 이둘을 서로 연결

-> Mapper 파일에 있는 각 sql 명령어 들을 MAP 에 담아 저장하고 관리

 

강의에 대해 정확하게 알고 싶다면 

https://bit.ly/2FgOONG