💡 정규표현식 ‘^’은 문자열의 시작을 의미합니다. ‘$’는 문자열의 끝을 의미합니다. ‘*’는 ‘*’ 앞에 평가할 대상이 0개 또는 1개 이상인지를 평가합니다. ‘\s’는 공백 문자열을 의미합니다. ‘\S’ 공백 문자열이 아닌 나머지 문자열을 의미합니다. ‘?’는 ‘?’ 앞에 평가할 대상이 0개 또는 1개인지를 의미합니다. ‘+’는 ‘+’ 앞에 평가할 대상이 1개인지를 의미합니다. Flags global = g 매칭되는 다수의 결과값 기억 multi line = m single line = s unicode = u sticky = y case insensitive = i Character 의미 | 또는 () 그룹 [] 문자셋, 괄호안의 어떤 문자든 [^] 부정 문자셋, 괄호안의 어떤 문가 아닐때 (?:..

💡 DTO (Data Transfer Object) HTTP Method별로 or Request, Response 별로 받아올 필드값(Request)과 보내줄 필드값(Response)을 잘 생각해서 필드값 설정 Mapstruct로 자동매핑이 어려운 필드의 경우 서비스클래스에서 비즈니스로직으로 처리하자 DTO 클래스 = 요청 데이터를 하나의 객체로 전달받는 역할 DTO를 적용하기 전엔 요청데이터를 @RequestParam을 통해 일일이 받았지만, 데이터가 많아질수록 @RequestParam의 개수도 많아질 것이다. DTO 클래스를 적용함으로써 코드의 간결성을 충족시킬 수 있다. DTO를 쓰는 가중 중요한 이유는 HTTP 요청의 수를 줄여 비용절감을 하는 것 아래에서 볼 예시는 DTO, 데이터 유효성 검증을..

💡 Spring Web MVC Spring의 모듈중 하나로 Suvlet API를 기반으로 웹계층을 담당 클라이언트의 요청을 편리하게 처리해주는 프레임워크 서블릿(Servlet)이란? 서블릿에 대해서는 ‘Spring Framework을 배워야 하는 이유’ 챕터에서 잠깐 언급을 한적이 있다. 서블릿은 클라이언트의 요청을 처리하도록 특정 규약에 맞추어서 Java 코드로 작성하는 클래스 파일이다. 그리고 아파치 톰캣(Apache Tomcat)은 이러한 서블릿들이 웹 애플리케이션으로 실행이 되도록 해주는 서블릿 컨테이너(Servlet Container) 중 하나임. Model Spring MVC 에서 'M' 에 해당 처리한 작업의 결과 데이터를 의미함 View Spring MVC 에서 'V'에 해당 화면에 보여지..

💡 AOP (Aspect-Oriented Programming) 관점 지향 프로그래밍 Aspect를 사용하여 핵심 기능과 부가 기능을 분리하고 부가 기능을 어디에 적용할지 선택하는 기능 OOP를 대체하기 위한 것이 아닌, OOP의 부족한 부분을 보조하는 목적으로 개발됨 여러곳에 쓰이는 부가기능의 변경,삭제의 번거로움을 해소 Aspect : 부가 기능을 정의한 코드인 어드바이스(Advice)와 어드바이스를 어디에 적용할지 결정하는 포인트컷(PointCut)을 합친 개념. (Advice + PointCut ⇒ Aspect) 핵심 기능(Core Concerns) : 업무 로직을 포함하는 기능 객체가 제공하는 고유의 기능(업무 로직 등을 포함) 부가 기능(CROSS-CUTTING CONCERNS) : 핵심 기능..
💡 컨테이너 설정 가장 중요한 Annotation 2가지 @Configuration @Bean Method가 Spring Container에서 관리할 새 객체를 인스턴스화, 구성 및 초기화 하는걸 나타내는데 사용됨 AnnotationConfigApplicationContext 를 사용하여 스프링 컨테이너를 인스턴스화 하는 방법 ApplicationContext 구현은 아래와 같은 Annotation이 달린 클래스로 파라미터 전달 받음 @Configuration 클래스 @Component 클래스 JSR-330 Metadata @Configuration 클래스가 입력으로 제공되면 @Configuration 클래스 자체가 Bean 정의로 등록되고 클래스 내에서 선언된 모든 @Bean 메소드도 Bean 정의로 ..

💡 Spring Container Bean의 lifecycle 관리(Bean 생성,관리,제거 등) Spring Framework의 핵심 개념이 필요한 이유를 이해할 수 있다. Spring Framework에서 DI(의존성 주입)이 어떠한 방식으로 구현되는지 설명할 수 있다. 객체 지향 설계에서, AOP가 필요한 이유를 설명할 수 있다. Spring Framework에서 AOP가 어떤 방식으로 구현되는지 설명할 수 있다. ApplicationContext = Spring Container (interface), 다형성 적용 XML, 애너테이션 기반의 자바 설정 클래스로 만들 수 있음 컨테이너는 개발자가 정의한 Bean을 객체로 만들어 관리하고 개발자가 필요로 할 때 제공 스프링 컨테이너를 통해 원하는 만큼..

💡 Spring Framework 프로젝트 생성 & 초기 설정 사전 작업 JDK-11 설치 JAVA_HOME 시스템 환경변수 설정 IntelliJ IDEA 설치 프로젝트 생성 Lombok 설정 한글 깨질 때 help - Edit VM Options 이동 -Dfile.encoding=UTF-8 입력 Spring Framework의 특징 장점 효율적인 코드 작성 (무베이스 코드작성 < 기본베이스 코드작성) 정해진 규약에 따른 유지보수성↑ POJO(Plan Old Java Object) 기반의 구성 DI(Dependency Injection) 지원 AOP(Aspect Oriented Programming, 관점지향 프로그래밍) 지원 Java 언어를 사용함으로써 얻는 장점 단점 학습해야 할 것이 많음 유연한 개..