본문 바로가기

개발일지66

스프링 부트 application.yml 에서 h2 사용 시 LocolDate -> LocalDateTime으로 변경 했는데 적용 안됨 문제 해결 Timestamped 클래스에 있는 createAt이 LocalDate 타임으로 되어 있어서 날짜만 표시되고 시간이 표시가 안됐다 그래서 LocalDate 에서 LocalDateTime으로 변경했는데 h2 db에 데이터를 지우고 계속 등록해도 LocalDate 으로 반영이 됐다. 이유는 spring: mvc: pathmatch: matching-strategy: ant_path_matcher datasource: #url: jdbc:h2:mem:testdb url: jdbc:h2:./myselectdb;AUTO_SERVER=TRUE driver-class-name: org.h2.Driver username: sa password: h2: console: enabled: true settings: web-.. 2022. 5. 28.
프로세스와 스레드 프로세스 vs 스레드 프로세스 프로그램이 실행 중인 상태를 프로세스라한다. 즉, 메모리에 적재되어 실행이 되고 있는 프로그램을 프로세스라고 한다. 운영체제로부터 시스템 자원을 할당받는 작업의 단위 참고로 할당받는 시스템 자원의 예는 CPU 시간 운영되기 위해 필요한 주소공간 Code, Data, Stack, Heap의 구조로 되어 있는 독립된 메모리 영역 스레드 프로세스가 할당받은 자원을 이용하는 실행의 단위 스레드는 프로세스내에 실행되는 흐름의 단위이다. 프로세스의 특정한 수행경로 특징 스레드는 한 프로세스 내에서 동작되는 여러 실행의 흐름으로, 프로세스 내의 주소 공간이나 자원들(힙 공간 등)을 같은 프로세스 내에 스레드끼리 공유하면서 실행된다. 멀티 프로세스 하나의 응용프로그램을 여러 개의 프로세스.. 2022. 5. 15.
원시타입 vs 참조타입 (자바) 원시타입(Primitive type : 기본타입)과 참조타입(Reference type) 원시타입 정수, 실수, 문자, 논리 리터럴을 저장하는 타입을 말하고 원시 타입이라고도 부른다. 정수형 : byte, short, int, long 실수형 : float, double 문자형 : char 논리형 : boolean 실제 데이터 값을 저장하는 타입이다. 참조타입 간단하게 말하자면 기본 타입을 제외한 타입들을 말한다. 객체의 주소를 저장하는 타입이다. ex) 문자열, 배열, 열거, 클래스, 인터페이스 Java에서 실제 객체는 Heap 영역에 저장되며 참조 타입 변수는 스택 영역에 실제 객체들의 주소를 저장하여 객체를 사용할 때마다 참조 변수에 저장된 객체의 주소를 불러와 사용하는 방식이다. Stack 영역 .. 2022. 5. 7.
필터와 인터셉터 디스패처 서블릿(Dispatcher-Servlet)이란 디스패처 서블릿의 dispatch는 "보내다"라는 뜻을 가지고 있습니다. 그리고 이러한 단어를 포함하는 디스패처 서블릿은 HTTP 프로토콜로 들어오는 모든 요청을 가장 먼저 받아 적합한 컨트롤러에 위임해주는 프론트 컨트롤러(Front Controller)라고 정의할 수 있습니다. 필터(Filter)란 필터(Filter)는 J2EE 표준 스펙 기능으로 디스패처 서블릿(Dispatcher Servlet)에 요청이 전달되기 전/후에 url 패턴에 맞는 모든 요청에 대해 부가작업을 처리할 수 있는 기능을 제공한다. 디스패처 서블릿은 스프링의 가장 앞단에 존재하는 프론트 컨트롤러이므로, 필터는 스프링 범위 밖에서 처리가 되는 것이다. 즉, 스프링 컨테이너가 .. 2022. 5. 7.
스프링 AOP란 AOP (Aspect Oriented Programming)는 관점 지향 프로그래밍이다. 관점 지향은 쉽게 말해 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화하겠다는 것이다. 여기서 모듈화란 어떤 공통된 로직이나 기능을 하나의 단위로 묶는 것을 말한다. 예를들어 핵심적인 관점은 결국 우리가 적용하고자 하는 핵심 비즈니스 로직이 이다. 부가적인 관점은 핵심 로직을 실행하기 위해서 행해지는 데이터베이스 연결, 로깅, 파일 입출력 등을 예로 들 수 있다. AOP에서 각 관점을 기준으로 로직을 모듈화한다는 것은 코드들을 부분적으로 나누어서 모듈화하겠다는 의미다. 이때, 소스 코드상에서 다른 부분에 계속 반복해서 쓰는 코드들을 발견할 수 있는 데 이것을 **.. 2022. 5. 7.
DI(의존성 주입) 방법 의존관계 주입 의존관계 주입은 크게 4가지 방법이 있다. 생성자 주입 수정자 주입(Setter 주입) 필드 주입 일반 메서드 주입 생성자 주입 생성자를 통해서 의존 관계를 주입 받는 방법이다. 특징 생성자 호출시점에 딱 1번만 호출되는 것을 보장한다. 불변, 필수 의존관계에 사용 생성자가 딱 1개만 있으면 @Autowired를 생략해도 자동 주입 된다. 물론 스프링 빈에만 해당한다. private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; //@Autowired // 생성자가 하나이기 때문에 @Autowired 를 생략 가능하다. public OrderServiceImpl(MemberReposi.. 2022. 5. 6.