목록IT (60)
꾸준히 기록하자
HTTP 프로토콜에서 PUT과 PATCH 메서드는 서버의 리소스를 수정하는 데 사용되는 중요한 도구입니다. 두 메서드는 특정 상황에 적합한 방식으로 리소스를 처리하고 웹 애플리케이션 개발에서 필수적인 역할을 합니다. HTTP PUT리소스의 전체를 수정: 클라이언트가 제공하는 전체 리소스 표현으로 서버의 리소스를 수정합니다. 클라이언트는 리소스의 모든 속성을 포함하여 요청을 보내야 하며, 서버는 기존 리소스를 클라이언트가 제공한 데이터로 완전히 교체합니다.제공되지 않은 속성 처리: 클라이언트가 제공하지 않은 속성은 기본값이나 null로 설정될 수 있습니다. 즉, 전체 리소스를 대체하므로, 클라이언트가 제공하지 않은 필드는 삭제된 것으로 간주될 수 있습니다.리소스가 존재하지 않는 경우: 서버는 새 리소스를 ..
1. 리액트와 스프링부트 간의 CORS 설정 (WebConfig.java)역할: CORS 설정을 통해 특정 도메인에서 백엔드에 대한 요청을 허용이유: React 개발 서버에서 Spring Boot 백엔드 서버로 요청을 보낼 때, 브라우저의 동일 출처 정책(Same-Origin Policy) 때문에 CORS 에러가 발생합니다. 이를 해결하기 위해 Spring Boot에서 CORS 설정을 통해 React 개발 서버의 도메인(http://localhost:3000)을 허용하도록 설정합니다.import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.CorsRegi..
도메인별 계층형 패키지 구조 vs 계층별 도메인 패키지 구조1. 도메인별 계층형 패기지 구조 장점모듈화와 단일 책임 원칙 강화: 각 도메인이 별도의 패키지로 분리되어 있기 때문에, 모듈화가 잘되어 있고 각 도메인은 자신의 역할과 책임에 집중할 수 있어 코드의 가독성과 유지보수성을 높임.확장성: 새로운 기능이나 변경이 필요할 때 해당 도메인 내의 특정 계층만 수정하여 다른 도메인에는 영향을 미치지 않으므로 시스템 전체의 일관성을 유지하면서도 개발자는 필요에 따라 독립적으로 도메인을 확장할 수 있음.테스트 용이성: 각 도메인이 독립적으로 관리되기 때문에 유닛 테스트나 통합 테스트가 각 도메인 단위로 쉽게 구성될 수 있음.단점패키지 구조의 복잡성: 여러 도메인이 있고 각 도메인마다 여러 계층(controlle..
Enum을 통한 상태 코드 관리 vs DB를 통한 상태 코드 관리1. Enum을 통한 상태 코드 관리장점: 간단하고 직관적이고 코드 내에서 상태를 쉽게 참조단점: 상태 코드의 변경 및 확장이 어렵고 데이터베이스 외부에서 관리하기 때문에 일관성 보장 어려움2. DB를 통한 상태 코드 관리장점: 상태 코드의 변경 및 확장 용이하고 데이터베이스 내에서 관리하여 일관성 유지함단점: 초기 설정과 관리가 다소 복잡함결론: 상태 코드의 변경 가능성이 높다고 생각하여 일관성을 보장하기 위해 DB를 통해 관리하는 방법을 선택테이블 별로 상태 코드 테이블을 만들기 vs 공통 상태 코드 테이블을 만들기1. 테이블 별로 상태 코드 테이블을 만들기 장점: 각 테이블에 특화된 상태 코드를 관리하기 쉽고 의미가 명확함단점: 상태 ..
1. 컴포넌트 (Component)리액트 애플리케이션을 구성하는 기본 단위재사용하고 독립적인 UI 요소함수형 컴포넌트와 클래스 컴포넌트로 나뉨함수형 컴포넌트 : 함수로 정의되며, 주로 hooks와 함께 사용클래스형 컴포넌트 : 클래스 문법을 사용하여 정의 (리액트의 최신 버전에서는 함수형 컴포넌트가 더 많이 사용됨)// 함수형 컴포넌트 예제function Welcome(props) { return Hello, {props.name};}// 클래스형 컴포넌트 예제class Welcome extends React.Component { render() { return Hello, {this.props.name}; }}2. 렌더링 (Rendering)리액트 컴포넌트가 UI를 화면에 ..
Docker Hub는 Docker 이미지를 저장하고 관리할 수 있는 클라우드 기반의 중앙 저장소입니다. Docker Hub는 다음과 같은 기능을 제공하여 컨테이너 기반 애플리케이션의 개발, 관리, 배포를 지원합니다. 도커 이미지 저장소: Docker 이미지를 저장하고 공유할 수 있는 안전한 저장소를 제공합니다.자동 빌드: GitHub, Bitbucket 등의 소스 코드 저장소와 연동하여 자동으로 Docker 이미지를 빌드하고 업데이트할 수 있는 기능을 제공합니다.사용자 인증 및 접근 제어: 사용자 인증을 통해 이미지에 대한 접근을 제어하고, 팀이나 조직 단위로 관리할 수 있는 기능을 제공합니다.협업 기능: 팀이나 조직이 함께 작업하고 저장소를 공유할 수 있는 협업 기능을 제공합니다.스케일링 및 안정성: ..
Java의 java.util.Arrays 클래스는 배열을 다루기 위한 다양한 유틸리티 메서드를 제공합니다. 그 중에서 배열을 복사하는 데 자주 사용되는 copyOf()와 copyOfRange() 메서드를 소개하겠습니다. 1. copyOf() : 새로운 배열을 만들고 복사할 배열의 요소를 새배열에 복사.import java.util.Arrays;public class Main { public static void main(String[] args) { int[] orgArray = {1, 2, 3, 4, 5}; // orgArray의 복사 int[] copyArray = Arrays.copyOf(orgArray, orgArray.length); Sys..
젠킨스( Jenkins )는 소프트웨어 개발 시 CI(지속적 통합) 서비스로 git, svn 등 저장소에 업로드해서 CI를 가능하도록 제공하고 CD(지속적인 배포) 환경까지 구축할 수 있는 도구입니다. Jenkins in Docker의 장점은 "새로운 기능이나 구성을 실험할 때 내 컴퓨터에서 로컬로 빌드 서버를 실행할 수 있는 기능과 새로운 환경에서 빌드 서버를 쉽게 설정할 수 있다."입니다. 단점도 있지만 쉽게 말씀드리면 "도커에 설치된 젠킨스 내부에서 도커를 실행해야 할 때 복잡해집니다."입니다. 아래 Jenkins in Docker 설치 과정 1. docker pull jenkins/jenkins:jdk11 2. docker images - 설치된 젠킨스를 확인 3. docker run -d -p ..