객체 지향적 Javascript (MicroSoft - 2012)
- npm
- webpack
- babel
- gulp
등 라이브러리에 대한 지식이 요구됨
= ECMAScript + Client API(BOM, DOM, Dnd, web storage) or ServerAPI(Node.js)
▶ JQuery로 해결 ▶ HTML5 개발 ▶ ECMAScript가 발전됨 (🌟ES6)
1) 변수
- var, let, const 차이
- hoisting : JS Engine의 작동 방식으로 인해 hoisting
- immutable vs mutable
- primitive type value vs object
- literal이란?
- data type 종류와 특징
2) 함수
- 함수 정의 4가지
- 함수 선언문
- 함수 표현식
- Function 생성자
- Arrow Function (ES6)
- 함수의 hoisting
- IIFE (즉시 실행 함수, Immedietly Invoke Function Expression)
- 중첩 함수
- callback 함수, 고차 함수(High-order function)
3) Scope
- function level scope
- block level scope
- 🌟 lexical scope
- 전역 변수 (가능한 한 사용하지 않는 것이 좋은데 그 이유는?)
4) 생성자 함수
- 일반 함수와 생성자 함수
- 생성자 함수 : instance(객체)를 만들 수 있는 함수
- Built-in 생성자 함수
- 생성자 함수 정의
- constructor vs non-constructor
5) 일급 객체 (First-class citizen)
- 일급 객체란?
- 함수 = 일급 객체
- 함수 객체의 기본 property
- 함수는 객체임 -> 여러 개의 property를 가지는데 모든 함수는 name, length ... 을 가진다.
prototype
,__proto__
6) Prototype (for Inheritance)
- prototype chain 을 통해 상속하는 방법
- prototype을 변경할 수 있음 (동적 상속 가능)
7) Closure (🌟)
- Closure의 개념과 사용 방법, 효과
- lexical context
8) Class
9) Array
- 특징(dense array X, 스파서 어레이??), 자주 사용되는 method (map, filter, splice, push, ...)
1) Class
2) Instance
3) contructor
ex. 다음 중 constructor의 특징이 아닌 것은?
4) JVM 메모리 구조 (Method Area, Stack, Heap)🌟
- 각각의 메모리에 어떤 데이터가 언제 들어가는지
5) static keyword
- 어디에 사용하고 어떤 동작을 하는지
6) method overloading
7) package, import
8) Access modifier
:public, protected, default, private
- private : information hiding
9) Inheritance
상속 관계에 있을 때 객체 생성 : 객체 생성 과정과 메모리 구조 변화
- super() : 상속 관계에 있는 class의 instance를 만들기 위해 호출 가능해야 함, 상위 클래스의 생성자
- this()
- method overriding
- is-a relationship : 상위 클래스 타입으로 class 형변환 가능(polymorphism)
- final keyword의 의미
- 시나리오를 통해 이해
- abstract keyword의 의미
- interface 필요한 이유, 사용 방법
- dynamic binding
주요 Class
Object Class
- 자바의 모든 class의 ..
String Class
- 특별한 특징 : literal (String pool)
- 다른 클래스의 객체들은 new 키워드로 만드는데 얘만 다름
자료구조 Generic
- List
- Map
- Set
Exception
try-catch
Thread
- process, multi processing, multi threading
- 만드는 방법
Deamon Thread
상태 전이도
method
- sleep()
- interrupt() : exception을 발생시켜서 interrupt
- yield()
- join()
동기화 (공용 객체의 동기화)
- 의미, 필요한 이유, 조심해야 할 사항
1) synchronized - 동기화 블록, 동기화 메서드
- critical sector(임계 구역)
2) wait(), notify() : 공용객체 동기화를 위핸 method
notifyAll()
Java IO
- 일반 IO : 쉽게 사용 가능(기본적인 입출력 방법), 효율이 떨어짐(단방향 통신이기 때문에 입력과 출력에 대한 stream이 각각 필요)
- NIO : channel을 이용해 stream 하나로 입출력이 가능함 (복잡하지만 효율 상승)
Java Network
(code로 socket, ServerSocket을 이용해 c/s 구조로 채팅 구현)
- IP
- port
- protocol
...
JDBC
- pure JDBC : 쉽지만 관리 어렵고 효울이 높지 않음
1) Driver Loading
2) DBMS 연결
3) statement
4) query 실행
5) resultset 처리
6) 자원 해제
단계별로 어떤 작업을 수행하는지 알아둘 것
- spring에서의 DB 처리 : Mybatis, Hibernate(ORM)
- connection pool : 수동 설정으로 사용했었으나 편리하게 사용 가능
DAO를 만들어 시나리오를 이용해 구조 변경
SoC(Separation of Concern)
- 관심사의 분리 (관련있는 것끼리 묶어 분리시킴)
Refactoring
- method extraction 기법 존재
Inheritance 문제점
- Template Method Pattern, Factory Method Pattern
Interface 등장
- DI(Dependency Injection) : Object 의존 관계 생성
Terminology 용어
C/S 구조
Servlet
- Dynamic web 구현
Request
- Get
- Post
HttpSession
JSP
- servlet 결과를 쉽게 출력하는 방법
▶ MVC Pattern Web Program 구현
Transaction