728x90
728x90
어노테이션 구성과 동작 원리 커스텀 어노테이션은 메타 어노테이션을 사용하여 다음과 같은 구조를 가진다. 메타 어노테이션이란 커스텀 어노테이션을 구성할 때 시점, 위치 등을 지정하기 위한 어노테이션이다. 어노테이션의 필드 타입은 enum, String 이나 기본 자료형, 기본 자료형의 배열만 사용할 수 있다. @Targer({ElementType.$적용대상}) @Retention(RetentionPolicy.$정보유지되는대상) public @interface $어노테이션명{ public 타입 elementName() $default값 .... } 메타 어노테이션의 종류는 다음과 같다. @Retention : 컴파일러가 어노테이션을 다루는 방법을 기술, 어느 시점까지 영향을 미치는지를 결정 Retention..
Validation Validation 이란 프로그래밍에 있어서 가장 필요한 부분이다. 특히 Java 에서는 null 값에 접근하려고 할 때 null pointer exception 이 발생 함으로, 이러한 부분을 방지 하기 위해서 미리 검증을 하는 과정을 Validation 이라고 한다. public void run(String account, String pw, int age) { if(account == null || pw == null) { return } if(age == 0) { return } // 정상적인 로직 } 검증해야 할 값이 많은 경우 코드의 길이가 길어진다. 구현에 따라서 달라질 수 있지만 Service Logic 과의 분리가 필요 하다. 흩어져 있는 경우 어디에서 검증을 하는지 ..
Spring Spring 1.0 버전은 2004년 3월 출시, 지난 20년 세월 동안 자바 엔터프라이즈 어플리케이션 개발의 최고의 자리를 차지 스프링 프레임워크의 구성은 20여 가지로 구성, 이러한 모듈들은 스프링의 핵심기능(DI, AOP, 등) 을 제공해 주며, 필요한 모듈만 선택하여 사용 가능 현재 단일 아키텍쳐(모놀리스) 에서 마이크로서비스 아키텍쳐로 변환 중이다. 여러 가지 모듈이 있지만 그 중에서 스프링 부트, 스프링 클라우드, 스프링 데이터, 스프링 배치, 스프링 시큐리티에 중점을 둔다. 스플리의 과제는 "테스트의 용이성", "느슨한 결합" 에 중점을 두고 개발됐다. 스프링이 다른 프레임워크와의 가장 큰 차이점이 IoC 를 통한 개발이다. AOP 를 사용하여 로깅, 트랜잭션 관리, 시큐리티에서..
HTTP(Hyper Text Transfer Protocol) 로 TCP 를 기반으로 한 REST 의 특징을 모두 구현하고 있는 Web 에서 데이터를 주고받는 프로토콜이며 하이퍼텍스트 전송용 프로토콜로 정의되어 있지만 실제로는 HTML, XML, JSON, Image, Voice, Video, Javascript, PDF 등 다양한 컴퓨에터서 다룰 수 있는 것은 모두 전송할 수 있다. HTTP 는 메시지를 주고(req) 받는(res) 형태의 통신 방법이다. HTTP 의 요청을 특정하는 메소드는 8가지가 있다. REST 를 구현하기 위해서는 기본적인 CRUD 는 알고 있어야 한다. HTTP Status Code 는 응답의 상태를 나타내는 코드이다. 이중 자주 사용되는 코드는 아래와 같다.
URI 란 인터넷에서 특정 자원을 나타내는 주소 값으로 해당 값은 유일하다. ex) 요청(req) : https://www.naver.com/resource/sample/1 응답(res) : na.test.pdf, na.test.docx URL 과 URI 를 헷갈리지 말자, URL 은 URI 의 하위 개념으로 인터넷 상에서의 자원, 특정 파일이 어디에 위치하는지 식별 하는 주소이며 요청(req) : https://www.naver.com/na.test.pdf 이런식으로 발행된다. URI 설계 원칙 1. 슬래시 구분자(/) 는 계층 관계를 나타내는 데 사용한다. https://naver.com/na/ja/cur/tes 2. URI 마지막 문자로 (/) 는 포함하지 않는다. https://naver.com/..
DIP 상위 모듈은 하위 모듈의 구현에 의존해서는 안되며, 하위의 모듈이 상위 모듈에 정의한 추상 타입에 의존 해야 한다. 카드 결제 시스템을 구축 현재 지원하는 카드는 신한 카드 추후에 우리 카드가 추가되어 결제를 구현 지속해서 카드가 추가 상위 모듈이란? 상위 모듈이란 상위 정책을 의미한다. 위의 요구사항에서는 카드 졀제라는 것이 상위 정책을 뜻한다. 하위 모듈이란? 하위 모듈이란 상위 정책에 따른 하위 정책을 말한다. 위의 요구사항에서 카드 결제라는 상위 정책이 있으면 신한 카드 결제라는 하위(세부) 정책이 있다. 추상 타입이란? 추상 타입은 인터페이스, 추상화 클래스를 의미한다. 상위 정책이 하위 정책에 의존하지 않고 추상 타입에 의존하라는 것은 카드 결제라는 상위 정책이 신한 카드 결제라는 하위..