목록Back-End (14)
나의개발일지

RedisRedis란?속도를 빠르게 하기 위한 캐시 솔루션NoSQL의 Key-Value 스토어두가지의 공통적인 특징이 사용하기 쉽고 속도가 빠르다는 것이다.Redis의 주요 특징항목내용Key-Value 스토어단순 스트링에 대한 Key/Value 구조를 지원컬렉션 지원List, Set, Sorted Set, Hash 등의 자료 구조를 지원Pub/ Sub 지원Publish/ Subscribe 모델을 지원디스크 저장현재 메모리 상태를 디스크로 저장할 수 있는 기능과 현재 까지의 업데이트 관련 명령을 저장할 수 있는 AOF 기능이 있다복제다른 노드에서 해당 내용을 복제할 수 있는 마스터/슬레이브 구조를 지원한다.빠른 속도이상의 기능들을 지원하면서도 초당 100,000 QPS 수준의 높은 성능을 자랑한다.Key-..

ORM (Object-Relational Mapping)ORM?객체와 관계형 데이터베이스의 데이터(table)을 자동으로 매핑객체 지향 프로그래밍은 클래스를 사용하고, 관계형 데이터베이스는 테이블을 사용객체 모델과 관계형 모델 간에 불일치가 존재하는데, ORM을 통해 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결프로그램 복잡도를 줄이고 자바 객체와 쿼리를 분리할 수 있으며 트랜잭션 처리나 기타 데이터베이스 관련 작업들을 좀 더 편하게 처리 할 수 있음Object의 field와 DB의 data를 매핑하여 객체를 통해 간접적으로 데이터베이스의 데이터를 조작SQL Query가 아닌 직관적인 코드(Object의 method)로 데이터를 조작Persistence API 라고도 함 ex) JP..

REST API 개요 OPEN API OPEN API는 프로그래밍에서 사용할 수 있는 개방되어 있는 상태의 Interface naver, kakao 포털 서비스 사이트나 관공서, 공공데이터 포털이 가지고 있는 데이터를 외부 응용 프로그램에서 사용할 수 있도록 OPEN API를 제공하고 있다 OPEN API 지원 방식이 REST 이다 REST REST는 하나의 URL는 하나의 고유한 리소스(Resource)를 대표하도록 설계된다는 개념에 전송방식을 결합해서 원하는 작업을 지정한다. 웹의 장점을 최대한 활용할 수 있는 아키테처로써 REST를 발표 HTTP URL을 통해 제어할 자원을 명시하고 HTTP Method(GET, POST, PUT, DELETE)을 통해 해당 자원을 제어하는 명령을 내리는 방식의 아..

MyBatis MyBatis는 Java Object와 SQL문 사이의 자동 Mapping 기능을 지원하는 ORM Framework MyBatis는 SQL을 별도의 파일로 분리해서 관리 Object - SQL 사이의 parameter mapping 작업을 자동으로 해 줌. MyBatis는 Hibernate나 JPA처럼 새로운 DB프로그래밍 패러다임을 익혀햐 하는 부담이 없이, 개발자가 익숙한 SQL을 그대로 이용하면서 JDBC코드 작성의 불편함을 제거해 주고, 도메인 객체나 VO객체를 중심으로 개발이 가능 MyBatis 특징 쉬운 접근성과 코드의 간결함 가장 간단한 persistence framework XML 형태로 서술된 JDBC 코드라 생각해도 될 만큼 JDBC의 모든 기능을 MyBatis가 대부분 ..

Interceptor Controller가 요청을 처리하기 전/후 처리 공통 코드 사용으로 코드 재사용성 증가 로깅, 모니터링 정보 수집, 접근 제어 처리 등의 실제 Business Logic과는 분리되어 처리해야 하는 기능들을 넣고 싶을 때 유용함 Interceptor 종류 preHandle Controller method가 실행되기 전 호출 return 타입이 boolean => false를 반환하면 request를 바로 종료 전처리 작업이나 요청 정보를 가공하는 작업등 postHandle Controller method 실행 직후 view 페이지가 렌더링 되기 전 호출 return 타입이 void afterCompletion view 페이지가 렌더링 되고 난 후 호출 예외가 발생해도 실행 retur..

AOP ( Aspect Oriented Programming ) 등장 배경 핵심 관심 사항(core concern)과 공통(부가) 관심 사항 (cross-cutting concern) 기존 OOP에서는 공통관심사항을 여러 모듈에서 적용하는데 있어 중복된 코드를 양상 하는 한계가 존재함 이를 해결하기 위해 AOP가 등장 Aspect Oriented Programming은 문제를 해결하기 위한 핵심 관심 사항과 전체에 적용되는 공통 관심 사항을 기준으로 프로그래밍함으로써 공통 모듈을 손쉽게 적용할 수 있게 함 OOP란? 객체지향 객체 : 주체가 아닌 것, 주체가 활용하는 것 객체 지향 프로그래밍 : 주변의 많은 것들을 객체화 해서 프로그래밍 하는것 객체 지향 언어의 특징 OOP is A P.I.E Abstr..

DI ( Dependency Injection ) 객체 간의 의존관계를 자신이 아닌 외부의 조립기가 수행한다. DI를 통해 시스템에 잇는 각 객체를 조정하는 외부 개체가 객체들에게 생성시에 의존관계를 주어진다 느슨한 결합의 주요 강점 : 객체는 인터페이스에 의한 의존 관계만을 알고 있으며, 이 의존 관계는 구현 클래스에 대한 차이를 모르는 채 서로 다른 구현으로 대체가 가능하다. 빈 생성 범위 싱글톤 빈 ( Singleton Bean ) 스프링 빈은 기본적으로 'singleton'으로 만들어짐 그러므로, 컨테이너가 제공하는 모든 빈의 인스턴스는 항상 동일함 컨테이너가 항상 새로운 인스턴스를 반화하게 만들고 싶을 경우 scope를 'prototype' 으로 설정해야 한다. 빈의 생성 범위 지정 범위 설명 ..

IoC (Inversion of Control, 제어의 역행) IoC는 제어 흐름의 개념을 바꾸는 것을 의미한다. 일반적으로 프로그램이 자신의 제어 흐름을 관리하는 것에서 벗어나고, 외부 컴포넌트나 프레임워크에 의해 제어되도록 한다. 예를 들어, 일반적인 프로그램의 제어 흐름은 메소드 호출에 의해 이루어진다. 그러나 IoC에서는 프레임워크나 컨테이너가 애플리케이션의 실행 흐름을 관리하며, 애플리케이션 코드는 이러한 프레임워크나 컨테이너에 의해 호출되어 실행된다. IoC의 구현 방법중 하나가 DI(의존성 주입) 이다 Container 컨테이너란 객체의 생성, 사용, 소멸에 해당하는 라이프사이클을 담당하여 관리하며 라이프 사이클을 기본으로 애플리케이션 사용에 필요한 주요 기능을 제공한다 Container의 ..

Servlet이란 자바 서블릿(Java Servlet)은 자바를 사용하여 웹페이지를 동적으로 생성하는 서버측 프로그램 혹은 그 사양을 말한다. 서블릿은 JSP와 비슷한 부분이 있지만, JSP가 HTML 문서안에 JAVA 코드를 포함하고 있는 반면, 서블릿은 자바 코드 안에 HTML을 포함하고 있다. Servlet 동작 흐름 클라이언트의 요청 클라이언트가 웹 브라우저를 통해 서블릿에 대한 요청을 보낸다. 이 요청은 HTTP 프로토콜을 통해 전송된다. 웹 컨테이너(서블릿 컨테이너)의 요청 처리 클라이언트의 요청이 웹 컨테이너에 도착하면, 컨테이너는 해당 요청을 처리하기 위해 적절한 서블릿을 찾는다. 서블릿 인스턴스화 및 초기화 요청에 대응하는 서블릿이 아직 인스턴스화되지 않은 경우, 웹 컨테이너는 해당 서블..

MVC Pattern MVC란 모델(Model), 뷰(view), 컨트롤러(Controller)를 이용해서 프로그램이하는 소프트웨어 설계 방법 Model 어플리케이션 샅애의 캡슐화 상태 쿼리에 대한 응답 어플리케이션의 기능 표현 변경을 view에 통지 View 모델을 화면에 시각적으로 표현 모델에게 업데이트 요청 사용자의 입력을 컨트롤러에 전달 컨트롤러가 view를 선택하도록 허용 Controller 어플리케이션의 행위 정의 사용자 액션을 모델 업데이트와 mapping 응답에 대한 view 선택 장점 1. 예를 들어프레젠테이션 로직과 비즈니스 로직을 분리할 수 있고, 각각의 기능을 모듈화해서 개발을 체계적으로 진행 장점 2. 유지 보수 시점에서도 MVC 패턴의 구조로 구축되어 있기 때문에 새로운 개발자는..