본문 바로가기

전체 글62

[TIL]오늘의 노트 CI/CDCI(Continuous Integration)CI 는 소프트웨어 개발에서 다음과 같은 과정을 자동화하는 것을 의미한다.코드 변경 사항을 저장소에 통합하는 과정코드를 빌드하는 과정코드를 테스트하는 과정코드를 배포 가능한 상태로 만드는 과정CD(Continuous Deployment/Delivery)CD 는 지속적인 배포 자동화를 의미한다.NGINX의 LOAD BALANCING로드 밸런싱은 여러 서버에 트래픽을 분산시켜 부하를 줄이고 성능을 최적화 하는 기술을 의미한다.niginx 가 제공하는 로드 밸런싱은 4가지 방식이 존재한다.1. 라운드 로빈(Round Robin) 방식 - default서버들에게 순차적으로 요청을 배분하는 방식이다.2. Least Connections 방식연결 개수가 가장 .. 2025. 2. 19.
[TIL]오늘의 노트 git 서브모듈git 에서 제공하는 서브모듈은 하나의 레포지토리의 하위에서 다른 레포지토리를 함께 관리할 수 있도록 돕는 도구를 의미한다.즉, 하나의 레포 내에 다른 레포를 포함해 관리할 수 있다.서브 모둘에서 변경된 사항들은 추적되지 않고 커밋 단위로만 보여진다.서브모듈 설정하기기준 레포의 루트에서 아래 명령어를 입력하여 하위에 서브모듈 레포지토리를 등록할 수 있다.git submodule add {추가할 서브모듈에 해당하는 레포지토리 url}서브모듈 변경 내용 커밋/푸쉬하기서브모듈 디렉토리 내로 들어가서 git 명령어 작업을 수행한다.서브모듈 업데이트아래의 명령어를 이용해 서브모듈 레포를 최신화 한다.# 처음 세팅할 때 init 을 수행한다 git submodule initgit submodule u.. 2025. 2. 18.
오늘의 노트 Arrays.asList() 와 List.of() 의 차이Arrays.asList() 는 Arrays 클래스 내부에 구현된 또다른 별개의 ArrayList를 구현하고 있으며, List.of() 는 mmutableCollections 객체의 내부 클래스인 ListN 객체를 구현한다. 즉, 둘 다 util 의 ArrayList 가 아니다.Arrays.asList() 는 변경이 가능하기 때문에 Thread-Safe 하지 않다. List.of는 완전 불변하기 때문에 쓰레드에 안전하다.Arrays.asList() 는 null 요소를 허용하고 List.of()는 null 요소를 허용하지 않는다.메모리는 List.of 가 덜 사용. 따라서 반 불변인 Arrays.asList 보단 완전 불변인 List.of 사용 권장.. 2025. 2. 16.
[Jpa/QueryDsl] QueryDsl 설정 및 조회 기능 구현 (+동적 정렬) querydsl을 활용한 기본적인 조회 기능 구현에 대해서 기록해보고자 한다.이전에 한 번 업무에서 querydsl을 간단히 다루는 경험을 한 적이 있는데, 그게 벌써 약 2년 전 일이 되었다.그런 만큼, querydsl 활용이 조금 걱정되었는데, 다행히 전에 구현했던 기억이 조금은 남아 있어서 + 간단한 조회 기능이라 수월하게 작업을 해보았다. Springboot 버전 3이 되면서 querydsl 연동도 간결해져서 작업하는데 수월했다.QueryDsl정적 타입을 이용해 sql 과 같은 쿼리를 생성할 수 있도록 도와주는 오픈소스 프레임워크쿼리를 문자열로 작성하는 것이 아닌 프레임워크에서 제공하는 API를 활용해 코드 형태로 작성해 쿼리를 생성해주므로, 타입 안정성이 보장되고 런타임 에러를 방지할 수 있다... 2025. 2. 16.