framework/spring
-
Spring Boot Logback 설정 Logback 로깅 프레임워크 중 하나로 SLF4J의 구현체이다. Logback은 logback-core, logback-classic, logback-access의 3가지 모듈로 나뉜다. logback-core는 다른 두 모듈을 위한 기반 역할을 한다. Appender와 Encoder(Layout) 인터페이스가 속한다. logback-classic은 core에서 확장된 모듈로, core와 SLF4J API 라이브러리를 가진다. Logger 클래스가 여기에 속한다. logback-access는 서블릿 컨테이너와 통합되어 HTTP 액세스에 대한 로깅 기능을 제공한다. Logback을 이용하여 로깅을 수행하기 위해 필요한 주요 설정 요소로는 Logger, Append..
[Spring] Logback 설정Spring Boot Logback 설정 Logback 로깅 프레임워크 중 하나로 SLF4J의 구현체이다. Logback은 logback-core, logback-classic, logback-access의 3가지 모듈로 나뉜다. logback-core는 다른 두 모듈을 위한 기반 역할을 한다. Appender와 Encoder(Layout) 인터페이스가 속한다. logback-classic은 core에서 확장된 모듈로, core와 SLF4J API 라이브러리를 가진다. Logger 클래스가 여기에 속한다. logback-access는 서블릿 컨테이너와 통합되어 HTTP 액세스에 대한 로깅 기능을 제공한다. Logback을 이용하여 로깅을 수행하기 위해 필요한 주요 설정 요소로는 Logger, Append..
2023.02.05 -
Spring REST Docs + Swagger Swagger, Spring REST Docs 간단한 설명 자바로 API를 개발하게 되면 일반적으로 Spring REST Docs와 Swagger 중 하나를 사용하여 API 문서화를 진행하게 된다. Spring Rest Docs와 Swagger의 특징은 아래와 같다. [Swagger] API 테스트가 가능하다. API 문서 생성이 자동으로 이루어진다. 프로덕션 코드에 Swagger 문서화를 위한 어노테이션이 추가된다. [Spring REST Docs] 테스트 코드 작성을 강제하여 API 문서가 신뢰성이 있다. 테스트 성공 이후 생성된 스니펫으로 직접 문서를 작성해야 한다. API 테스트 불가. 프로덕션 코드에 API 문서 관련 코드가 추가되면 컨트롤러 단이..
[Spring] Spring REST Docs, Swagger 조합. restdocs-api-specSpring REST Docs + Swagger Swagger, Spring REST Docs 간단한 설명 자바로 API를 개발하게 되면 일반적으로 Spring REST Docs와 Swagger 중 하나를 사용하여 API 문서화를 진행하게 된다. Spring Rest Docs와 Swagger의 특징은 아래와 같다. [Swagger] API 테스트가 가능하다. API 문서 생성이 자동으로 이루어진다. 프로덕션 코드에 Swagger 문서화를 위한 어노테이션이 추가된다. [Spring REST Docs] 테스트 코드 작성을 강제하여 API 문서가 신뢰성이 있다. 테스트 성공 이후 생성된 스니펫으로 직접 문서를 작성해야 한다. API 테스트 불가. 프로덕션 코드에 API 문서 관련 코드가 추가되면 컨트롤러 단이..
2023.01.08 -
WebSocket, SockJS, STOMP 소개 WebSocket WebSocket은 기존의 단방향 HTTP 프로토콜과 호환되어 양방향 통신을 제공하기 위해 개발된 프로토콜이다. 웹 소켓은 HTTP를 사용하는 네트워크 데이터 통신의 단점을 보완하는데 그 목적이 있다. 웹 소켓을 설명하기 이전에, 웹 소켓의 등장 이전에는 HTTP 통신의 단점을 어떻게 해결하려고 했는지 알아보겠다. WebSocket 등장 이전 모든 HTTP를 사용한 통신은 클라이언트가 먼저 요청을 보내고, 그 요청에 따라 웹 서버가 응답하는 형태이며 웹 서버는 응답을 보낸 후 웹 브라우저와의 연결을 끊는다. 이러한 통신 방식을 반이중 통신(Half Duplex)라고 한다. 실시간 검색어와 같이 서버에서 제공하는 데이터를 항상 최신으로 유..
[Spring] Web-Socket, SockJS, STOMP 이론WebSocket, SockJS, STOMP 소개 WebSocket WebSocket은 기존의 단방향 HTTP 프로토콜과 호환되어 양방향 통신을 제공하기 위해 개발된 프로토콜이다. 웹 소켓은 HTTP를 사용하는 네트워크 데이터 통신의 단점을 보완하는데 그 목적이 있다. 웹 소켓을 설명하기 이전에, 웹 소켓의 등장 이전에는 HTTP 통신의 단점을 어떻게 해결하려고 했는지 알아보겠다. WebSocket 등장 이전 모든 HTTP를 사용한 통신은 클라이언트가 먼저 요청을 보내고, 그 요청에 따라 웹 서버가 응답하는 형태이며 웹 서버는 응답을 보낸 후 웹 브라우저와의 연결을 끊는다. 이러한 통신 방식을 반이중 통신(Half Duplex)라고 한다. 실시간 검색어와 같이 서버에서 제공하는 데이터를 항상 최신으로 유..
2023.01.06 -
마이바티스(MyBatis) MyBatis 공식 사이트 확인 마이바티스(MyBatis)는 SQL을 XML에 편리하게 작성할 수 있는 SQL Mapper이다. 사용 설정 build.gradle에 의존 관계를 추가한다. dependencies { implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.0' } application.yml에 다음 내용을 추가한다. mybatis: type-aliases-package: com.example.dbaccess.domain configuration: map-underscore-to-camel-case: true mapper-locations: classpath:mapper/**/*.xml log..
[Spring] 마이바티스(MyBatis)마이바티스(MyBatis) MyBatis 공식 사이트 확인 마이바티스(MyBatis)는 SQL을 XML에 편리하게 작성할 수 있는 SQL Mapper이다. 사용 설정 build.gradle에 의존 관계를 추가한다. dependencies { implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.0' } application.yml에 다음 내용을 추가한다. mybatis: type-aliases-package: com.example.dbaccess.domain configuration: map-underscore-to-camel-case: true mapper-locations: classpath:mapper/**/*.xml log..
2022.12.11 -
JDBC Template JdbcTemplate 공식 메뉴얼 확인 스프링이 제공하는 JdbcTemplate은 JDBC를 편리하게 사용할 수 있게 도와준다. JdbcTemplate은 spring-jdbc 라이브러리에 포함되어 있어 별도의 복잡한 설정 없이 바로 사용할 수 있다. 또한 JdbcTemplate은 템플릿 콜백 패턴을 사용하여 JDBC를 직접 사용할 때 발생하는 커넥션 획득, statement 준비 및 실행, 커넥션 및 statement, resultset 종료, 트랜잭션을 위한 커넥션 동기화, 예외 변환 등 대부분의 반복 작업을 대신 처리해준다. JdbcTemplate을 사용하면 개발자는 SQL 작성, 파라미터 전달, 응답값 매핑만 하면 된다. 의존성 설정 JdbcTemplate을 사용하기 위해..
[Spring] JDBC TemplateJDBC Template JdbcTemplate 공식 메뉴얼 확인 스프링이 제공하는 JdbcTemplate은 JDBC를 편리하게 사용할 수 있게 도와준다. JdbcTemplate은 spring-jdbc 라이브러리에 포함되어 있어 별도의 복잡한 설정 없이 바로 사용할 수 있다. 또한 JdbcTemplate은 템플릿 콜백 패턴을 사용하여 JDBC를 직접 사용할 때 발생하는 커넥션 획득, statement 준비 및 실행, 커넥션 및 statement, resultset 종료, 트랜잭션을 위한 커넥션 동기화, 예외 변환 등 대부분의 반복 작업을 대신 처리해준다. JdbcTemplate을 사용하면 개발자는 SQL 작성, 파라미터 전달, 응답값 매핑만 하면 된다. 의존성 설정 JdbcTemplate을 사용하기 위해..
2022.12.10 -
스프링 초기 DB 스크립트 실행 스프링 애플리케이션 실행 시 초기 테이블 생성 및 데이터 입력이 필요한 경우가 있다. schema.sql 파일과 data.sql 파일을 작성하여 이를 해결할 수 있다. schema.sql : 테이블 생성 스크립트 data.sql : 데이터 입력 스크립트 스프링은 기본적으로 임베디드 DB(h2)일 때 classpath 위치(/src/main/resources)에서 위 스크립트 파일을 읽어서 DB를 초기화 한다. 스프링 application.yml 파일을 통해 위 설정을 커스텀 하여 사용할 수 있다. 아래는 커스텀 한 예시이다. spring: datasource: driver-class-name: org.h2.Driver url: jdbc:h2:mem:testdb userna..
[Spring] 애플리케이션 실행시 DB 테이블 및 데이터 입력스프링 초기 DB 스크립트 실행 스프링 애플리케이션 실행 시 초기 테이블 생성 및 데이터 입력이 필요한 경우가 있다. schema.sql 파일과 data.sql 파일을 작성하여 이를 해결할 수 있다. schema.sql : 테이블 생성 스크립트 data.sql : 데이터 입력 스크립트 스프링은 기본적으로 임베디드 DB(h2)일 때 classpath 위치(/src/main/resources)에서 위 스크립트 파일을 읽어서 DB를 초기화 한다. 스프링 application.yml 파일을 통해 위 설정을 커스텀 하여 사용할 수 있다. 아래는 커스텀 한 예시이다. spring: datasource: driver-class-name: org.h2.Driver url: jdbc:h2:mem:testdb userna..
2022.12.10