전체 글 240

스프링 어노테이션

@Transactional@Transactionalpublic void createUser(User user) { userRepository.save(user); emailService.sendWelcomeEmail(user);}해당 범위 내의 DB 작업을 하나의 트랜잭션으로 묶어 처리한다.모두 성공하면 커밋, 하나라도 실패하면 모두 롤백한다.적용 위치에 따라 다르게 작동한다:클래스에 선언 → 해당 클래스의 모든 public 메서드에 적용메서드에 선언 → 해당 메서드에만 적용주의: private, protected, default 접근자 메서드에는 적용되지 않다.옵션:@Transactional(rollbackFor = Exception.class) @Valid@PostMapping("/user..

IT/Spring 2025.07.15

HikariCP

🔍 HikariCP란?HikariCP는 경량의 고성능 JDBC 커넥션 풀이다.Spring Boot에서는 기본 커넥션 풀로 HikariCP를 사용하고 있으며, 빠른 속도와 낮은 메모리 사용량으로 잘 알려져 있다.Hikari는 일본어로 "빛"이라는 뜻이며, 그 이름처럼 빠르고 가볍다는 특징을 가진다.Spring Boot 2.x부터는 HikariCP가 기본으로 설정되어 있기 때문에 별도 설정 없이도 바로 사용할 수 있다.🤔 커넥션 풀애플리케이션이 데이터베이스에 접근할 때마다 커넥션을 새로 생성한다면 다음과 같은 문제점이 발생한다.커넥션 생성/종료는 비용이 크고 느리다대량의 요청 처리 시 DB 자원 고갈 가능성이 있다응답 속도 저하, 장애 발생 위험이 있다➡️ 이런 문제를 해결하기 위해 미리 일정량의 커넥션..

IT/Spring 2025.07.12

macOS | Linux 공통 주요 명령어

macOS (zsh)와 Linux (bash/zsh) 에서 공통으로 사용되는 주요 명령어🐚 공통 기본 명령어 표명령어 기능 macOS (zsh) Linux (bash/zsh) 차이점명령어기능macOS (zsh)Linux차이점 ls디렉토리 목록 보기ls -G (컬러)ls --color=auto컬러 옵션 다름cd디렉토리 이동동일동일❌ 없음mkdir폴더 생성동일동일❌ 없음touch빈 파일 생성동일동일❌ 없음rm파일/폴더 삭제동일동일❌ 없음cp파일 복사동일동일❌ 없음mv파일 이동/이름 변경동일동일❌ 없음cat파일 내용 출력동일동일❌ 없음echo문자열 출력동일동일❌ 없음pwd현재 디렉토리 출력동일동일❌ 없음grep문자열 검색동일동일✅ GNU grep이 더 많은 기능find파일 찾기동일동일✅ 옵션 차이 있음man..

IT/IT 2025.06.17

Docker 명령어

Docker 명령어 기능별로 정리 🐳 Docker 명령어 요약표분류명령어설명버전 확인docker -v docker versionDocker 버전 정보 확인시스템 상태 확인docker infoDocker 시스템 정보 출력이미지docker images로컬에 저장된 이미지 목록 보기 docker pull 이미지 다운로드 docker build -t .Dockerfile로 이미지 생성 docker rmi 이미지 삭제컨테이너 실행/종료docker run 새 컨테이너 생성 및 실행 docker run -d 백그라운드로 실행 docker run -it 터미널로 인터랙티브 실행 docker exec -it bash실행 중 컨테이너에 접속 docker stop 컨테이너 정지 docker start 컨테이너 시작 d..

IT/Cloud & DevOps 2025.06.17

vi 또는 vim 편집기의 주요 단축키, 명령어

vi 또는 vim 편집기의 주요 단축키(명령어)vi는 모드 기반 편집기라, 현재 어떤 모드에 있느냐에 따라 동작이 달라집니다.🧭 모드 설명명령 모드기본 모드. 커서 이동, 삭제, 복사 등 가능입력 모드글자 입력 가능 (i, a 등으로 진입)명령행 모드저장, 종료 등 (: 키로 진입)🖱️ 명령 모드에서 자주 쓰는 단축키i커서 앞에 입력 모드 진입a커서 뒤에 입력 모드 진입o아래 줄에 새 줄 만들고 입력 모드x커서 위치 한 글자 삭제dd한 줄 삭제yy한 줄 복사 (yank)p복사한 내용 붙여넣기u실행 취소Ctrl + r실행 취소 취소 (redo):명령행 모드 진입/검색어아래 방향으로 검색n검색 결과 중 다음 결과로 이동⌨️ 명령행 모드 (입력 방법: :):w저장 (write):q종료 (quit):wq 또..

IT/IT 2025.06.16

맥 MacOS 단축키

💻 MacOS 자주 쓰는 단축키 모음 📁 파일 및 창 관리파일 삭제Command + BackspaceDeletefn + BackspaceFinder 새 탭에서 열기Finder에서 클릭 후 Command + 더블클릭앱 종료Command + Q잘라내기 후 붙여넣기Command + Option + V창 숨기기fn + H폴더 생성Command + Shift + N 창 닫기Command + W최소화Command + M전체화면 전환Control + Command + F🖥️ 화면 제어 및 정리Mission Control 보기Control + ↑Dock 보기/숨기기Option + Command + D화면 분할 / 전체화면 제어Control + Option + 방향키 / U/I/J/K/ Enter🔍 검색 및 ..

IT/IT 2025.06.10

Studying English (3)

2019년쯤 부터 사용해온 영어쉐도잉 어플, 꾸매영.미디어로 공부할 수 있어 재미없지 않고 좋았다.영어 공부 어플 추천추천해요!https://play.google.com/store/apps/details?id=com.doctor9.evdtenmineng 🎬 The IT Crowd - This is the Internet ● I offer a loan of it, so that you could use it in your speech.나는 너가 스피치에서 이걸 사용할 수 있게 대여를 제안해. China offered a loan of about $50 billion for the development of the gas fields.중국은 약 500억 달러의 가스 지역들의 개발에 대한 대여를 제안했다..

ENGLISH 2025.06.02

IntelliJ 인텔리제이 자동 임포트, 자동 빌드 설정하기

💡 IntelliJ IDEA의 Auto Import (자동 임포트) 설정 하기. 인텔리제이에서 🔎 Files > Settings fly 검색`Add unambiguous imports on the fly`,`Optimize imports on the fly`,를 체크하고 적용한다! ✅ Add unambiguous imports on the fly의미: 코드에 명확한(import 가능한 후보가 하나뿐인) 클래스 이름을 쓰면, 자동으로 import 문을 추가해준다.예: List를 쓰면 자동으로 import java.util.List;가 추가된다 (중복되는 List가 없을 때).Java와 Kotlin 각각 따로 설정할 수 있다. ✅ Optimize imports on the fly의미: 사용되지..

IT/IT 2025.05.28

IntelliJ 인텔리제이 Keymap 설정

인텔리제이에서 단축키(Shortcut) 설정하기IntelliJ IDEA는 다양한 개발 환경(Eclipse, Visual Studio, Sublime 등)에 익숙한 개발자들을 위해 Keymap 설정을 자유롭게 변경할 수 있도록 지원한다.이 Keymap 설정 방법을 단계별로 알아보자. 🔎 File > Settings > keymap 검색Keymap 안의 Windows 로 되어있는 select box 를 `Eclipse`로 변경그 아래에 검색창에 font 검색더보기Eclipse: Eclipse IDE에서 사용하는 단축키 스타일. Decrease Font Size 더블클릭 Add Keyboard Shortcut 선택 키보드에서 Ctrl + Shitft + - 를 친다OK 누르고 설정! 이렇게 단축키를 변경..

IT/IT 2025.05.28

IntelliJ 인텔리제이 폰트 설정

인텔리제이에서 폰트 변경해보기. D2Coding 으로 변경해보았습니다. https://github.com/naver/d2codingfont?tab=readme-ov-file GitHub - naver/d2codingfont: D2 Coding 글꼴D2 Coding 글꼴. Contribute to naver/d2codingfont development by creating an account on GitHub.github.com위의 사이트에 들어가 다운로드 항목의 `Ver 1.3.2` 눌러서 이동 zip 파일을 다운받아 압축 풀고, 원하는 버전 파일을 열어 설치 누르기 IntelliJ 인텔리제이에서 Files > Settings > Font 검색Appearance & Behaviore 탭에..

IT/IT 2025.05.27

Kubernetes ConfigMap과 Secret을 사용한 환경변수 관리

💡 ConfigMap- 여러 가지 설정 정보들을 기록해두는 공간이다 - 설정값(환경변수, 설정파일 등)을 키-값 형태로 저장하고, Pod에 주입할 수 있게 해주는 오브젝트이다 - 여러 종류의 Pod에 동일하게 적용해야 하는 환경 변수가 있을 때- Pod 안 애플리케이션의 동작을 바꾸고 싶을 때 (예: 타이틀, 포트, 외부 API 주소)- 같은 컨테이너 이미지이지만 환경마다 설정을 다르게 하고 싶을 때- 보안 민감도가 낮다 (예: 앱 이름, 공개 포트, 타이틀 등)- 텍스트 데이터만 저장 가능하다- Pod 안에서 환경 변수, 커맨드라인 인자, 파일 등으로 전달 가능하다 💡 Secret- 비밀번호, API 토큰, 인증 정보 등 민감한 데이터를 저장하고, Pod에 안전하게 주입하는 오브젝트이다 - 데이..

IT/Cloud & DevOps 2025.04.25

GKE 노드풀과 클러스터 오토스케일러

💡 NodeGroup - 노드 그룹이란 같은 역할을 하기 위해 모인 여러 개의 노드를 묶어서 부르는 용어이다- 노드(서버)들의 묶음을 의미하며, 주로 클라우드 환경에서 관리되는 노드 집합을 말한다 - 노드 그룹은 쿠버네티스의 오브젝트가 아니고, 편의를 위해 만든 개념이다 (쿠버네티스는 이 존재를 모른다)- AWS, GCP, Azure와 같은 클라우드에서 노드 그룹(Node Group)이라는 개념은 자동 스케일링, 업데이트, 관리 등을 쉽게 하기 위해 사용된다 - 쿠버네티스 클러스터 안에는 실제로 다양한 사양의 노드가 존재할 수 있다 => 여러 노드를 용도별로 분류해놓아 관리의 편의성을 높인다 - 실제 대규모 환경에서는 노드의 개수도 매우 많기 때문에 이를 그룹화하여 노드 그룹으로 관리하는 경우가 ..

IT/Cloud & DevOps 2025.04.24

Kubernetes의 Node와 Pod, Pod의 리소스 설정 (Request, Limit)

💡 Node 와 Pod- Node는 Kubernetes 클러스터에서 실제로 Pod가 실행되는 가상머신(또는 물리 서버) 이다- 쿠버네티스 안에서 실행 중인 Pod들은 논리적인 단위이기 때문에, 실제로는 물리적인 컴퓨터인 Node 안에서 프로세스로써 실행이 되는 것이다 - 파드는 언제나 노드 상에서 동작한다.- 노드는 쿠버네티스에서 워커 머신을 말하며 클러스터에 따라 가상 또는 물리 머신일 수 있다.- 각 노드는 컨트롤 플레인에 의해 관리된다.- 하나의 노드는 여러 개의 파드를 가질 수 있고, 쿠버네티스 컨트롤 플레인은 클러스터 내 노드를 통해서 파드에 대한 스케쥴링을 자동으로 처리한다.- 컨트롤 플레인의 자동 스케줄링은 각 노드의 사용 가능한 리소스를 모두 고려한다.- Node 안에는 Kubelet, ..

IT/Cloud & DevOps 2025.04.24

ReplicaSet : 정해진 수의 Pod을 유지시켜주는 관리자

💡 ReplicaSet - Pod을 관리하는 쿠버네티스 오브젝트 - 쿠버네티스에서 pod의 개수를 유지하는 역할을 하는 리소스 - ReplicaSet 은 실행되는 Pod 개수에 대한 가용성을 보증하며 지정한 Pod 개수만큼 항상 실행될 수 있도록 관리한다- 예를 들어, 웹서버 nginx를 3개 띄우고 싶다 => ReplicaSet이 Pod 3개가 모두 살아 있는지 계속 감시하고, 하나가 죽으면 자동으로 다시 생성해준다. 너무 많으면 초과된 Pod은 삭제해준다 - ReplicaSet의 목적은 Replica Pod 집합의 실행을 항상 안정적으로 유지하는 것이다- 이처럼 ReplicaSet 은 보통 명시된 동일 파드 개수에 대한 가용성을 보증하는데 사용한다 - ReplicaSet 을 정의하는 필드는 획..

IT/Cloud & DevOps 2025.04.21

Pod : 쿠버네티스에서 컨테이너 실행하는 방법

💡 Pod- 쿠버네티스에서 다루는 가장 기본적인 단위를 의미하는 오브젝트이다 - 쿠버네티스에서 가장 기본이 되는 배포 단위이자, 컨테이너를 감싸는 논리적인 단위이다 - 컨테이너 여러개를 묶어서 하나의 역할을 하는 작은 가상의 컴퓨터처럼 동작한다- 내부에 있는 컨테이너들은 같은 IP와 포트를 공유하고, 같은 네트워크 공간을 사용한다 - 같은 pod 안에서는 같은 포트를 공유할 수 없다 - 일반적으로 하나의 컨테이너만 포함하는 구조가 많다 (유지보수 & 디버깅을 위해) | pod 안에 여러 컨테이너를 넣는 이유- 하나의 기능을 완성하려면 여러 컴포넌트가 필요하다 - 여러 앱을 하나의 컨테이너에 넣다 보면 문제를 파악하는데 어려움을 겪을 수 있다 - 일반적으로 컨테이너 하나에는 앱을..

IT/Cloud & DevOps 2025.04.21

컨테이너 레지스트리란? GCP Artifact Registry 로 실습해보기

💡컨테이너 레지스트리란?- 컨테이너 이미지를 저장하고 관리하는 공간이다- 도커 이미지를 만들면, 그 이미지를 어디엔가 저장해두고, 필요할 때 꺼내서 실행해야 한다 - 그 저장소가 바로 컨테이너 레지스트리(Container Registry) 이다 - 도커 이미지가 없으면 컨테이너를 실행할 수 없다- 다음과 같은 작업이 필요하다 - 이미지를 만든다 (docker build) - 어딘가에 저장한다 (docker push) - 저장된 이미지를 다른 서버나 클러스터에서 가져온다 (docker pull)- 이 모든 흐름의 중심이 되는 것이 레지스트리이다 | 퍼블릭 vs 프라이빗 레지스트리 설명대표 서비스 퍼블릭 레지스트리누구나 접근 가능, 검색 가능Docker Hub프라이빗 레지스트리소유자 ..

IT/Cloud & DevOps 2025.04.20

클라우드 환경에서 쿠버네티스 클러스터 만들기

💡 쿠버네티스- 컨테이너화된 애플리케이션을 자동으로 배포, 관리, 확장(스케일링)해주는 오케스트레이션 도구다 - 쿠버네티스 플랫폼을 이용하면 컨테이너 기술을 이용해서 만들어졌기 때문에 대규모 서비스 환경을 운영하기 위한 2가지 요소 "고가용성", "내결함성"을 자동으로 챙길 수 있다 - 운영체제에 상관없이 개발자의 의도대로 서비스가 운영된다 💡 컨테이너 오케스트레이션- 여러 개의 컨테이너를 자동으로 배포하고, 연결하고, 복구하고, 확장하는 것이다 - 복잡한 컨테이너 운영이 필요할 때, 자동으로 운영해주는 툴 = 컨테이너 오케스트레이션 툴- 컨테이너 오케스트레이션 툴은 쿠버네티스가 대표적이며, 이외에도 다양한 툴들이 있다 - Kubernetes, AWS ECS, Docker Swarm, A..

IT/Cloud & DevOps 2025.04.19

도커 이미지 만들어 보기

💡도커 이미지- 도커 이미지(컨테이너 이미지)는 앱을 실행시키기 위한 환경 설정부터 각종 파일까지 앱을 위한 모든 구성 요소를 하나로 패키징 한 파일이다 - 도커 이미지를 실행시켜서 컨테이너를 만든다 | 도커 이미지의 구조 (Layer 기반)- 도커 이미지는 레이어(layer) 라는 개념으로 구성되어 있다- 이미지가 변경될 때마다 새로운 레이어가 추가된다 - 이 레이어는 캐시로 재사용 가능해서 빌드 속도가 빠르다 예)FROM ubuntu:20.04 # 베이스 레이어RUN apt install curl # 새로운 명령 = 새로운 레이어COPY . /app # 또 다른 레이어 | 도커 이미지는 아래와 같은 원리로 만들어진다 1. 가장 기본이 되는 빈 도커 이미지..

IT/Cloud & DevOps 2025.04.19
반응형