728x90
반응형
Best Story
- [Git] 특정 커밋 Merge 하기 (cherry-pick) 영어 표현에서 체리 피킹(cherry-picking)은 “체리 농장에서 맛있는 체리만 골라 딴다”는 뜻으로, 필요한 것만 선별적으로 취한다는 뜻이다 Git에서 여러 커밋 내역 중 특정 커밋만 골라서 다른 브랜치로 Merge(병합)하는 작업을 cherry-pick이라고 한다.즉, cheery-pick을 사용하면 해당 브랜치의 전체 히스토리가 아니라 필요한 특정 커밋만 골라서 Merge 할 수 있기 때문에 여러 브랜치(버전)를 관리하는 현업에서 브랜치 관리에 유용하게 사용할 수 있다. Cherry-pick 사용 방법소스 브랜치 : 커밋(소스)을 가져올 브랜치타겟 브랜치 : 커밋 내역을 가져와 병합시킬 브랜치 1. Git pull 받기소스 브랜치와 타겟 브랜치 양쪽 다 pull을 받아 최신 상태를 유지한다. .. 2025.01.20
- [JavaScript] 옵셔널 체이닝과 논리 연산자로 객체 값 안전하게 다루기 코드를 작성하다 보면 if, if, if.. null & undefined 처리를 일일이 작성하다 보면 코드가 더러워지고 가독성도 떨어지게 된다. 이를 해결하기 위한 수단으로 옵셔널 체이닝과 논리 연산을 활용할 수 있다. 1. 옵셔널 체이닝 ( ?. )용도: 객체나 배열에서 중첩된 속성에 접근할 때, 해당 경로 중간에 null 또는 undefined가 있을 경우 에러를 방지한다.특징:중간 단계에서 null 또는 undefined일 경우 바로 undefined를 반환.객체 접근에 안전하게 사용.예제:const obj = { a: { b: null } }; console.log(obj?.a?.b); // null console.log(obj?.a?.c); // undefined console.log(obj?.. 2024.12.21
- [SpringMVC] @Value로 Static 변수에 값 주입할 수 있을까? Spring에서 @Value 어노테이션은 application.properties와 같이 프로퍼티에 정의된 값을 주입하는데 사용된다.@Value 어노테이션 사용 방법.propertiesapp.name=MyApplicationapp.version=1.0.0 .java@Componentpublic class AppConfig { @Value("${app.name:default}") private String appName; @Value("${app.version:0}") private String appVersion;}보통 이렇게 @Value 형식에 맞춰 properties 값을 주입하여 주면 간단히 사용할 수 있지만 한 가지 주의할 점이 있다.@Value로 값을 주입할 변수가 sta.. 2024.12.10
- [SpringFramework] 서비스 중인 WAS 트러블슈팅 (with. Spring) WAS에서 에러가 발생하는데 GlobalException으로 잡히거나 Elastic의 HighLevel 클라이언트를 쓰는 경우 정확한 에러 파악이 어려울 수 있다 서버에서 발생한 에러 로그를 보고 파악하는 것이 가장 빠르고 간단한 방법이지만 에러 로그만으로 파악이 어려운 상황이 많고, 서버와의 환경이 달라 로컬(IDE)에서는 에러가 재현되지 않는 경우도 있다.서버 에러 확인 방법1. 에러가 발생하는 메서드의 에러 처리 (try/catch)를 제거한다.try {}catch(Exception e) {}2. log.debug()로 에러 발생이 의심되는 (Http 호출 등) 지점들에 로그를 찍는다log.info("호출 전 카운트 값 : {}", count);// 에러 의심 지점log.info("호출 후 카운트 .. 2024.12.09
- [PostgreSQL] 데이터베이스 서버 보안 취약점 방지 실제 운영중인 서비스에서 데이터베이스의 보안은 매우 중요한 문제이므로 보안 관련 설정을 적용하여 취약점을 미리 방지하는 것이 좋다. PostgreSQL은 데이터베이스 보안을 강화하기 위해 다양한 설정과 기능을 제공한다. 특히 서버 설정 파일을 통해 암호화를 적용하고 안전한 인증 방식을 사용할 수 있다. 이 글에서는 PostgreSQL의 pg_hba.conf 파일을 중심으로 hostssl 및 scram-sha-256 설정 방법과 관련 정보를 다룬다. pg_hba.conf 파일 개요경로: /var/lib/postgresql//main/pg_hba.conf역할: PostgreSQL의 호스트 기반 인증(HBA, Host-Based Authentication) 방식을 정의하며, 클라이언트 접속을 제어한다. 1... 2024.10.22
- [Tomcat] 네트워크 설정으로 서버 성능과 보안 향상시키기 WAS로 가장 많이 사용되는 톰캣의 네트워크 설정에 대해 알아보자 톰캣의 네트워크를 설정하려면 server.xml 파일을 확인해야 한다.[Tomcat 설치 경로]/conf/server.xml server.xml 파일은 서버 설정을 관리하는 핵심 구성 파일 중 하나이며 그 중 태그는 클라이언트와 서버 간의 연결을 관리하는 역할을 한다. 는 특정 프로토콜(HTTP, HTTPS, AJP 등)에 따라 클라이언트 요청을 처리하는 포트를 지정하며, 다양한 속성을 통해 성능, 보안, 기타 여러 항목을 세밀하게 조정할 수 있다. SSL을 통한 HTTPS 설정 예시위와 같이 SSL을 적용해야 한다던가 네트워크 관련 설정을 변경해야 할 경우 이런 식으로 다양한 속성들을 활용하여 설정해줄 수 있다. Connector .. 2024.10.22
- [PostgreSQL] File로 간단하게 DB Table 백업하기 개발하다 데이터를 잠깐 백업해야 하는데 pg_dump..등 사용하기 귀찮을 때 간단하게 백업하는 방법 1. 테이블 데이터 백업하기 (Backup)PostgreSQL에서 COPY + TO 명령어를 사용하여 테이블 데이터를 파일로 백업할 수 있다.#COPY {schema.table} TO '{backup_path}' DELIMITER ',' CSV HEADERCOPY test.user TO '/path/to/backup/user.csv' DELIMITER ',' CSV HEADER; 2. 백업 데이터 복구 (Restore)백업된 CSV 파일을 다시 테이블로 복구하려면 COPY + FROM 명령어를 사용하여 데이터를 복구할 수 있다.# COPY {schema.table} FROM '{file_path}' .. 2024.10.22
- [Linux] 노트북으로 개인 Linux 서버 만들기 백엔드 개발자로 살다보면 서버가 필요한 경우가 많은데 그럴 때 마다 AWS를 사용하기에는 비용적인 부담이 크다.. 남는 노트북(PC)이 있다면 직접 서버를 만들어 사용하면 된다. 💡준비물 : 노트북, USB 혹시 이렇게 노트북 모니터가 깨져서 뽑아버렸다면 HDMI 케이블로 다른 모니터에 연결해주면 된다. ⏩️ 진행 단계 : Ubuntu 설치 - USB 부팅 디스크 만들기 - USB로 부팅 1. Ubuntu 설치*Ubuntu 말고 다른 배포판을 사용하고 싶다면 원하는 운영체제를 다운받으면 된다. 아래의 링크에서 Ubuntu Server 다운로드https://ubuntu.com/download/serverUbuntu Desktop도 있지만 서버로 사용할거면 굳이 GUI는 필요 없기 때문에 서버로 사용하는.. 2024.10.03
- [Java] MyBatis: ClassNotFoundException 트러블 슈팅 (JVM 네이밍 규칙) InnerClass 사용 시 Mybatis에서 ClassNotFound 에러를 발생시키는 원인인 JVM의 클래스 네이밍 규칙..? TDD 개발 중 Mybatis 매퍼 파일에 쿼리를 작성하여 실행했을 때 resultType으로 InnerClass인 Authority 클래스를 사용한 쿼리들에서 ClassNotFoundException이 발생했다. 이래서 테스트 주도 개발이 중요하다.... SELECT authority_id AS authorityId, authority_name AS authorityName, created_date AS createdDate FROM authorities Caused by: java.lang.ClassNotFoundException: Cannot find class: kr... 2024.09.18
- [JavaScript] 집합(Set) 자료형 사용하여 시간복잡도 줄이기 a배열을 반복하며 b배열에 a의 값과 일치하는 값이 있다면 a[?] 값을 1로 변경해야 한다. // 예시 데이터let a = [ { id: 1, value: 0 }, { id: 2, value: 0 }, { id: 3, value: 0 }];let b = [ { id: 2, value: 1 }, { id: 4, value: 1 }]; 기존 로직 - 이중 반복문기존에는 배열을 순차적으로 돌며 값을 비교하기 위한 가장 쉬운 방법인 이중 반복문을 사용하였다.a 배열의 크기만큼 (i)를 반복한다.b 배열의 크기만큼 (j)를반복한다.a배열의 i와 b배열의 j번째 값을 비교한다.값이 일치한다면 a[i]를 1로 변경한다. for (let i = 0; i 외부 반복문이 a.length만큼,.. 2024.08.29
728x90
반응형