Spring MVC? Model / View / Controller로 역할을 나누는 패턴이다. MVC 패턴의 목적은 Business Logic과 Presentation Logic을 분리하는 것이다. Business Logic : 어떤 특정한 값을 얻기 위해 데이터 처리를 수행하는 응용프로그램의 일부 (즉, 원하는 값을 얻기 위해 백엔드에서 일어나는 각종 처리) Presentation Logic : 화면상의 디자인 구성을 위한 처리 (즉, 화면을 보여주기 위한 처리) 역할 별로 코드를 분리하여 하나의 파일에 코드가 모이는 것을 방지하기 때문에, 가독성과 코드 재사용이 증가한다. 단점으로 View와 Model 사이의 높은 의존성 때문에 애플리케이션이 커질수록 복잡해지고 유지보수가 어렵다. Model Cont..
JPA는 영속성 컨텍스트라는 것을 사용하는데, 엔티티가 영속성 컨텍스트에서 관리되면 여러 가지 장점을 얻을 수 있다. 1차 캐시를 통한 빠른 데이터 조회 변경 감지 (Dirty Checking) 하지만 영속성 컨텍스트는 Dirty Checking을 위해서 스냅샷을 가지고 있어야 하기 때문에, 많은 메모리를 사용해야 한다는 단점이 있다. 이 때문에 엔티티를 조회할 때, 읽기 전용 모드로 조회하면 메모리를 최적화할 수 있는 이점을 얻을 수 있다. 읽기 전용 모드의 종류 1. 스칼라 타입 SELECT p.id, p.age, p.name FROM Person p 엔티티 객체가 아닌 스칼라 타입으로 조회하기 때문에 영속성 컨텍스트가 결과를 관리하지 않아 메모리를 최적화할 수 있다. 2. 읽기 전용 쿼리 힌트 Pe..
의존성 주입 (Dependency Injection) 의 종류 1. 생성자 주입 방식 (Constructor Injection) 생성자를 통해 의존성을 주입하는 방식이다. 총 3가지 주입 방식 중 가장 권장되는 주입 방식이다. (아래에서 자세히 설명) public class ExampleClass { // final을 사용할 수 있다. private final Example example; @Autowired public ExampleClass(Example example) { this.example = example; } } 2. 필드 주입 방식 (Field Injection) @Autowired 어노테이션을 통해 의존성을 주입하는 방식이다. 사용법이 매우 간단하다. public class Exampl..
ELK (Elastic Stack) 구성, 버전 jdk 11 ElasticSearch 7.2.0 Kibana 7.2.0 Logstash 7.2.0 Logstash 설치 및 테스트 설치 - Logstash URL (1) 테스트 파일 작성 $ vi 설치경로/config/logstash-example.conf logstash-example.conf 파일을 만들고 아래 내용을 입력한다. input { stdin {} } output { stdout {} } (2) 테스트 $ cd 설치경로/bin $ ./logstash -f ../config/logstash-example.conf 위 명령어를 입력하면 아래와 같은 화면을 볼 수 있다. (테스트 성공) Logstash와 Spring Boot 연동 (1) logst..