Back-End
프로젝트에 Jacoco 적용하기
JaCoCo가 무엇인지에 대해서는 이전 글에서 다루었다. (링크: JaCoCo란?)우아한 기술블로그에 연철님이 작성하신 Gradle 프로젝트에 JaCoCo 설정하기를 참고하여 적용하였다. 개발 환경나는 Java 21, SpringBoot 3.3.3, Gradle 9.0을 사용하고 있다. 1. build.gradle의 plugins 블럭에 jacoco 플러그인 추가plugin { ... id 'jacoco' ...} 2. jacoco 블럭을 만들어서 버전, 테스트 결과 리포트를 저장할 경로 지정속성으로는 toolVersion과 reportsDir이 있다.toolVersion: JaCoCo 버전 (필수)JaCoCo Releases (GitHub)에서 릴리즈된 버전 정보를 확인할 수 있다.re..
Jacoco란?
JaCoCo를 적용하는 방법은 다음 글에서 소개하고, 이 글에서는 JaCoCo에 대한 간단한 설명만 다룹니다. JaCoCo 적용 방법 링크: 프로젝트에 JaCoCo 적용하기 1. JaCoCo 소개JaCoCo란 무엇인가? Java Code Coverage를 의미자바 어플리케이션의 코드 커버리지를 측정하는 도구주로 단위 테스트, 통합 테스트와 함께 사용되며, Java 5 이상에서 사용 가능 코드 커버리지란?테스트 코드가 애플리케이션의 실제 코드를 얼마나 실행했는지를 나타내는 지표테스트 코드가 애플리케이션의 주요 로직을 모두 실행하지 않았다면, 그 로직은 문제가 있을 수 있다. (테스트하지 않은 로직이므로)커버리지 측정 지표각 지표는 테스트 코드가 코드의 특정 부분을 얼마나 잘 실행하고 있는지를 나타니며,이 ..
[Spring/SpringBoot] SpringBoot 프로젝트 세팅하기
스프링부트 프로젝트를 처음 세팅하려면 어떻게 해야할까?직접 디렉토리와 파일을 만들면서 프로젝트를 세팅해도 되지만, 클릭 몇 번으로 자동으로 생성해주는 사이트(http://start.spring.io)를 이용할 수도 있다. 왼쪽 부분에서 프로젝트 구성 방법과 언어, 스프링부트 버전, 자바 버전, 프로젝트 메타데이터 등을 입력하고,오른쪽 부분에서 ADD DEPENDENCIES 버튼을 눌러 프로젝트에 필요한 의존성을 추가해주면 된다.그 다음, 하단의 GENERATE 버튼을 누르면 zip 파일이 다운로드 되고, 이를 압축 해제한 후 프로젝트를 구현하면 된다.
[Spring] Interceptor
Interceptor란? intercept의 사전적 의미 : 중간에 가로채다 HTTP 요청 처리 중에 발생하는 이벤트를 가로채고 처리하는 객체 특정한 URL 패턴 또는 컨트롤러에 대해 공통으로 적용되는 작업을 수행할 수 있다. 좀 더 정확하게 말하면, controller의 핸들러(클라이언트가 요청한 url에 따라 실행되는 메서드)를 호출하기 전과 후에 요청과 응답을 가로채서 원하는 동작을 추가할 수 있도록 해준다. (ex. 로그인 체크, 응답에서 알림 개수 조회) 동작 과정 구현방법 1. HandlerInterceptor 인터페이스 구현하기 Interceptor를 만드려면 HandlerInterceptor 인터페이스를 implement한 객체에 preHandle(), postHandle(), afterC..
[웹 백엔드] 웹서버와 WAS를 분리하는 이유
WAS (Web Application Server) Web Applicatoin Server의 약자로, 웹 애플리케이션을 실행할 수 있는 미들웨어 (WAS에 대한 자세한 설명은 아래 게시글에 나와 있습니다.) [웹 백엔드] WAS WAS (Web Application Server) Web Applicatoin Server의 약자로, 웹 애플리케이션을 실행할 수 있는 미들웨어 (미들웨어에 대한 설명은 여기에서 참고) 애플리케이션 실행 환경을 구축하고, 다양한 기능을 제 yejinlife.tistory.com 웹서버와 WAS를 분리하는 이유 성능 및 확장성 웹 서버는 정적인 파일을 처리하고, WAS는 동적인 요청을 처리한다. 웹 서버와 WAS를 분리함으로써 각각의 역할에 특화된 서버를 구성하고, 성능 및 확..
[웹 백엔드] WAS
WAS (Web Application Server) Web Applicatoin Server의 약자로, 웹 애플리케이션을 실행할 수 있는 미들웨어 (미들웨어에 대한 설명은 여기에서 참고) 애플리케이션 실행 환경을 구축하고, 다양한 기능을 제공하여 개발자와 서버 운영자가 각각의 역할에 집중할 수 있도록 지원 웹 애플리케이션은 동적인 컨텐츠를 제공하기 위해 서버 측에서 프로그램 코드를 실행해야 하는데, 이를 가능하게 해주는 것이 WAS 웹 서버와 마찬가지로, 클라이언트의 요청에 대한 응답을 생성하는 데 사용 웹 서버는 정적인 컨텐츠를 제공하는 것이 주된 역할이고, WAS는 애플리케이션 로직을 실행하는 것이 주된 역할 웹 애플리케이션을 실행하기 위해 필요한 자원, 라이브러리, 클래스, 데이터베이스 등을 관리하..
[웹 백엔드] 미들웨어 (MiddleWare)
미들웨어 (MiddleWare) 란? 미들웨어의 탄생 배경 과거에는 애플리케이션과 시스템을 동일한 서버에서 실행 ⇒ 서로 다른 애플리케이션들이 상호작용하기 힘듦 ∴ 각각의 애플리케이션은 자체적으로 모든 기능을 구현해야 했음 ⇒ 애플리케이션의 개발 및 유지보수가 복잡해짐 클라이언트 쪽에 비즈니스 로직이 많을 경우, 클라이언트 관리(배포 등)로 인해 비용이 많이 발생하는 문제도 발생 이러한 문제들를 해결하기 위해 미들웨어가 등장하였다. 미들웨어란? 서로 다른 애플리케이션, 시스템, 프로토콜 등의 컴퓨터 프로그램들이 서로 상호작용할 수 있도록 도와주는 소프트웨어 (즉, 다른 소프트웨어와 소통하기 위한 인터페이스 역할을 함) 비즈니스 로직을 (클라이언트와 DBMS 사이의) 미들웨어 서버에서 동작하도록 함으로써 ..
[웹 백엔드] HTTP 요청 메서드
HTTP 요청 메지지의 헤더에는 요청 메서드, 요청 URL, HTTP 프로토콜 버전이 포함된다. 요청 메서드 : GET, PUT, POST, PUSH, OPTIONS 등의 요청 방식이 온다. 요청 URI : 요청하는 자원의 위치를 명시한다. HTTP 프로토콜 버전 : 웹 브라우저가 사용하는 프로토콜 버전이다. HTTP 요청 메서드 종류 주요 메서드 GET : 정보를 요청하기 위해서 사용한다. (SELECT) POST : 정보를 밀어넣기 위해서 사용한다. (INSERT) PUT : 정보를 업데이트하기 위해서 사용한다. (UPDATE) PATCH : 리소스 부분 변경 (PUT은 전체 변경, PATCH가 일부 변경) DELETE : 정보를 삭제하기 위해서 사용한다. (DELETE) 기타 메서드 HEAD : H..
[웹 백엔드] JDBC
부스트코스의 무료강의 중 웹 백엔드 강의를 수강하고 정리한 내용입니다. 부스트코스 사이트 다 함께 배우고 성장하는 부스트코스 부스트코스(boostcourse)는 모두 함께 배우고 성장하는 비영리 SW 온라인 플랫폼입니다. www.boostcourse.org JDBC (Java Database Connectivity) 란? 자바를 이용한 데이터베이스 접속과 SQL 문장의 실행, 실행 결과로 얻어진 데이터의 핸들링을 제공하는 방법과 절차에 관한 규약 자바 프로그램 내에서 SQL문을 실행하기 위한 자바 API SQL과 프로그래밍 언어의 통합 접근 중 한 형태 JAVA는 표준 인터페이스인 JDBC API를 제공 데이터베이스 벤더, 또는 기타 써드파티에서는 JDBC 인터페이스를 구현한 드라이버(driver) 제공..