Tech (58) 썸네일형 리스트형 [SpringBoot] Logging - 2 (Logback) 1. Logback Logback 은 자바 로깅 프레임워크 중 하나로 Spring boot 에서 기본 로깅 모듈로 사용하고 있는 모듈이다. Spring boot 에서 dependency 를 설정할 때 spring-boot-starter-web 패키지를 설정하는데, 해당 패키지에 Logback 이 포함되어 있다. Logback 은 일반적으로 logback.xml 파일을 통해 설정하는데, Spring boot 환경에서는 logback-spring.xml 파일을 통해서 Logback 을 설정한다. Logback 의 설정으로는 로그를 출력하는 방식 (콘솔, 파일, 네트워크 통신 등등), Spring Profile 별 로그 설정, 로그 레벨, 로그 형식 등등의 기능을 설정할 수 있다. 2. Logback 설정 -.. [SpringBoot] Logging - 1 (JCL, Slf4j, logback, log4j, log4j2) 1. Spring logging 예전의 Spring 은 JCL (Jakarta Commons Logging) 을 사용하여 로깅을 구현하였다. JCL 은 인터페이스 형태로 되어 있는데, 이를 구현한 구현체를 사용하여 여러 로깅 구현체로 교체하면서 사용할 수 있다. JCL 의 구현체는 Configuration 을 통해서 설정할 수 있는데, JCL 이 구현체를 선택하는 시점은 컴파일 시점이 아닌 런타임 시점이다. 그렇기 때문에 JCL 은 클래스 로더에 의존적인 방식으로 로깅 구현체를 찾게된다. JCL 은 클래스 로더를 통해 컴파일 시점에 로깅 구현체를 찾는 방식에서 가비지 컬렉션이 제대로 작동하지 않는 문제가 발생한다. 이러한 문제를 해결하기 위해 클래스 로더 대신에 컴파일 시점에 구현체를 선택하는 방식으로 .. [SpringBoot] Database 연동 - 3 (JdbcTemplate) 1. JdbcTemplate Spring 에는 Database 를 사용할 수 있는 방법으로 JdbcTemplate 이 있다. 순수 JDBC 에서는 DB Connection 을 얻고 해제하는 등의 DB 작업을 위해 반복되는 코드들이 있다. JdbcTemplate 은 이러한 반복 코드들을 제거할 수 있도록 되어서 사용에 편리하고 자원을 얻고 해제하는 등의 코드를 작성하면서 발생할 수 있는 문제들을 피할 수 있도록 해준다. 물론 SQL 쿼리문은 직접 작성하여야 한다. JdbcTemplate 은 사용할 때 설정은 앞서 JDBC 를 사용하기 위해서 했던 Spring Datasource 등의 설정과 동일하게 수행하면 된다. 2. 구현 JdbcTemplate 으로 구현 시에는 기존의 JDBC 와는 다르게 Connec.. [SpringBoot] Database 연동 - 2 (JDBC) 1. JDBC - JDBC 란? JDBC 는 Java Database Connectivity 의 줄임말로, DB 에 접근할 수 있도록 자바에서 제공하는 자바 표준 SQL 인터페이스 API 이다. 다양한 종류의 RDBMS 에 접속하고 SQL 문을 수행하여 처리하는 작업을 할 때 사용된다. JDBC 를 통한 자바 애플리케이션과 DB 의 구조는 다음과 같다. 자바 애플리케이션 - JDBC API - JDBC Driver - Database JDBC 는 인터페이스 API 이기 때문에, 각 DBMS 에 맞는 JDBC 드라이버를 설정해주어야 한다. JDBC 드라이버는 실제 DBMS 와 통신을 수행하는 자바 클래스로 jar 파일로 제공됩니다. JDBC 드라이버는 DBMS url 과 계정 정보 등을 입력받아서 DB 연.. [SpringBoot] Database 연동 - 1 (DataSource, h2 database) 1. DataSource DataSource 는 실제 물리적인 database 들과의 연결을 위한 팩토리이다. DriverManager 클래스의 대체제로 username, password 과 URL 을 사용하여 database 와 연결합니다. DataSource 를 통해서 Connection 객체와 connection pooling, distributed transactions 등의 기능을 사용할 수 있습니다. - Configuring a DataSource DataSource 를 사용하기 위해서 먼저 build.gradle 파일의 의존성에 jdbc 라이브러리를 추가한다. 만약 maven 을 사용한다면 pom.xml 의 dependency 에 추가하면 된다. implementation 'org.sprin.. [Spring] Spring MVC 1. Spring MVC 구조MVC 패턴은 애플리케이션의 각 영역을 Model, View, Controller 로 역할을 나누어 설계하는 디자인 패턴이다. 각 영역의 역할은 다음과 같다. - Controller: HTTP 요청을 받아 파라미터를 검증하고 비즈니스 로직을 실행한다. View 에 전달할 결과 데이터를 모델에 담아서 반환한다. 이때 Controller 와 Model 사이에 Service layer 를 두어서 실제 비즈니스 로직을 구현한다.- Model: view 에 출력할 데이터를 저장하고 있다. Controller 에서 요청이 들어왔을 때 조회, 삽입, 삭제, 수정 등의 데이터를 다루는 동작을 수행한다.- View: 모델에 담겨있는 데이터를 사용하여 화면에 렌더링한다.- Spring MVC.. [Spring] @Controller vs @RestController Spring 에서 컨트롤러를 지정해주는 어노테이션으로 @Controller 와 @RestController 가 있다. @Controller 는 Spring MVC 에서 Controller 의 역할을 하는 클래스를 지정하는 것으로 요청에 대한 응답을 Spring MVC 에서 View 에 결과 객체를 담아서 반환한다. 반면에 @RestController 는 Restful 한 웹 서비스를 구현할 때 사용하는 어노테이션으로 @RestController 로 지정된 클래스는 결과 값을 View 가 아닌 객체 그 자체로 JSON 이나 XML 형태로 반환한다. 해당 결과들은 Http Response 의 Body 에 담겨져서 Client 로 전달된다. 1. @Controller @Controller 는 Client 의 .. [Docker] Docker vs VM 도커는 하나의 서버에 여러개의 격리된 컨테이너를 구동시켜서 동작시키는 일종의 가상화 기술이다. 그렇다면 기존의 가상화 기술은 어떻게 동작하고 있으며 도커와의 차이점은 무엇일까? 1. VM (Virtual Machine) 가상화 기술이란 물리적인 하드웨어 자원을 논리적인 리소스로 제공하기 위한 기술이다. 가상화 기술을 통해서 물리적인 자원을 논리적으로 구분지워서 각 프로세스에 할당하거나 할 수 있다. 가상화 기술 발전 이전에는 하나의 서버에 하나의 애플리케이션만 구동시킬 수 있었다. 하나의 서버에 하나의 OS, 프로그램 만을 운영하기 때문에 안정적이었지만, 남는 서버 자원을 그대로 방치시키기 때문에 비효율적인 경우가 많았다. 이런 비효율성을 극복하기 위해 등장한 것이 가상화 기술이다. 그 중에서도 하이퍼바.. 이전 1 2 3 4 5 6 7 8 다음