개발

    [Docker] 도커 기초 #1

    이전 회사에서는 기본적으로 도커를 이용하여 MariaDB나 Spring Boot 등 프로그램을 컨테이너화 시켜서 사용하는 일이 흔했습니다. 제가 개발자 생활을 약 3년 동안 하면서 유용하게 사용해온 도커에 대해 정리해보고자 합니다. #1 Docker란? 컨테이너(Container) 기반의 오픈소스 가상화 플랫폼입니다. 이전에는 프로그램을 한 대의 컴퓨터에서 직접 프로그램을 실행시키는 작업을 하였지만, 이제는 프로그램을 컨테이너화 시켜 격리된 환경에서 프로그램을 돌리는 것입니다. 화물 컨테이너를 생각하면 편합니다. 큰 배에 화물을 실으려면 그냥 물건을 실는거보다 컨테이너에 종류별로 묶어 실으면 물건들이 종류별로 나눠져 관리하기 쉬워집니다. #2 장점 글보다 사진을 참고하여 이해하면 편합니다. 하나의 OS에..

    자바 클래스 이름에 Impl을 사용하지 말아야 하는 이유

    자바에는 abstract 클래스를 이용한 상속과 interface를 이용한 상속이 있습니다. 저는 interface로 기본 틀을 만들어 같은 기능을 하는 클래스에 다른 로직을 적용해야 할 때 많이 사용하고 있습니다. 스프링에서 Service 기능을 만들 때 UserServiceImpl, SettingServiceImpl 이런 구현체들을 많이 보셨을겁니다. 그러다가 전에 스프링부트로 개인프로젝트를 진행하면서 문뜩 생각이 났습니다. "어쩌피 서비스 하나 구현해서 쓸건데 왜 굳이 인터페이스를 구현하고 정의해서 쓰지?" UserService라는 interface를 만들고 UserServiceImpl 이라는 클래스를 하나 구현할건데 처음부터 클래스명을 UserService라고 하고 거기에 구현하면 되지 않을까 싶..