개요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"파일의 소유자..