백엔드 TIL 4

[Docker] 도커란? 도커파일(Docker File) 개념과 작성법

Docker도커란 소프트웨어를 컨테이너로 패키징하여 배포하고 실행하는 플랫폼이다.어플리케이션을 개발한 후 실행할 때 필요한 환경들을 패키징 하여 별 다른 설치 없이 한번에 실행시켜주도록 하는 것을 컨테이너화 한다고 한다. 이런 방식으로 우리는 애플리케이션을 배포할 때 발생하는 Environment Disparity(개발 환경이 맞지 않는 상태) 문제를 해결할 수 있다. 도커 사용 과정 요약Docker를 사용하면 개발 환경을 표준화하고 배포할 수 있습니다. 먼저, 개발 컴퓨터와 서버에 Docker를 설치합니다. 이후, 필요한 환경을 설정하는 Dockerfile을 작성하여, 소프트웨어와 라이브러리의 구성을 정의합니다. 이 Dockerfile을 기반으로 Docker 이미지를 생성한 후, 컨테이너를 실행하여 독..

백엔드 TIL 2024.07.30

[TDD] TDD 방법론, 테스트 주도 개발

테스트 주도 개발(Test-Driven Development, TDD)은 소프트웨어 개발 방법론 중 하나로, 테스트 코드를 먼저 작성한 후 실제 코드를 작성하는 방식이다. 이런 방식은 버그를 줄이고 수정하는데 도움이 된다.  TDD의 주요 단계 1. 테스트를 실패하는 코드 작성새로운 기능이나 수정할 기능에 대해 실패하는 작은 단위 테스트를 작성 2. 테스트를 통과하는 최소한의 코드 작성빠르게 테스트를 통과하는 간단하고 명확한 코드를 작성 3. 리팩토링코드의 중복을 제거하고 최적화  TDD의 대표적인 프레임워크 'JUnit' JUnit은 Java 애플리케이션의 단위 테스트를 위해 널리 사용되는 프레임워크이다. 현재 JUnit5 버전이 가장 널리 사용되고 있다.단위 테스트란 가장 작은 단위(보통 함수나 메서..

백엔드 TIL 2024.07.17

[OOP] 객체 지향 프로그래밍이란?

객체 지향 프로그래밍(Object-Oriented Programming)은 필요한 데이터를 객체(Object)라고 하는 단위로 구성하는 프로그래밍 방법입니다. 객체에는 데이터와 해당 데이터를 처리하는 메소드가 포함될 수 있으며, 이러한 객체가 모여 프로그램을 구성합니다. 그럼 객체란 무엇일까요? 클래스의 인스턴스(instance)로, 실제로 메모리에 할당된 데이터입니다. 객체는 클래스에서 정의한 속성과 동작을 가지고 있습니다. 객체와 인스턴스만약 우리가 School 이라는 클래스에서 student라는 객체를 만들고 싶다면School student = new School() 이렇게 new 키워드로 객체를 생성할 수 있습니다. 인스턴스라는 말은 특정 객체(student)가 어떤 클래스(School)의 객체인..

백엔드 TIL 2024.07.11

[Spring] Spring과 좋은 객체 지향 프로그래밍에 대해서

스프링(Spring)은 단일 개발 도구를 말하는 것이 아니다. 스프링이라는 단어는 문맥에 따라 다른 의미를 가질 수 있지만 크게 스프링 프레임워크 자체를 말하거나 스프링에 관련된 다양한 기능을 제공하는 핵심 기술 중 하나인 스프링 부트, 이 모든 것을 포함한 스프링 생태계를 스프링이라고 부르기도 한다. 스프링 프레임워크 & 스프링 부트 차이 1. 스프링 프레임워크다양한 엔터프라이즈 기능을 제공하는 모듈화된 컴포넌트의 모음이다.- 스프링 DI 컨테이너, AOP 와 같은 핵심 기술- JDBC, ORM, 트랜잭션 관리 등 데이터 액세스 기술- 스프링 MVC 와 같은 웹 기술이런 스프링 프레임워크의 기술들을 '스프링 부트'를 통해서 편리하게 사용할 수 있는 것이다. 2. 스프링 부트- 단독으로 실행 가능한 스프..

백엔드 TIL 2024.07.09