- 4차 산업혁명
4차 산업혁명은 기업들이 제조업과 정보통신기술(ICT)을 융합해 작업 경쟁력을 제고하는 차세대 산업혁명을 가리키는 말이다. ‘인더스트리(Industry)4.0’이라고 표현되기도 한다.
사물 인터넷(internet of things)을 통해 생산기기와 생산품 간 상호 소통 체계를 구축하고 전체 생산과정의 최적화를 구축하는 것을 의미한다. 이전까지의 공장자동화는 미리 입력된 프로그램에 따라 생산시설이 수동적으로 움직이는 것을 의미했다. 하지만 4차 산업혁명에서 생산설비는 제품과 상황에 따라 능동적으로 작업 방식을 결정하게 된다. 지금까지는 생산 설비가 중앙집중화된 시스템의 통제를 받았지만 4차 산업혁명에서는 각 기기가 개별 공정에 알맞은 것을 판단해 실행하게 된다.
증기기관 발명(1차), 대량 생산과 자동화(2차), 정보기술(IT)과 산업의 결합(3차)에 이어 네 번째 산업혁명을 일으킬 것이라는 의미에서 붙여진 말이다.
스마트폰과 태블릿 PC를 이용한 기기 간 인터넷의 발달과 개별 기기를 자율적으로 제어할 수 있는 사이버물리시스템(CPS)의 도입이 이를 가능하게 하고 있다. 모든 산업설비가 각각의 인터넷주소(IP)를 갖고 무선인터넷을 통해 서로 대화한다.
- API(Application Programming Interface)
운영체제와 응용프로그램 사이의 통신에 사용되는 언어나 메시지 형식을 말한다.
API는 응용 프로그램이 운영체제나 데이터베이스 관리 시스템과 같은 시스템 프로그램과 통신할 때 사용되는 언어나 메시지 형식을 가지며, API는 프로그램 내에서 실행을 위해 특정 서브루틴에 연결을 제공하는 함수를 호출하는 것으로 구현된다. 그러므로 하나의 API는 함수의 호출에 의해 요청되는 작업을 수행하기 위해 이미 존재하거나 또는 연결되어야 하는 몇 개의 프로그램 모듈이나 루틴을 가진다.
- DBMS
데이터를 효과적으로 이용할 수 있도록 정리, 보관하기 위한 기본 소프트웨어. DBMS는 데이터베이스를 관리하기 위해 필요한 수행과정인 데이터의 추가, 변경, 삭제, 검색 기능을 집대성한 소프트웨어 패키지.
3-1. 관계형 데이터베이스(RDBMS)
관계형 데이터베이스는 일련의 정형화된 테이블로 구성된 데이터 항목들의 집합체로서, 그 데이터들은 데이터 베이스 테이블을 재구성하지 않더라도 다양한 방법으로 접근하거나 조합될 수 있다. 사용자와 관계형 데이터베이스를 연결시켜 주는 표준검색언어를 SQL이라고 하는데, SQL문장은 관계형 데이터베이스에 있는 데이터를 직접 조회하거나 또는 보고서를 추출하는데 사용된다.
- ERP(전사적자원관리)
ERP(Enterprise Resource Planning, 전사적자원관리)란 기업 내 생산, 물류, 재무, 회계, 영업과 구매, 재고 등 경영 활동 프로세스들을 통합적으로 연계해 관리해 주며, 기업에서 발생하는 정보들을 서로 공유하고 새로운 정보의 생성과 빠른 의사결정을 도와주는 전사적자원관리시스템 또는 전사적통합시스템을 말한다.
- MVC(Model-View-Controller)
모델-뷰-컨트롤러(Model-View-controller) 형식. 컴퓨터 소프트웨어 개발의 구조적 패턴
모델 : 비즈니스 영역의 상태 정보를 처리한다.
뷰 : 비즈니스 영역에 대한 프레젠테이션 뷰(즉, 사용자가 보게 될 결과 화면)를 담당한다.
컨트롤러 : 사용자의 입력 및 흐름 제어를 담당한다.
특징
로직을 처리하는 모델과 결과 화면을 보여주는 뷰가 분리되 흐름 제어나 사용자의 처리 요청은 컨트롤러에 집중
- O2O(Online to Offline)
O2O란 온라인(online)과 오프라인(offline)이 결합하는 현상을 의미하는 말이며, 최근에는 주로 전자상거래 혹은 마케팅 분야에서 온라인과 오프라인이 연결되는 현상을 말하는데 사용된다.
7 . SI(system integration)
기업이 필요로 하는 정보시스템에 관한 기획에서부터 개발과 구축, 나아가서는 운영까지의 모든 서비스를 제공하는 일
8. 객체지향프로그래밍(Objective-oriented Programming)
실세계의 현상을 컴퓨터상에 객체로 실형(모델화)함으로써, 컴퓨터를 자연스러운 형태로 사용하여 다양한 문제를 해결하기 위한 프로그램 기법. 여기에서 객체는 실체(데이터)와 그 실체와 관련된 동작(절차, 방법, 기능)을 모두 포함한다.
객체 지향은 시스템의 모듈화, 캡슐화를 촉진하여 복잡화, 거대화되는 소프트웨어를 사용하기 쉽고, 작성하기 쉬우며, 유지 보수하기 쉬운 방향으로 재구축하는 기법이다.
8-1. 상속
클래스는 기반클래스, 수퍼클래스 또는 부모 클래스 등의 기존 클래스로부터 속성과 동작을 상속 받을 수 있다. 그 결과로 생기는 클래스를 파생클래스, 서브클래스또는 자식클래스라고 한다. 상속을 통해 클래스들의 관계는 계층을 형성한다. 상속을 통해 자식클래스는 부모클래스이 속성과 동작을 사용할 수 있으며 재정의를 통해 기능을 확장시킬 수 있다.
8-2. 다형성(Polymorphism)
프로그램 언어의 다형성은 그 프로그래밍 언어의 자료형 체계의 성질을 나타내는 것으로, 프로그램 언어의 각 요소들(상수,변수,식,오브젝트,함수,메서드 등)이 다양한 자료형(type)에 속하는 것이 허가되는 성질을 가리킨다.
8-3. 캡슐화
객체의 자료와 행위를 하나로 묶고, 실제 구현 내용을 외부에 감추는 것. 캡슐화된 객체의 행위는 외부에서 볼 때는 실제가 아닌 추상적인 것이 되므로 정보 은닉(information hiding) 개념이 지켜진다.
8-4. 추상화
필요한 부분만을 표현할 수 있고 불필요한 부분을 제거하여 간결하고 이해하기 쉽게 만드는 작업. 이 기법은 복잡한 문제나 시스템을 이해하는데 중요한 요소이다.
9. 네트워크
1대 또는 그 이상의 컴퓨터를 연결하여 근거리나 원거리 통신을 제공하고 서로 연결된 요소들 간의 데이터 등을 전송하는 통신망을 말한다.
10. 디버깅(debugging)
오류 수정. 컴퓨터 프로그램의 잘못을 찾아내고 고치는 작업. 일단 작성된 프로그램들이 정확한가(즉 잘못 작성된 부분이 없는가)를 조사하는 과정.
- 라이브러리(library)
컴퓨터 이용의 효율화를 꾀하기 위해서 이용자가 필요에 따라서 사용하는 표준화된 프로그램 및 서브루틴의 모임을 말한다.
- 멀티태스킹(multitasking)
한 사람의 사용자가 한 대의 컴퓨터로 2가지 이상의 작업을 동시에 처리하거나, 2가지 이상의 프로그램들을 동시에 실행시키는 것을 말한다.
- 모듈(module)
프로그램을 내부적으로 하나의 종합된 동작을 하도록 작은 부분으로 분할한 것을 모듈
- 반응형 웹(Responsive Web)
디스플레이 종류에 따라 화면의 크기가 자동으로 최적화되도록 조절되는 웹페이지.
11. 부트스트랩(Bootstrap)
부트스트랩은 반응형 웹을 개발할 수 있는 프로트엔드 프레임워크로 HTML 및 CSS 기반의 디자인 템플릿을 제공하며 자바스크립트를 이용한 확장도 가능.
12. 빅데이터(Big data)
디지털 환경에서 생성되는 데이터로 그 규모가 방대하고, 생성 주기도 짧고, 형태도 수치 데이터뿐 아니라 문자와 영상 데이터를 포함한느 대규모 데이터를 말한다.
13. 사물인터넷
‘아이오티(IoT)’라 약칭하기도 한다. 인터넷을 기반으로 모든 사물을 연결하여 사람과 사물, 사물과 사물 간의 정보를 상호 소통하는 지능형 기술 및 서비스를 말한다.
14. 소켓과 소켓통신
소켓은 네트워크 부분의 끝 부분을 나타내며, 실제 데이터가 어떻게 전송되는지 상관하지 않고 읽기/쓰기 인터페이스를 제공한다. 소켓통신은 소켓(Socket)을 이용한 네트워크 통신을 의미.
15. 솔루션
사용자 요구에 적합하면서 특정한 형태의 컴퓨터 소프트웨어 패키지나 응용프로그램과 연계된 문제를 처리해주는 하드웨어 또는 소프트웨어를 의미한다. 솔루션은 사용자가 하드웨어, 소프트웨어, 서비스, 응용프로그램, 파일형식, 회사, 상표명, 운영체제 등을 일일이 구별해야 하는 어려움을 겪지 않고 원하는 작업을 가능하게 해준다.
16. 스프링 프레임워크(Spring Framework)
스프링 프레임워크는 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크로서 간단히 스프링(Spring)이라고도 불린다. 동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공한다.
스프링의 특징
1) 경량 컨테이너로서 자바 객체를 직접 관리.
2) 스프링은 POJO(Plain Old Java Object)방식의 프레임워크이다. 일반적인 J2EE 프레임워크에 비해 구현을 위해 특정한 인터페이스를 구현하거나 상속을 받을 필요가 없어 기존에 존재하는 라이브러리 등을 지원하기에 용이하고 객체가 가볍다.
3) 의존성 주입(DI : Dependency Injection)을 지원한다. 각각의 계층이나 서비스들 간에 의존성이 존재할 경우 프레임워크가 서로 연결시켜준다.
4) 관점 지향 프로그래밍(AOP : Aspect-Oriented Programming)을 지원한다. 따라서 트랜잭션이나 로깅, 보안과 같이 여러 모듈에서 공통적으로 사용하는 기능의 경우 해당 기능을 분리하여 관리할 수 있다.
5) 영속성과 관련된 다양한 서비스를 지원하다. JTA, myBatis, Hibernate 등 데이터베이스 처리 라이브러리와 연결할 수 있는 인터페이스를 제공한다.
6) 확장성이 높다. 스프링 프레임워크에 통합하기 위해 간단하게 기존 라이브러리를 감싸는 정도로 스프링에서 사용이 가능하기 때문에 수많은 라이브러리가 이미 스프링에서 지원되고 있고 스프링에서 사용되는 라이브러리를 별도로 분리하기도 용이하다.
17. 아키텍처
하드웨어와 소프트웨어를 포함한 컴퓨터 시스템 전체의 설계방식. 소프트웨어에 대한, 또는 소프트웨어에서 본 하드웨어의 논리 규격.
18. 알고리즘(algorithm)
어떤 문제를 해결하기 위해 명확히 정의된(well-defined) 유한 개의 규칙과 절차의 모임. 명확히 정의된 한정된 개수의 규제나 명령의 집합이며, 한정된 규칙을 적용함으로써 문제를 해결하는 것.
19. 웹소켓(Web Socket)
웹 서버와 웹 브라우저 사이의 통신을 위한 양방향 통신 규격으로, 인터넷 표준화 단체인 W3C(World Wide Web Consortium)와 IETF(The Internet Engineering Task Force)에서 규정
20. 웹 애플리케이션 서버(Web Application Server 약자 WAS)
웹 애플리케이션 서버는 인터넷 상에서 HTTP를 통해 사용자 컴퓨터나 장치에 애플리케이션을 수행해 주는 미들웨어(소프트웨어 엔진)이다. 웹 애플리케이션 서버는 동적 서버 콘텐츠를 수행하는 것으로 일반적인 웹 서버와 구별이 되며, 주로 데이터베이스 서버와 같이 수행이 된다.
21. 인터페이스(Interface)
사물과 사물 사이 또는 사물과 인간 사이의 경계에서, 상호 간의 소통을 위해 만들어진 물리적 매개체나 프로토콜을 말한다.
인터페이스는 사물의 경계가 되는 부분과 그 경계에서의 통신 및 접속이 가능하도록 하는 매개체를 의미한다. ‘하드웨어 인터페이스’, ‘소프트웨어 인터페이스’ 그리고 ‘사용자 인터페이스’의 세 가지로 구분된다.
22. 인터프리터(interpreter)와 컴파일러(compiler)
- 인터프리터 : 프로그램을 해석하는 방법 중 하나로, 사람이 이해할 수 있는 고급언어로 작성된 코드를 한 단계씩 해석하여 실행시키는 방법을 말한다.
- 컴파일러 : 고급언어로 쓰인 프로그램을 그와 의미적으로 동등하며 컴퓨터에서 즉시 실행될 수 있는 형태의 목적 프로그램으로 바꾸어 주는 번역 프로그램.
23. 자료구조
자료구조는 컴퓨터에서 처리할 자료를 효율적으로 관리하고 구조화시키기 위한 학문이다. 즉, 자료를 효율적으로 사용하기 위해서 자료의 특성에 따라서 분류하여 구성하고 저장 및 처리하는 모든 작업을 의미한다.
24. 자바
자바의 특징
- 객체지향 언어 : 객체지향의 특징인 상속, 캡슐화, 다형성이 잘 적용됨
- 플랫폼 독립성 : 자바 운용프로그램은 운영체제나 하드웨어어가 아닌 JVM(Java Virtual Machine)과 통신. 자바 응용프로그램으로부터 전달받은 명령은 운영체제가 이해할 수 있도록 JVM이 변환.
- 멀티스레드 지원
- 네트워크와 분산처리 지원
- 가비지 컬렉션
24-1. JVM(자바 가상머신, Java Virtual Machine)
자바 바이트 코드와 컴퓨터의 운영 시스템 간에 번역기 역할을 하여 자바로 작성된 응용 프로그램을 윈도우나 매킨토시, 유닉스 등에서 사용할 수 있도록 해주는 소프트웨어
24-2. 스레드(thread)
프로세스내에서 실행되는 세부 작업 단위.
24-3. 멀티 스레드(multi-thread)
1개의 응용 프로그램이 스레드(thread)로 불리는 처리 단위를 복수 생성하여 복수의 처리를 병행하는 것. 즉, 응용 프로그램 내에서의 다중 작업(multi tasking) 처리를 말한다.
24-4. 분산처리(Distributed Processing)
통신망과 다수의 프로세서가 존재하고, 데이터베이스는 분산되어 있는 환경에서 자료를 그 생성 지역에서 처리하는 방법을 분산 처리라 한다.
24-5. 가비지 컬렉션(garbage collection)
가비지 컬렉션은 메모리 관리 기법 중의 하나로, 프로그램이 동적으로 할당했던 메모리 영역 중에서 필요없게 된 영역을 해제하는 기능이다.
- 가비지 컬렉션의 장점
프로그래머가 동적으로 할당한 메모리 영역의 전체를 완벽하게 관리할 필요가 없어지고
유효하지 않은 포인터 접근, 이중 해제, 메모리 누수와 같은 버그를 줄이거나 완전히 막을 수 있음
- 가비지 컬렉션의 단점
어떤 메모리를 해제할지 결정하는 데 비용이 든다.
쓰레기 수집이 일어나는 타이밍이나 점유 시간을 미리 예측하기 어렵다.
할당된 메모리가 해제되는 시점을 알 수 없다.
24-6. 오버로딩(overloading)과 오버라이딩(overriding)
오버로딩 : 메서드의 이름이 같으나 인자의 타입, 갯수, 순서를 다르게 하여 여러개의 메서드를 중복정의하는 것을 말함.
오버라이딩 : 부모클래스에서 상속받은 메서드를 재정의.
25. 조인(join)
둘 이상의 테이블을 연결하여 데이터를 검색하는 방법.
보통 둘 이상의 행들의 공통된 값 Primary Key 및 Foreign Key 값을 사용하여 조인
두 개의 테이블을 select문장 안에서 조인하려면 적어도 하나의 컬럼이 그 두 테이블 사이에서 공유되어야 함.
25-1. 내부조인(Inner join)
둘 이상의 행들의 공통된 값 Primary Key 및 Foreign Key 값을 사용하여 조인.
25-2. 외부 조인(Outer Join)
조인과정에서 누락된 행을 표시하기 위해서 사용되는 조인.
26. 클라우드(cloud)
영어로 ‘구름’을 뜻한다. 컴퓨터 서비스 사업자 서버를 구름 모양으로 표시하는 관행에 따라 ‘서비스 사업자의 서버’로 통한다. 소프트웨어와 데이터를 인터넷과 연결된 중앙 컴퓨터에 저장, 인터넷에 접속하기만 하면 언제 어디서든 데이터를 이용할 수 있도록 하는 것이다.
27. 프로세스(process)
컴퓨터 내에서 실행중인 프로그램.
28. 프로토콜(Protocol)
프로토콜은 통신 시스템이 데이터를 교환하기 위해 사용하는 통신 규칙이다.
29. HTTP(hypertext transfer protocol)
인터넷에서, 웹 서버와 사용자의 인터넷 브라우저 사이에 문서를 전송하기 위해 사용되는 통신 규약
30. TCP/IP(transmission control protocol/internet protocol)
서로 다른 시스템을 가진 컴퓨터들을 서로 연결하고, 데이터를 전송하는데 사용하는 통신 프로토콜들의 집합으로 인터넷 프로토콜 수트(Internet Protocol Suite)라고도 불린다.
31. TCP(Transmission Control Protocol)
TCP는 IP 프로토콜 위에서 연결형 서비스를 지원하는 전송계층 프로토콜로, 인터넷 환경에서 기본으로 사용한다.
TCP에서 제공하는 주요 기능
- 연결형 서비스를 제공한다.
- 전이중(Full Duplex)방식의 양방향 가상 회선을 제공한다.
- 신뢰성 있는 데이터 전송을 보장한다.
32. UDP(user datagram protocol)
인터넷에서 정보를 주고받을 때, 서로 주고받는 형식이 아닌 한쪽에서 일방적으로 보내는 방식의 통신 프로토콜이다.
33. 프론트엔드와 백엔드
일반적으로 프론트엔드(front-end)와 백엔드(back-end)라는 용어는 프로세스의 처음과 마지막 단계를 가리킨다. ‘프론트엔드’는 사용자로부터 다양한 형태의 입력을 받아 ‘백엔드’가 사용할 수 있는 규격을 따라 처리할 책임을 진다. ‘프론트엔드’를 ‘백엔드’로 연결하는 것은 인터페이스의 일종이다.
34. 프레임워크(Framework)
소프트웨어 어플리케이션이나 솔루션의 개발을 수월하게 하기 위해 소프트웨어의 구체적 기능들에 해당하는 부분의 설계와 재사용 가능하도록 협업화된 형태로 제공하는 소프트웨어 환경을 말한다.
35. 플랫폼(platform)
컴퓨터의 구조나 운영 체제 등의 기본 구조. 응용 소프트웨어를 시동시킬 때 응용 프로그램 측면에서 운영체제나 컴퓨터 본체를 플랫폼이라 부른다. 기본환경이라 부르는 경우도 많다.
36. Framework
① 특정 형태의 소프트웨어 문제를 해결하기 위해, 상호 협력하는 클래스들과 인터페이스의 집합
② 장점 : 재사용성, 단순성, 역할구분, 확장성, 유지보수 용이
③ 라이브러리와 프레임워크의 차이
• 라이브러리는 어플리케이션에서 호출할 수 있는 함수와 루틴으로 구성되어 있음
• 프레임워크는 어플리케이션에서 특정 기능들을 제공하기 위해 확장할 수 있는 일반적이고
상호 협력적인 컴포넌트를 제공
37 DI와 AOP
① DI : Dependency injection = 의존성 주입
스프링을 적용하여 applicationContext.xml에서 설정만 해주면 외부 설정파일(xml)에서 연관관계
에 있는 객체를 주입해주기 때문에 의존객체를 찾기 위한 코드가 필요하지 않게 됨.
즉, 외부설정에서 객체를 찾아서 쓰기 때문에 코드 내에 의존관계를 맺는 코드 생성이 불필요.
② AOP : Aspect oriented programming = 약자 관심지향 프로그래밍
프로그래밍 할 때 특정한 관심사를 가진 코드 부분을 별도의 모듈로 분리함으로써 기존 객체지향
의 강력한 기능(상속, 위임)만으로는 처치가 곤란했던 중복을 할 수 있게 됨.
38. MyBatis
① Java에서 DataBase를 편하게 Handling 할 수 있데 해주는 Framework.
② 특징
• SQL문과 Java코드와의 분리만으로도 Java개발자는 Query문을 신경 쓰지 않아도 됨.
SQL문이 변경되더라도 파라미터 값이 변경되지 않는다면 Java소스에서 수정부분이 없기 때문.
③ MVC 모델에서 커버하는 부분 : Model 지원
④ 실행 순서 (실행 구조)
• 자바코드 내에서 특정 쿼리문을 실행하기 원할 때, 파라미터와 필요한 조건을 넘기기 위한 객체 생성.
• SQLMaps를 실행하기 위해 쿼리의 객체와 이름을 넘겨 줌.
• 쿼리가 실행되었을 때 SQLMaps는 쿼리 결과를 받기위해 정의된 클래스의 인스턴스를 생성하게 됨.
• 인스턴스는 데이터베이스에 의해 반환된 Resultset으로부터 만들어짐.
39. Java Servlet
클라이언트 요청을 처리하고 그 결과를 다시 클라이언트에게 전송하는 Servlet 클래스의 구현 규칙을 지킨 자바 프로그램
40. 데이터베이스 Index
① 장점 : 가장 큰 장점은 데이터의 빠른 검색이고, 다음은 Row의 유일성의 유지.
② 단점 : 인덱스를 만들면 그 정보의 유지를 위한 디스크 공간이 필요하고, 인덱스가 걸려있는
테이블은 인덱스가 없을 때보다 데이터 추가나 변경할 때 많은 시간이 소요된다.
③ 인덱스의 종류
• Unique Clustered Index • Nonunique Clustered Index
• Unique Nonclustered Index • Nonunique Nonclustered Index
41. 트랜젝션, 롤백, 커밋
① 트랜잭션 : 일련의 작업단위. 특성으로 ACID(원자성, 일관성, 고립성, 영구성)가 있다.
② 〃 의 필요성 : 여러 작업이 한 자원에서 동시에 변경, 참조 필요시. / 작업공정이 긴 경우.
③ 〃 의 시작 • 첫 DML(data조작어)구문이 실행될 때. (SELECT에선 제외)
• 사용자가 ASVEPOINT를 설정할 때.
④ 〃 의 종료 • commit 수행 • rollback 수행 • 오라클 내부에서 자동 commit 수정
• DDL(data조작어), DCL(data제어어)이 실행될 때.
• 사용자가 sqlplus를 종료할 때, 시스템 크래쉬 발생.
⑤ 커밋과 롤백 전• 롤백으로 데이터 회복 가능 • 현재 유저는 자신이 바꾼 데이터 확인 가능
• 다른 유제에게는 바뀐 데이터 내용이 반영되지 않음
• 영향받은 레코드는 잠금 상태
⑥ 커밋 후 • 데이터는 영구적으로 변경 • 복구 불가능 • 세이브 포인트 삭제
• 모든 유저에게 변경 내용 반영
• 해당 레코드 잠금 해제, 다른 유저들이 다룰 수 있음
⑦ 롤백 후 • 데이터의 변경 취소 • 데이터 이전 상태 회복 • 데이터에 대한 잠금 해제
42. 전역변수, 지역변수, 정적변수
① 전역 변수
- 프로그램에서 전반적으로 다 사용이 가능.
함수 밖에서 정의해 놓으면 다름 함수에서도 사용할 수 있음.
② 지역 변수
- 함수 안에서만 사용이 가능한 변수.
다른 함수에서는 사용을 못함.
③ 정적 변수
- 한 번 정의하면 그 값은 계속적으로 메모리에 남아 있음.
프로그램이 종료될 때, 메모리에서 지워짐.
함수 안에서 사용해도 함수가 끝날 때 지워지지 않음.
43. JSP
① Java Servet Page : 자바를 기반으로 하는 스크립트 언어.
② 특징
• 자바를 기반으로 하는 스크립트 언어로서 자바의 장점을 사용할 수 있음.
• 자바를 기반으로 하고 있으므로 플랫폼에 상관없이 사용할 수 있음.
• 표현언어, 표현식, 스크립트, 서블릿 등의 다양한 스크립트 요소와 액션 태그 등을 제공함으로써 보다
쉽게 웹 어플리케이션을 개발할 수 있음.
• 서블릿/EJB 등의 엔터프라이즈 기술들과 잘 융합됨.
44. JSP를 구동하기 위해 서버를 구축하는 과정
① 자바 인스톨 • JDK 인스톨
• JRE 인스톨 (JDK를 설치하면 설치가 되므로 따로 설치할 필요 없음)
② 환경변수 setting : 컴퓨터의 환경변수(Path)를 잡아야 함.
③ 미들웨어 : JSP를 웹으로 변환해 줄 수 있는 톰켓 설치.
45. AJAX
① 웹 클라이언트 화면 제어를 보다 세밀하게 하기 위한 기술.
② 특징
• 필요한 데이터만 서버로 보내고 해당 정보만 받음.
• 서버로부터 정보를 받을 때는 xml or json 형태로 받고, Client에서는 그 정보들을 DOM을 통해
화면을 재가공하여 보여주므로 서버와 교환되는 데이터의 양이 적어지므로 점유율을 낮출 수 있음.
• Client에서의 데이터 처리로 서버에 부담이 덜 가므로 다른 응답 요청에 신속히 응대.
46. XML
① 사용자 정의 태그를 통해 텍스트 데이터의 구조화된 문서 저장과 application간의 문서교환을
위해 1986년 ISO에 제안된 마크업 언어.
SGML의 일부 기능과 인터넷에서 이용하기 쉬운 HTML의 장점을 도입하여 개발한 언어.
② 특징
사용자 정의 태그가 가능.
텍스트 데이터을 구조화하고 전송할 목적(텍스트 데이터의 재사용과 정보 검색 용이).
Application and WepApplication 모두 사용 가능.
47. 미들웨어 (Middleware)
∘ 최근에 네트워크 상호 호환과 연동상태를 관리하는 분산 환경에 관심을 갖고 데이터베이스,
excel, 윈도우 OLE등 다양한 소프트웨어를 다루는 데 더 관심을 가짐.
∘ 이러한 공통의 인터페이스를 준수하는 컴포넌트 기반의 소프트웨어는 많은 장점을 제공함.
∘ 이러한 공통의 인터페이스를 프레임워크=미들웨어(Middleware)라고 함
48. 서블릿 (Servlet)
∘ 서버용 애플릿, 웹서버에서 실행되는 작은 자바 코드. JVM에서 실행되므로 플랫폼의 구애를
받지 않고, 웹서버와 충돌이 없고 메모리 관리가 철저함.
∘ 웹브라우저에서 실행되지 않고 GUI로 구성되지 않는다는 점이 애플릿과 다름.
∘ 웹서버에서 실행되는 서블릿 엔진과 서비스 요청 및 이에 대한 반응 형태로 사용.
49. OOL (Object Oriented Language)
∘ 객체지향 언어.
50. OOP (Object Oriented Programming)
∘ Object Oriented Programming, 객체지향 프로그래밍
51. 예외처리의 필요성과 목적
∘ 자바에서 프로그램 실행 중 예외가 발생하면 발생된 시점에서 프로그램이 바로 종료가 된다.
때에 따라서는 예외가 발생 했을 때 프로그램을 종료시키는 것이 바른 판단일 수도 있다.
하지만 가벼운 예외나 예상을 한 예외라면 프로그램 종료가 조금은 가혹(?)하다고 느껴진다.
∘ 그래서 ‘예외처리’라는 수단(mechanism)이 제안되었고
예외 처리를 통해 우선 프로그램의 비정상적인 종료를 막고 발생한 예외에 대한 처리로
정상적인 프로그램을 계속 진행할 수 있도록 하는 것이 예외처리의 필요성이라 할 수 있다.
∘ 예외의 발생으로 실행 중인 프로그램의 갑작스런 비정상 종료를 막고,
정상 적인 실행 상태를 유지 할 수 있도록 하는 것.
52. Abstract 클래스
∘ 추상 method를 하나 이상 가지는 클래스.
∘ new 객체를 생성할 수 없음.
∘ 상속받은 클래스는 추상 method를 구현해야만 인스턴스를 생성할 수 있음.
(추상클래스 간의 상속은 method 재정의가 필요 없음. 사용할 때 일반 클래스에서 재정의)
∘ 추상 method란 함수의 리턴타입과 파라메터만 있고 정의 부분이 없는 함수를 말함.
53. Interface
∘ 상수 또는 추상 method만 정의 할 수 있음.
∘ 구현된 method는 포함 할 수가 없음.
∘ 모든 변수는 static(정태적)이고 final임.
∘ 자식클래스들이 공통된 method를 포함하도록 하는 기능만 함.
∘ 다중 상속이 가능함.
54. Collection에서 데이터를 저장 하는 3가지와 그 특징
① Set : 순서가 없고, 동일한 데이터 허용 안 됨.
② List : 배열과 같은 구조지만, 가변적 길이를 가지고 있음. (크기가 지정 되어있지 않음.)
③ Map : key 값과 value값의 형식으로 저장되면 key값은 절대 중복이 안 됨.
55. 스트림
① 데이터를 목적지로 입 · 출력하기 위한 방법. 스트림에 데이터를 쓸 수 있고 읽을 수 있음.
연결하고자 하는 Device에 따라 다양한 스트림이 존재.
② 특징
• 스트림은 FIFO 구조. 읽기, 쓰기가 동시에 되지 않음.
• 읽기, 쓰기가 필요하다면 읽는 스트림과 쓰는 스트림을 각각 하나씩 열어 사용해야함.
• 데이터가 처리되기 전까지 스트림에 사용되는 스레드는
데이터가 모두 전송되기 전까지 블락킹 상태에 빠짐.
56. Statement 와 PreparedStatement의 차이
① Statement : 정적 쿼리 시 사용. 매번 파싱과정을 거쳐야 함.(부하가 생길 수 있음)
SQL문 전체를 명확히 알 수 가 있어서 디버깅이 쉬움.
② Prepared Statement : 동적 쿼리 시 사용.
한번 파싱하면 그 동일 SQL문장을 곧 바로 파싱 과정 없이 Execution 가능.
(반복적인 다량의 SQL 수행 시 성능 상 이득이 있음)
오류발생 시, 변수에 입력되는 값을 알 수 없어서 디버깅이 어려움.
57. Connection Pool 개념
∘ 미리 생성해 놓은 커넥션을 할당하고 반납함으로써 커넥션 생성 시간을 줄인다는 개념.
∘ 미리 생성할 때 너무 조금 생성하면 오히려 타임 오버헤드가 늘어나고,
반대로 너무 많이 생성하면 메모리 오버헤드가 늘어남.
58. Model 1 방식 과 Model 2 방식의 특징과 차이점
① Model 1 : 디자인 코드와 자바 코드(비즈니스 로직)를 구분하지 않고, 하나의 JSP일 내에
기술해서 웹 프로그램을 제작 하는 방식.
특징 • 개발하기가 쉽고, 배우기가 쉬움.
• 디자인코드와 비즈니스 로직의 구분이 명확하지 않아, 복잡도가 높음.
• 수정 시 디자이너와 개발자의 협업이 필요.
• 비즈니스로직의 재 사용성이 어려우며, 유지 보수가 힘듬.
② Model 2 : 웹 어플리케이션을 개발할 때, MVC패턴을 적용하여, 웹 어플리케이션의 개발이
가능하도록 구현한 것.
특징 • 초기 설계에 많은 시간이 소요.
• 디자인코드와 비즈니스 로직이 분리되며, 비즈니스 로직의 재 사용성이 높아짐.
• 비즈니스 로직 계층의 확장성이 용이하며, 유지보수가 편하다.
59. Singleton의 대해 설명 하시오.
∘ 발전된 형태의 전역 변수.
∘ 프로그램 상에서 두 번째 인스턴스를 만들 수 없게 하는 기능.
∘ 만들어진 클래스의 객체를 단 하나만 사용하며 어디서든 그 객체를 사용하도록 만들어 줌.
60. Cookie 와 Session 의 차이
① Cookie : 클라이언트에 정보를 저장하기 때문에 서버에 부하가 없음.
사라지는 때(시간)를 지정 할 수가 있음.
② Session : 서버에 정보를 저장하기 때문에 서버에 부하가 많이 생김.
해당 클라이언트와 일정시간 동안 작용이 없으면 서버메모리에서 해제 됨.
직접적으로 해제 시킬 수 있는 method가 있음.
61. DDL (Data Definition Language)
테이블 및 객체의 구조 생성 그리고 삭제, 변경과 관련된 명령어.
∘ CREATE : 새로운 테이블 생성.
∘ DROP : 기존 테이블의 구조 및 모든 행을 삭제.
∘ ALTER : 기존 테이블 변경, 필드를 추가 또는 수정 할 수 있지만 삭제 불가.
∘ TRUNCATE : 테이블의 구조를 남기고 모든 데이터 삭제.
∘ RENAME : 오브젝트의 이름을 변경.
∘ COMMENT : 테이블이나 컬럼에 주석문.
62. DML (Data Manipulation Language)
데이터 조작과 관계된 명령어.
데이터의 검색 및 출력, 정렬과 조인에 관계 됨.
∘ SELECT : 데이터의 조회.
∘ INSERT : 데이터의 입력.
∘ UPDATE : 데이터의 수정.
∘ DELETE : 데이터의 삭제.
63. DCL (Data Control Language)
계정의 권한과 관계된 명령어.
∘ GRANT : 권한 부여.
∘ REVOKE : 권한 취소.
64. SPA(Single Page Application)
∘ 단일 페이지 어플리케이션(SPA)는 현재 웹개발의 트렌드.
∘ 기존 웹 서비스는 요청시마다 서버로부터 리소스들과 데이터를 해석하고 화면에 렌더링하는 방식. 브라우저에 최초에 한번 페이지 전체를 로드하고, 이후부터는 특정 부분만 Ajax를 통해 데이터를 바인딩.
∘ 대표적인 라이브러리/프론트프레임워크 React, Vue/Angular가 있다.
65. 서버사이드/클라이언트사이드의 개념과 둘의 차이점
∘ 서버사이드 : 백엔드. 서버 측에서 일을 처리. JSP.
∘ 클라이언트사이드 : 프론트엔드. 화면에 보이는 부분. 클라이언트 측에서 처리. 자바스크립트.
66. JSON
∘ JSON은 경량화 되어있는 하나의 텍스트 기반의 데이터교환 형식
∘ JSON은 프로그래밍 언어가 아니라 그저 단순히 데이터 표기방법 중의 하나
∘ XML 보다 기능이 적고 가볍기 때문에 파싱도 빠르고 용이하며
간단한 구조로 인해 클라이언트/서버 어디서든 쉽게 사용가능
'여러 이론들' 카테고리의 다른 글
PID 제어 & PWM 서치하면서 내가 이해하고 정리하려고 작성하는 글 (8) | 2024.11.05 |
---|---|
용어정리 (0) | 2024.10.25 |