CI/CD
·
TIL
😮 CI / CD란 ?  Continuous Integration / Continuous Deployment(Delivery)의 약자로 지속적인 통합과 지속적인 제공을 의미한다.CI / CD는 애플리케이션 개발부터 배포까지 모든 단계를 자동화하여 효율적이고 빠르게 사용자에게 배포할 수 있도록 함 🙁 CI - 지속적인 통합애플리케이션의 버그 수정이나 새로운 코드 변경이 주기적으로 빌드 및 테스트되면서 공유되는 git repository에 통합되는 것을 의미Git에 Push나 PullRequest 요청이 온다면 해당 코드를 빌드하고 테스트 코드를 실행하며 문제 없는지 체크하는 과정이 자동화된다. 👉 CI의 장점자동화된 빌드와 자동화된 테스트를 제공하여 안정적인 코드를 빠르게 제공할 수 있는 밑거름이된다..
Batch Insert로 100만건 데이터 생성하기
·
TIL
👉 Batch Insert란 ?Spring Data JPA의 saveAll() 메서드를 통하여 엔티티를 저장한다면 아래와 같이 데이터의 갯수만큼 Insert 쿼리가 나가게됩니다. 이렇게 된다면 저장해야될 데이터가 많아질 수록 시간이 오래걸리고 성능저하의 문제가 발생한다.INSERT INTO users(created_at, modified_at, email, nickname, password, user_role) values('2024-11-20 20:43:05.944329', '2024-11-20 20:43:05.944329', 'dl805327@gmail.com', '권형심', '$2a$04$LbX5GfGOwEMKSBqN0QT6L.D5deA/Ys2Okyt1sc6E51uXcVh.rd0Tm', 'ROLE..
Docker - 자주 사용하는 명령어
·
TIL
😆 Docker System 정보docker version : Docker 버전 및 상세정보 확인docker -v : Docker 버전 및 빌드 버전을 한줄로 간단하게 확인docker system info : Docker의 시스템 전체 정보 확인docker system events : 서버로 부터 실시간 이벤트를 받는다.docker system df : 도커 디스크의 사용량 확인docker login -u [ID] : 도커 허브에 로그인🙂 Docker - 이미지이미지 목록 조회docker imagesordocker image ls 이미지 검색docker search [이미지 이름] 이미지 다운docker pull [이미지 이름]:[버전] //latest 기재 시 최신 버전 다운로드 가능 이미지 삭제d..
Docker란 ?
·
TIL
🤔 Docker(도커) 란 ?Docker는 컨테이너 기반의 오픈 소스 가상화 플렛폼이다.Docker는 애플리케이션과 그 의존성을 가상화된 컨테이너에 담아 효율적으로 실행할 수 있게 해준다.이를 통해 다양한 운영체제와 환경에서 일관된 실행 환경을 제공하고, 개발과 운영 간의 이식성을 높여준다. 🤯 컨테이너란?컨테이너는 도커의 핵심 개념으로,  격리된 환경에서 프로세스를 실행하기 위한 경량화된 가상화 단위로 애플리케이션과 그에 필요한 모든 종속성(라이브러리, 실행파일 등)을 컨테이너에 패키징하여 동일한 환경에서 실행할 수 있게 한다.🧐 Docker ImageDockerImage란 서비스 운영에 필요한 종속성(라이브러리, 실행파일 등)을 묶어서 가지고 있는 것이다.Dokcer 이미지들은 github와 똑..
JPA - QueryDSL
·
TIL
👻 QueryDSL이란 ?SQL, JPQL 등을 코드로  작성할 수 있도록 해주는 프레임워크이며, 쿼리를 type-safe(컴파일시 에러 체크 가능)하게 Java 코드로 작성할 수 있다. JPQL 이란?JPA에서 지원하는 다양한 쿼리 방법 중 가장 단순한 조회 방법으로, SQL의 경우에는 DB 테이블을 대상으로 쿼리를 질의하지만, JPQL은 엔티티 객체를 대상으로 쿼리를 질의JPQL의 경우 아래 코드에서 볼 수 있듯, 쿼리를 문자열로 입력하므로 오타가 발생하면 관리가 어렵고, type-safe 불가능하여 런타임에서 해당 쿼리가 실행되어야만 오류를 발견할 수 있다는 단점이있다.@Query("select t from Todo t inner JOIN fetch t.user where t.modifiedAt ..
Service와 ServiceImpl 왜 나누는거지?
·
TIL
지금까지는 Service Interface를 따로 두지 않고  Service 클래스를 단일로 사용하는 구조로 개발을 했다.그런데 다른 분들의 코드나 강의에서 나오는 코드들 중 Service - ServiceImpl 구조가 많이 보였다.많은 분들이 쓰신다면 저 구조로 설계를 하는 것이 맞는 것이겠지만 왜 저런 구조로 쓰는지 알지도 못하면서아무 생각 없이 저 구조를 사용한다면 의미가 없다는 생각이 들어 관련 블로그들을 보며 정리해보게됐다. Service interface와 ServiceImpl class 구조를 사용하는 이유인터페이스와 구현체의 분리를 통해 특정 기술이나 외부환경에 독립적으로 보다 자유로운 확장이 가능하다.구현체 클래스를 변경하거나 확장해도 이를 사용하는 클라이언트의 코드에 영향을 주지 않도..