1. 객체지향
1-1. 객체지향이란?
기능이 아닌 객체가 중심이며 "누가 어떤 일을 할것인가?"가 핵심이다
필요한 데이터를 추상화 시켜 객체를 도출하고 그 객체간들의 역할을 정의해 나가는 것이다
1-2. 객체지향의 특징
추상화 abstraction |
⦁ 객체들의 공통적인 특징(기능,속성)을 도출하는 것 클래스를 정의하는것 |
상속성 inheritance |
⦁ 하나의 클래스가 가진 특징(함수,데이터)을 다른 클래스가 물려받는 것 - Overriding : 자식클래스가 부모클래스로부터 상속받은 메소드의 내용을 변경하는 것 |
다형성 polymorphism |
⦁ 하나의 객체가 여러 가지 타입을 가질 수 있는 것 - Overloading : 한 클래스내에 동일한 이름의 생성자,메서드를 여러개 작성하는 것 (매개변수 타입,갯수,순서는 달라야함) |
캡슐화 encapsulation |
⦁ 객체가 독립적으로 역할을 할 수 있게 데이터와 기능을 하나로 묶어 관리하는 것 - 실제로 구현되는 부분을 외부에 드러나지 않도록 하여 정보를 보호할 수 있다 - 코드가 묶여있어 편리하다 |
동적바인딩 Dynamic Binding |
⦁ 실행 이후에 값이 확정되는것 - 실행 시간에 실제로 사용된 객체의 클래스형에 의해 호출될 함수가 결정됩니다 - 함수가 가상 함수로 선언이 되면, 포인터 변수가 실제로 가리키는 객체에 따라 호출의 대상이 결정된다 |
1-3. 객체지향 장단점
장점 | ⦁ 코드 재사용이 용이하다 : 이미 만들어진 클래스를 상속받거나, 객체를 재사용하거나, 부분 수정을 통해 사용 가능 ⦁ 유지보수가 쉽다 ⦁ 대형 프로젝트에 적합하다 |
단점 | ⦁ 처리 속도가 상대적으로 느리다 |
2. JAVA
2-1. 인터페이스
객체의 사용방법을 정의한 기본 설계도
사용자가 프로그램을 이용하는 방법은 장치나 플랫폼이 달라지더라도 일정해야 한다
2-2. 스프링(Spring)
Java에서 자주 쓰는 기능,기술을 모아둔 오픈소스 프레임워크
특징 | 1. IoC (Inversion of Control, 제어 반전) ⦁ IoC가 개발자의 코드를 호출하여 그 코드로 생명주기를 제어(관리)하는 것이다. |
2. DI (Dependency Injection, 의존성 주입) ⦁ 프로그래밍에서 구성요소 간의 의존 관계가 소스코드 내부가 아닌 외부의 설정파일을 통해 정의되는 방식이다. ⦁ 쉽게 말하자면 게임 캐릭터라는 하나의 객체가 존재하는데, 그 객체를 더 잘 이용하기 위해서 무기, 방패 등 아이템을 가져와 결합시키는 것이다. 이 객체는 무기와 방패를 뺐다 꼈다 자유자재로 할 수 있으며 아이템을 갈아끼우는데 어떤 상황에 구애받지도 않는다. |
|
3. AOP (Aspect Object Programming, 관점 지향 프로그래밍) ⦁ 로깅, 트랜잭션, 보안 등 여러 모듈에서 공통적으로 사용하는 기능을 분리하여 관리 할 수 있다. ⦁ 여러 객체에 공통으로 적용할 수 있는 기능을 구분함으로써 재사용성을 높여주는 프로그래밍 기법이다. |
|
4. POJO (Plain Old Java Object) 방식 ⦁ getter/setter를 가진 단순한 자바 오브젝트를 말한다. |
|
장점 | ⦁ 개발자의 수준과 실력에 상관없이 일정 수준의 품질을 기대할 수 있습니다. ⦁ 특정 환경이나 서버, 기술에 종속되지 않으며 유연한 애플리케이션을 개발 ⦁ 애플리케이션에 공통적으로 나타나는 부가적인 기능들을 독립적으로 모듈화 |
2-3. 프레임워크(Framwork) / 라이브러리(Library)
프레임워크 | 라이브러리 | |
설명 | 클래스와 인터페이스의 집합 완성된 어플리케이션이 아닌 프로그래머가 완성시키는 작업을 해야함(필요한 코드를 짜 넣어야 함) |
단순 활용가능한 도구들의 집합 (미리 만들어둔 반제품) 개발자가 만든 클래스에서 호출하여 사용 |
차이점 | 둘의 차이점은 바로 제어흐름이다 | |
제어역전: 개발자가 제어하는것이 아닌 제어의 역전으로 스스로 흐름을 쥐고있다 | 직접제어: 개발자가 제어의 흐름을 쥐고있다 |
3. JSP (Java Server Pages)
3-1. JSP란?
HTML코드에 JAVA코드를 넣어 동적 웹페이지를 생성하는 도구
3-2. MVC 패턴(Model, View, Controller)
애플리케이션을 3가지 역할로 구분한 소프트웨어 디자인 패턴중 하나다
서로 분리되어 역할을 나눴기에 유지보수와 확장성이 좋고 유연성 증가, 중복코딩을 해결했다
Model | 애플리케이션의 정보, 데이터 |
View | 사용자 인터페이스 요소 |
Controller | 데이터와 사용자 인터페이스 요소를 연결하는 다리 역할 |
3-3 GET / POST
HTTP 프로토콜을 이용해서 서버에 무언가를 전달할떄 사용하는 방식이다
GET | 데이터를 서버에서 가져와 조회할 떄 사용하는 방식 전송속도 우수, 파라미터가 URL에 노출되지 않음 데이터를 가져오는것 : SELECT 기능 |
POST | 데이터를 서버로 보내 추가, 수정하기 위해 사용하는 방식 id, password같은 중요한 정보를 전송할 떄 사용 데이터를 수행하는것 : INSERT, UPDATE, DELETE 기능 |
차이점 | 전송방식의 차이 |
4. ORACLE
4-1. 트랜잭션 명령어
COMMIT | 변경된 내용을 영구 저장 |
ROLLBACK | 변경되기 이전 상태로 되돌리기 |
4-2. 그룹 함수
SUM | 그룹의 누적 합계 도출 |
AVG | 그룹의 평균 도출 |
COUNT | 그룹의 총 갯수 도출 |
MAX / MIN | 그룹의 최댓값 / 최솟값 도출 |
4-3. 무결성 제약조건
DB의 정확성, 일관성을 보장하기 위해 저장, 삭제, 수정등을 제약하는 조건
PRIMARY KEY (PK) |
NOT NULL | NULL값 안됨 |
UNIQUE | 중복된 값 안됨 | |
FOREIGN KEY | 참조되는 테이블의 값이 존재하면 허용함 | |
CHECK | 저장 가능한 데이터 값의 범위나 조건을 지정하며 설정한 값만을 허용함 |
4-4. RDB (Relational Data Base) 관계형 데이터 베이스
키와 값들의 간단한 관계를 테이블화 시킨것
테이블이 다른 테이블들과 관계를 맺고 모여있는 집합체
이러한 관계를 나타내기 위해 외래 키(foreign key)를 사용
4-5. ERD
테이블간의 관계를 설명해주는 다이어그램
프로젝트에서 사용되는 DB의 구조를 한눈에 파악할 수 있다
5. 기타
5-1. null과 undefined 차이
null | 변수를 선언하고 빈값을 할당함 |
undefined | 변수를 선언하고 값을 할당하지 않음 |
5-2. 백엔드 / 프론트엔드
백엔드(Back-End) | 백엔드는 웹 애플리케이션의 사용자가 보지 못하는 영역인 서버나 데이터베이스를 관리하는 기술입니다. Node.js, Java |
프론트엔드(Front-End) | 사용자가 볼 수 있는 화면, 인터페이스를 의미합니다. HTML, CSS, JavaScript |