2024/03 15

[TDD] 테스트 주도 개발 시작하기 - TDD 시작(+예제)

TDD에 대해 공부하고 싶어 최범균 - 테스트 주도 개발 시작하기 책을 빌려서 읽기 시작했다. 차근차근 실습을 시작해보도록 한다. TDD(Test-driven Development) 테스트를 먼저 하고 그다음에 구현한다. package chap02; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; public class CalculatorTest { @Test // 메서드를 테스트 메서드로 인식한다. void plus(){ int result = Calculator.plus(1, 2); assertEquals(3, result); // 인자로 받은 두 값이 동일한지 비교 } } 이 ..

ETC 2024.03.11

[Docker] 도커란 무엇인가?

도커란? 도커는 '데이터 또는 프로그램을 격리시키는 기능을 제공하는 소프트웨어'이다. 이 기능은 주로 서버에 사용된다. 다양한 프로그램과 데이터를 각각 독립된 환경에 격리하는 기능을 제공한다. 운영체제 통째로 격리한다. 컨테이너와 도커 엔진 예를 들어 개인용 컴퓨터 또는 서버 상의 환경을 조립형 창고 같은 작은 방으로 분할한다 생각해보자. 그리고 이런 창고에 데이터나 프로그램을 두는 것이다. 이 조립형 창고를 컨테이너라고 한다. 그리고 이 컨테이너를 다루는 기능을 제공하는 소프트웨어가 도커다. 도커를 사용하려면 도커 소프트웨어 본체인 도커 엔진을 설치해야 한다. 그리고 도커 엔진을 사용해 컨테이너를 생성하고 구동시킬 수 있다. 이미지 컨테이너를 만드려면 도커 엔진 외에도 컨테이너의 빵틀과 같은 역할을 ..

DEVOPS/DOCKER 2024.03.05

[Spring] 스프링 MVC1- 웹 애플리케이션 이해(WAS, 서블릿, 쓰레드)

현재 거의 모든 형태의 데이터를 HTTP 로 전송한다. Web Server HTTP 기반으로 동작 정적 리소스(html, css , js, img..)제공, 기타 부가 기능 ex) nginx, apache Web Application Server(WAS) HTTP 기반으로 동작 프로그램 코드를 실행해 애플리케이션 로직 수행 ⇒ HTTP 요청이 오면 사용자에 따라서 다른 화면을 보여줄 수 있음 정적 리소스도 제공 가능 동적 html, http api(json) 생성 가능 서블릿, jsp, 스프링 mvc가 WAS 에서 동작 ex) tomcat, jetty WAS는 애플리케이션 코드를 실행하는데 더 특화되어 있다. 💡 Web Server: 정적 리소스 제공하는 서버 WAS: 애플리케이션 로직을 실행하는 서버 ..

BACK/SPRING 2024.03.04

[Spring] 스프링 핵심 원리 - 빈 스코프

스코프: 빈이 존재할 수 있는 범위 싱글톤: 기본 스코프, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프 프로토타입: 스프링 컨테이너는 프로토타입 빈의 생성과 의존관계 주입(초기화 메서드까지) 까지만 관여하고 더는 관리하지 않는 매우 짧은 범위의 스코프 클라이언트에게 빈을 반환하고, 스프링 컨테이너는 이후에 빈을 관리하지 않음(이후에는 클라이언트가 관리) 컨테이너에 요청할 때마다 새로 생성 스프링 컨테이너에서 빈을 조회할 때 생성되고, 초기화 메서드도 실행 종료 메서드가 호출되지 않음 (클라이언트가 직접 해야함) 프로토 타입 스코프, 싱글톤 빈 함께 사용 시 문제점 public class SingletonWithPrototypeTest1 { @Test void prototypeFin..

BACK/SPRING 2024.03.04

[Spring] 스프링 핵심 원리 - 빈 생명주기 콜백

스프링 빈의 이벤트 라이프 사이클 스프링 컨테이너 생성 → 스프링 빈 생성 → 의존 관계 주입 → 초기화 콜백 → 사용 → 소멸전 콜백 → 스프링 종료 스프링은 의존 관계 주입이 완료되면 스프링 빈에게 콜백 메서드를 통해 초기화 시점을 알려줌스프링은 스프링 컨테이너가 종료되기 직전에 소멸 콜백을 줌 💡 객체의 생성과 초기화(무거운 동작)를 분리하자  빈 생명주기 콜백 지원 3가지 인터페이스(InitializingBean, DisposableBean) InitializingBean 은 afterPropertiesSet() 메서드로 초기화를 지원한다.DisposableBean 은 destroy() 메서드로 소멸을 지원한다.잘 사용 X  설정 정보에 초기화 메서드, 소멸 메서드 지정설정 정보에 @Bean(i..

BACK/SPRING 2024.03.04