개요Spring 기반의 프로젝트를 살펴보면, Service와 ServiceImpl로 나누어진 구조를 자주 접하게 됩니다. 그런데 저는 개인 프로젝트나 팀 프로젝트를 진행할 때에는 별도로 ServiceImpl을 두지 않고 하나의 Service 클래스에서 비즈니스 로직을 구현하곤 했습니다. 하지만 실제 업무에서 코드를 분석하다 보니, 많은 프로젝트들이 Service와 ServiceImpl을 분리하는 방식을 택하고 있었습니다. 이 글에서는 왜 Service와 ServiceImpl을 분리하는지, 이러한 구조를 채택한 이유에 대해서 정리하고자 합니다. 분리하는 이유는❓1. 유지보수성Service는 인터페이스로 정의하고, ServiceImpl에서 실제 구현을 담당하는 방식은 결합도를 낮추고 변경에 유연하게 대응할..
전체 글
좋은 성과를 얻으려면 한 걸음 한 걸음이 힘차고 충실하지 않으면 안 된다. -단테개요Spring boot를 사용한 백엔드 개발을 하다보면 자연스럽게 JSON데이터를 객체로 매핑해야하는 경우가 있습니다. 이러한 Java 객체와 JSON 간의 변환 작업, 즉 '직렬화(Serialization)'와 '역직렬화(Deserialization)'는 매우 중요한 과정인데, 본 글에서는 이 과정을 효율적으로 처리하기 위한 강력한 도구인 ObjectMapper에 대해서 정리하고자 합니다. 직렬화 & 역직렬화란❓직렬화(Serialization) 직렬화는 객체의 상태를 바이트 스트림이나 다른 형식(JSON, XML 등)으로 변환하는 과정입니다. 이 과정을 통해 메모리에 존재하는 객체를 외부에서 사용할 수 있는 형태로 변환합니다. 주요 목적:네트워크를 통한 데이터 전송파일 시스템에 데이터 저장다른 시..
개요도커(Docker)는 컨테이너화된 애플리케이션을 위한 다양한 네트워크 모드를 제공합니다. 각 네트워크 모드는 서로 다른 사용 사례와 요구사항을 충족시키기 위해 설계되었습니다. docker network ls 위와 같이 ls 명령어로 현재 네트워크 목록을 확인하면 아래와 같이 3가지의 네트워크 모드가 존재하는 것을 알 수 있습니다. bridge, host, none 이외에도 추가적으로 Ipvlan,Macvlan도 존재하는 데 본 글에서는 이 도커의 주요 네트워크 모드들을 정리하고자 합니다. Bridge 네트워크 모드란❓Bridge 네트워크는 도커의 기본 네트워크 모드입니다. 도커의 브릿지 네트워크 모드는 컨테이너들이 서로 통신할 수 있게 해주는 가상의 네트워크 브릿지를 생성합니다. 왼쪽 그림에서 볼 ..

개요리눅스 시스템에서 파일과 디렉토리의 소유권은 보안과 접근 제어에 매우 중요한 요소입니다. 리눅스에서는 "chown"라는 개념이 존재하는 데, chown(change owner) 명령어는 이러한 소유권을 관리하는 핵심 도구입니다. 본 글에서는 chown 명령어에 대해서 정리하고자 합니다. chown이란❓리눅스에서 파일과 디렉토리는 각각 소유자(owner) 와 소유 그룹(group)을 가지는데, chown(change owner)은 파일이나 디렉토리의 소유자 또는 그룹을 변경하는 명령어입니다.기본 사용법1. 파일 소유자 변경chown 새로운소유자 파일명 예시chown user1 myfile.txt # myfile.txt의 소유자를 user1로 변경위와 같이 실행하면 "myfile.txt"파일의 소유자..