이게 왜 궁금해? tag 생성으로부터 trigger 되는 CI/CD pipeline을 구성하던 중 한 가지 문제가 생겼다. Gitops 방식을 사용하고 있는 프로젝트였고, tag 가 생성되면 production 까지 배포될 수 있도록 Container image를 생성하고 Cluster git repo의 container tag를 앞에서 빌드한 tag로 수정하는 작업을 수행하도록 구성했다. 문제는 tag 가 어느 Branch에서 만들어지던간에 Pipeline이 Trigger되어 production 까지 배포될 수 있는 것이었다. 예를 들어 temp branch에서 tag를 생성해 push하면 production 으로 배포될 수 있었다. 특정 branch에서 tag 가 생성하였는가를 판단하는 Webhook..
Transaction이 제공하는 안정성 보장(safety guarantee)은 흔히 원자성(Atomicity), 일관성(Consistency), 격리성(Isolation), 지속성(Durability)를 의미하는 ACID로 알려져있다. 많은 강의, 책에서 Transaction을 설명할 때, 필수적인 개념으로 등장하며 무조건 보장되어져야하고 모든 데이터베이스에서 지켜지고 있는 것처럼 설명한다. 하지만 현실에서는 참 애매모호하다. ACID의 의미가 모호한 부분이 있어서 데이터베이스마다 ACID 구현이 제각각이다. ACID에 대해 각각 살펴보자. Atomicity 원자성은 쓰기 작업 중 일부만 성공한 후 결함이 생기면 어떤 일이 생기는지 이야기한다. 여러 쓰기 작업이 하나의 원자적인 트랜잭션으로 묶여 있는데 ..
그냥 내가 잊지 않기위해 작성하는 포스트. 2년만에 다시 공부하는 Java. Type casting부터 애를 먹기 시작했다. 생각해보면 언어별 Type casting을 하는 방식이 다 다르다는 것을 인식해서, 그걸 좀 정리해보고자 한다. Type casting에 대해 깊게 파고들면 명시적, 암묵적 형변환으로 나뉘며 많은 이야기들이 나오는데 그런 깊은 내용들은 나중에 다뤄보기로 하고 여기서는 단순히 명시적 형변환을 하는 법에 대해 다뤄보고자 한다. 또한, 여기서는 단순히 숫자 문자 데이터를 숫자로 바꾸는 것이 아닌 말 그대로 문자를 아스키코드 형 숫자로 바꾸는 것을 이야기한다. 일단, 나는 Python, Javascript(Node.js), C++를 최근 다뤄오고 있다. 그래서 인지 몰라도, 아무튼 다음과..
프로젝트를 하며 단순히 결과물을 만들어내는 것에 찌들어 살다보면 그 내부적인 원리는 모른 채 누군가 만들어 놓은 것들을 활용하고만 있는 나를 발견하곤 한다. 그런 나를 내부적인 원리 지식들과 기초적인 CS 지식들로 하여금 채찍질하기 위하여 이렇게 차근차근 조그마한 것들을 적자. 컴파일 Compile 개발자가 작성한 소스코드를 바이너리 코드로 변환하는 과정 다시 말해, 개발자가 이해할 수 있는 프로그래밍 코드들을 컴퓨터가 이해할 수 있도록 기계어로 변환하는 작업을 의미한다. 이러한 작업을 해주는 프로그램을 컴파일러(Compiler)라고 한다. Java의 경우, JVM(Java Virtual Machine)에서 실행 가능한 바이트 코드 형태의 클래스파일이 생성된다. 링크 Link 분리된 소스파일들을 컴파일 ..
- Total
- Today
- Yesterday
- 쿠버네티스
- gradle
- c++
- MySQL
- tag
- jasync
- python
- Spring boot
- 비동기
- java
- 일상
- k8s
- container
- 알고리즘
- Log
- Clean Architecture
- Algorithm
- WebFlux
- Kubernetes
- Spring
- HTTP
- docker
- 클린 아키텍처
- 백준
- Istio
- hexagonal architecture
- 로그
- 하루
- boj
- Intellij
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |