목록웹개발/Spring (9)
알버트의 개발하는 블로그
1. IoC(Inversion of Control)이란? IoC란 Inversion of Control의 약자로 해석하자면 제어의 역전이다. 기존에는 객체들의 제어권을 개발자가 직접 가지고 있었지만, 서블릿이 등장하면서 개발자가 독점적으로 가지고 있던 제어권이 서블릿을 관리하는 외부의 컨테이너로 넘어가게 되었다. 즉, 개발자가 객체를 제어하는 것이 아닌 외부의 컨테이너가 제어하는 것을 제어의 역전이라고 한다. 그리고 이 IoC를 가능하게 해주는 것이 의존성 주입인 DI이다. 2. DI(Dependency Injection) DI란 IoC를 구현하는 방법이다. 구현하는 방법에는 DI를 번역하면 의존성 주입이라고 할수있는데 각 객체간의 의존성을 컨테이너가 자동으로 연결해주는 것으로 개발자가 빈(Bean) 설..
웹소켓을 이용한 채팅프로그램을 어떻게 구현할까 하다가 스프링 부트 환경에서 자바와 html, js을 구성하여 구현해 보았다. 1.제일 먼저 해야할 것은 스프링부트의 build.gradle에 웹소켓 dependencies를 추가하는 것이다. build.gradle의 dependencies 파트는 아래와 같다. dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-websocket' ..
1. 웹소켓이란? - 두 프로그램 간의 메시지를 교환하기 위한 통신 방법 중 하나이다. - 전이중 통신을 가능하게 해준다. - W3C와 IETF에 의해 자리잡은 표준 프로토콜 중 하나이다. - 현재 HTML5 환경에서 많이 사용된다. 2. 웹 소켓의 특징 - 양방향 통신(Full-Duplex) - 데이터 송수신을 동시에 처리할 수 있는 통신 방법 - 클라이언트와 서버가 서로에게 원할 때 데이터를 주고 받는다. - 통상적인 HTTP 통신은 클라이언트가 요청을 보내는 경우에만 서버가 응답하는 단방향 통신 3. 실시간 네트워킹(Real Time-Networking) - 웹 환경에서 연속된 데이터를 빠르게 노출한다. - 여러 단말기에 데이터를 빠르게 교환한다. - 예를 들면 채팅, 주식, 비디오 데이터와 같이 ..
1) 커스텀 어노테이션을 이용하는 방법 어노테이션을 정의한다. 어노테이션을 클래스에서 사용한다. (타겟에 적용) 어노테이션을 이용하는 코드를 수행한다. 2) 어노테이션 생성 예제 import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @Retention(RetentionPolicy.RUNTIME) // 런타임중에도 유효한 어노테이션임을 기술 public @interface Count100 { // 어노테이션은 @interface 인터페이스명으로 정의 } // 커스텀 어노테이션을 메소드에 적용 public class MyHello { @Count100 public void hello(){ System.out.pr..
1. 자바 어노테이션이란? 어노테이션은 영어단어로 '주석'이라는 의미를 가집니다. 자바 소스 코드에 사이에 @ 기호를 앞에 붙여서 사용 가능하며, JDK 1.5 버전 이상에서 사용 가능하게 되었습니다. 2. 어노테이션의 용도 1) 컴파일러에게 코드 작성 문법 에러를 체크하도록 정보를 제공합니다. 2) 소프트웨어 개발툴이 빌드나 배치를 했을 때 코드를 자동으로 생성할 수 있도록 정보를 제공합니다. 3) 실행시(런타임시) 특정 기능을 실행하도록 정보를 제공합니다. 3. 자바 내장 애너테이션 7개의 표준 어노테이션 중에 3개가 java.lang의 일부이며, 나머지 4개는 java.lang.annotation으로부터 가져옵니다. 4. 내장 어노테이션 종류 자바 코드에 적용할 수 있는 내장 어노테이션들이 있습니다..
1.스프링이란? IoC와 AOP를 지원하여 자바 엔터프라이즈 개발을 편하게 해주는 경량의 오픈 소스 애플리케이션 프레임워크 2.애플리케이션 프레임워크란? 소프트웨어 개발자가 응용 소프트웨어의 표준 구조를 구현하기 위해 사용하는 소프트웨어 프레임워크로 구성되어 있다. 즉, 프로그래밍에서 특정 OS를 위한 응용 프로그램 표준 구조를 구현하는 클래스와 라이브러리의 모임을 말한다. 3.프레임워크의 장/단점 장점 : 개발 시간을 줄일 수 있고 오류로부터 자유로울 수 있다. 단점 : 프레임워크에 너무 의존하면 개발 능력이 떨어져서 프레임워크 없이 개발하는 것이 힘들어진다. 4.스프링의 특징 - IoC ( Inversion of Control ) : 제어의 역행 제어의 주체가 개발자가 아닌 프레임워크라는 뜻으로 때에..
1.MVC패턴이란? MVC패턴은 소프트웨어 디자인 패턴 중 하나이다. 만은 디자인패턴들이 있지만 그 중에 하나가 MVC패턴이라고 생각하며 편하다. 그렇다면 왜 MVC패턴일까? MVC패턴은 Model, View, Controlloer의 약자이다. 하나의 애플리케이션과 프로젝트를 구성할 때 그 구성요소를 세 가지로 구분한 패턴이다. 사용자가 컨트롤러를 조작하면 컨트롤러는 모델을 통해서 데이터를 가져오고 그 정보를 바탕으로 시각적인 표현을 담당하는 뷰를 제어해서 사용자에게 정보를 전달하게 된다. 2.모델(MODEL) 모델은 애플리케이션의 정보, 즉 데이터를 나타낸다. 데이터베이스, 상수, 초기화값, 변수 등을 뜻한다. 정보들의 가공을 책임지는 컴포넌트이다. DB에서 데이터를 읽어오든가 업데이트를 하든가 하는 ..
1.DAO(Data Access Object) 데이터 사용기능 담당 클래스이다. DB 데이터 조회나 수정, 입력, 삭제와 같은 로직을 처리하기 위해 사용한다. CRUD의 기능을 한다고 보면 된다. DAOInterface/DAOImplement 로 구분지어 명세와 구현 분리하며 개발한다. 만약 Mybatis연동 때처럼 Interface만 필요한 경우 그냥 DAO라고 명시할 수 있다. 2.DTO(Data Transfer Object) 데이터 저장 담당 클래스이다. Controller, Service, View처럼 계층 간의 데이터 교환을 위해 쓰인다. 로직을 갖고 있지 않으며 순수한 데이터 객체이며 getter, setter 메소드만을 갖고 있다. 3.VO(Value Object) DTO와 마찬가지로 데이터..