Keycloak 활용한 SSO 구현 : #5 SSO 연동 테스트: Keycloak과 애플리케이션의 완벽한 통합
SSO 연동 테스트: Keycloak과 애플리케이션의 완벽한 통합이번 글에서는 이전에 구성한 샘플 애플리케이션에 Single Sign Out을 구성해보고, 사전에 구축한 Keycloak을 활용하여 ArgoCD와 연동하는 방법을 안내드리겠습니다.• None 완벽한 HTTPS 보안: Ingress 컨트롤러와 Let's Encrypt으로 무료 인증서 설정하기• None Keycloak 설치부터 설정까지: SSO를 위한 첫걸음• None SSO 연동 샘플 애플리케이션 구성하기: 실전 가이드• None SSO 연동 테스트: Keycloak과 애플리케이션의 완벽한 통합ArgoCD는 Kubernetes 환경에서 애플리케이션을 지속적으로 배포(CD, Continuous Delivery)하기 위한 GitOps 기반의 오픈 소스 도구입니다.Git 리포지토리를 단일 소스로 삼아 Kubernetes 클러스터의 상태를 선언적 방식으로 관리하며, 안정적이고 일관된 배포 환경을 제공합니다.이번 가이드에서는 ArgoCD를 설치하고 Keycloak과 연동하여 SSO(Single Sign-On) 테스트를 수행해보겠습니다.이를 통해 안전하고 효율적인 접근 관리 및 인증 환경을 구축할 수 있습니다.ingress.yaml 파일을 하나 생성합니다.Ingress를 클러스터에 배포합니다.브라우저로 접속되는지 확인합니다. 인증서가 Stage용으로 배포되었기 때문에 경고 메시지를 확인할 수 있습니다.일단 접속이 되면 인증서를 Production용으로 변경합니다.yq 유틸리티가 설치되어 있지 않다면, 파일에서 부분을 로 직접 변경하시면 됩니다.ArgoCD의 배포와 접속이 성공적으로 완료되었다면, 이제 Keycloak에서 ArgoCD와의 원활한 인증 및 권한 관리를 위해 클라이언트를 생성하고 세부 설정을 진행해야 합니다.이 단계에서는 Keycloak이 ArgoCD의 인증 서버 역할을 수행할 수 있도록 클라이언트 ID, 인증 방식, 리디렉션 URI 등의 필수 설정을 꼼꼼하게 구성해야 합니다.이를 통해 사용자 접근 제어 및 보안 정책이 체계적으로 적용될 수 있습니다.로그인 설정과 관련된 URL을 그림을 참고하여 입력합니다.을 복사하여 ArgoCD 설정시에 사용합니다.Client Scope 설정시에 이름을 로 입력합니다.새로운 맵펑를 생성합니다. 타입은 을 선택합니다.이름과 토큰 클레임명을 로 지정합니다.이제 클라이언트를 구성하여 그룹 범위를 설정할 수 있습니다.신규로 그룹을 생성합니다.멤버에 alice를 추가합니다.이상으로 Keycloak에서 설정하는 부분은 모두 완료하였습니다.Keycloak에서 설정한 클라이언트 정보를 ArgoCD에서 설정하는 작업을 진행합니다. 먼저 argocd 값을 base64로 인코딩해야 합니다.인코딩한 값을 키로 추가합니다.이제 config 맵을 구성하고 OIDC 구성을 추가하여 Keycloak 인증을 활성화 할 수 있습니다.• None Keycloak 서버 및 realm 정보를 입력합니다. Keycloak 버전이 17보다 이전인 경우 Keycloak 릴리스의 발
argocd
1/10/2025
Keycloak 활용한 SSO 구현 : #5 SSO 연동 테스트: Keycloak과 애플리케이션의 완벽한 통합
SSO 연동 테스트: Keycloak과 애플리케이션의 완벽한 통합이번 글에서는 이전에 구성한 샘플 애플리케이션에 Single Sign Out을 구성해보고, 사전에 구축한 Keycloak을 활용하여 ArgoCD와 연동하는 방법을 안내드리겠습니다.• None 완벽한 HTTPS 보안: Ingress 컨트롤러와 Let's Encrypt으로 무료 인증서 설정하기• None Keycloak 설치부터 설정까지: SSO를 위한 첫걸음• None SSO 연동 샘플 애플리케이션 구성하기: 실전 가이드• None SSO 연동 테스트: Keycloak과 애플리케이션의 완벽한 통합ArgoCD는 Kubernetes 환경에서 애플리케이션을 지속적으로 배포(CD, Continuous Delivery)하기 위한 GitOps 기반의 오픈 소스 도구입니다.Git 리포지토리를 단일 소스로 삼아 Kubernetes 클러스터의 상태를 선언적 방식으로 관리하며, 안정적이고 일관된 배포 환경을 제공합니다.이번 가이드에서는 ArgoCD를 설치하고 Keycloak과 연동하여 SSO(Single Sign-On) 테스트를 수행해보겠습니다.이를 통해 안전하고 효율적인 접근 관리 및 인증 환경을 구축할 수 있습니다.ingress.yaml 파일을 하나 생성합니다.Ingress를 클러스터에 배포합니다.브라우저로 접속되는지 확인합니다. 인증서가 Stage용으로 배포되었기 때문에 경고 메시지를 확인할 수 있습니다.일단 접속이 되면 인증서를 Production용으로 변경합니다.yq 유틸리티가 설치되어 있지 않다면, 파일에서 부분을 로 직접 변경하시면 됩니다.ArgoCD의 배포와 접속이 성공적으로 완료되었다면, 이제 Keycloak에서 ArgoCD와의 원활한 인증 및 권한 관리를 위해 클라이언트를 생성하고 세부 설정을 진행해야 합니다.이 단계에서는 Keycloak이 ArgoCD의 인증 서버 역할을 수행할 수 있도록 클라이언트 ID, 인증 방식, 리디렉션 URI 등의 필수 설정을 꼼꼼하게 구성해야 합니다.이를 통해 사용자 접근 제어 및 보안 정책이 체계적으로 적용될 수 있습니다.로그인 설정과 관련된 URL을 그림을 참고하여 입력합니다.을 복사하여 ArgoCD 설정시에 사용합니다.Client Scope 설정시에 이름을 로 입력합니다.새로운 맵펑를 생성합니다. 타입은 을 선택합니다.이름과 토큰 클레임명을 로 지정합니다.이제 클라이언트를 구성하여 그룹 범위를 설정할 수 있습니다.신규로 그룹을 생성합니다.멤버에 alice를 추가합니다.이상으로 Keycloak에서 설정하는 부분은 모두 완료하였습니다.Keycloak에서 설정한 클라이언트 정보를 ArgoCD에서 설정하는 작업을 진행합니다. 먼저 argocd 값을 base64로 인코딩해야 합니다.인코딩한 값을 키로 추가합니다.이제 config 맵을 구성하고 OIDC 구성을 추가하여 Keycloak 인증을 활성화 할 수 있습니다.• None Keycloak 서버 및 realm 정보를 입력합니다. Keycloak 버전이 17보다 이전인 경우 Keycloak 릴리스의 발
2025.01.10
argocd
좋아요
별로에요
토스 피플: 문과생에서 토스 개발 리더까지
이번 토스 피플에서는 UX Engineering Team Leader 조유성님의 이야기를 들어봤어요. 유성님은 토스에 Full Stack Engineer로 입사했지만, Frontend Engineer로 직무 전환을 한 다음, 지금은 토스의 디자인 시스템을 개발하는 UX Engineering 팀에서 리더 역할을 하고 있어요. 문과생에서 Full Stack Developer, Frontend Developer, UX Engineer에서 팀 리더까지 맡으신 유성님의 이야기 오늘 들려드릴게요.Frontend UX Engineer라는 직무는 조금 생소한데요, 어떤 직무이고 토스에서 어떤 일을 담당하나요?사실 저는 UX Engineer로 직무를 바꾼지 오래되지는 않았어요. 정식으로는 작년 2-3월쯤이었던 거 같아요. UX Engineer는 크게 두 가지 일을 하는데요. 디자인 편집기랑 디자인 시스템 만드는 일을 하고 있어요. 묶어서 표현하면 토스의 디자인 시스템을 지탱하는 시스템을 만드는 엔지니어에요. 일반 Frontend 엔지니어랑 비슷한데 디자인 시스템 개발, 유지 보수에 특화돼있다고 생각하시면 돼요.유성님은 어떻게 처음 컴퓨터 공학에 관심이 생겼나요?어렸을 때부터 취미로 개발을 했어요. HTML, CSS로 간단한 화면 만드는 걸 초3 때부터 했던 거 같아요. 시작한 계기는 조금 특이해요. 아버지가 인터넷 영상 강의를 찍는 일을 하셨는데, 저를 맡길 데가 없어서 저를 스튜디오에 데려가셨어요. 갈 때마다 여러 회차를 한꺼번에 찍으셔셔서 대기시간이 엄청 길고 지루했어요. 기다리는 중에 우연히 웹개발 입문서를 발견했고, 그걸 읽으면서 개발을 시작했어요. 메모장에 텍스트 써서 확장자를 HTML로 바꿔 열면 예쁜 게 나온다는 게 너무 신기했어요.저희 부모님이 딱 컴퓨터가 대중화 되던 초기의 세대라서, 아버지가 문학 전공자셨지만 컴퓨터를 잘 다루셨어요. 제가 컴퓨터에 관심을 보이니까 좋은 책들을 추천해주셨어요. 90년대에 내 홈페이지 만들기 같은 게 유행했잖아요. 요즘도 트위터에서 ‘홈마’라는 용어를 쓰는데, 이게 그 시대에 나온 ‘홈페이지 마스터’의 줄임말이에요. 이런 문화 덕분에 시장에도 좋은 서적이 꽤 있었던 거 같아요. ‘홈마’ 문화의 수혜를 많이 받았죠(웃음).근데 유성님은 대학교에 철학을 전공하셨다고 들었어요. 어떻게 철학과에 진학하게 되셨나요?철학과는 왜 갔냐면 문학 읽는 걸 좋아했고, 특히 고3 때 실존주의 소설들을 너무 좋아했어요. 알베르 카뮈의 <페스트>랑 <이방인>이 가장 인상적이었어요. “삶에 주어진 목적은 없고, 우리는 각자의 삶에 내던져지는 것이고, 그럼에도 불구하고 삶은 숭고할 수 있다”라는 메시지가 고등학생 때는 와닿았어요. 입시 공부의 무의미한 것 같은 일상도 의미가 있을 수 있다고 얘기해주는 게 위로가 됐어요. 글 쓰는 것도 좋아했고요.제가 철학을 전공했다고 말하면 많은 분들이 철학과 개발에 대단한 연결이 있을 거라고 기대하고 질문을 해주시는데요. 사후적으로 두 분야 사이에서 많은 연결점을 관찰할 수는 있겠지만, 저의 경우
1/10/2025
토스 피플: 문과생에서 토스 개발 리더까지
이번 토스 피플에서는 UX Engineering Team Leader 조유성님의 이야기를 들어봤어요. 유성님은 토스에 Full Stack Engineer로 입사했지만, Frontend Engineer로 직무 전환을 한 다음, 지금은 토스의 디자인 시스템을 개발하는 UX Engineering 팀에서 리더 역할을 하고 있어요. 문과생에서 Full Stack Developer, Frontend Developer, UX Engineer에서 팀 리더까지 맡으신 유성님의 이야기 오늘 들려드릴게요.Frontend UX Engineer라는 직무는 조금 생소한데요, 어떤 직무이고 토스에서 어떤 일을 담당하나요?사실 저는 UX Engineer로 직무를 바꾼지 오래되지는 않았어요. 정식으로는 작년 2-3월쯤이었던 거 같아요. UX Engineer는 크게 두 가지 일을 하는데요. 디자인 편집기랑 디자인 시스템 만드는 일을 하고 있어요. 묶어서 표현하면 토스의 디자인 시스템을 지탱하는 시스템을 만드는 엔지니어에요. 일반 Frontend 엔지니어랑 비슷한데 디자인 시스템 개발, 유지 보수에 특화돼있다고 생각하시면 돼요.유성님은 어떻게 처음 컴퓨터 공학에 관심이 생겼나요?어렸을 때부터 취미로 개발을 했어요. HTML, CSS로 간단한 화면 만드는 걸 초3 때부터 했던 거 같아요. 시작한 계기는 조금 특이해요. 아버지가 인터넷 영상 강의를 찍는 일을 하셨는데, 저를 맡길 데가 없어서 저를 스튜디오에 데려가셨어요. 갈 때마다 여러 회차를 한꺼번에 찍으셔셔서 대기시간이 엄청 길고 지루했어요. 기다리는 중에 우연히 웹개발 입문서를 발견했고, 그걸 읽으면서 개발을 시작했어요. 메모장에 텍스트 써서 확장자를 HTML로 바꿔 열면 예쁜 게 나온다는 게 너무 신기했어요.저희 부모님이 딱 컴퓨터가 대중화 되던 초기의 세대라서, 아버지가 문학 전공자셨지만 컴퓨터를 잘 다루셨어요. 제가 컴퓨터에 관심을 보이니까 좋은 책들을 추천해주셨어요. 90년대에 내 홈페이지 만들기 같은 게 유행했잖아요. 요즘도 트위터에서 ‘홈마’라는 용어를 쓰는데, 이게 그 시대에 나온 ‘홈페이지 마스터’의 줄임말이에요. 이런 문화 덕분에 시장에도 좋은 서적이 꽤 있었던 거 같아요. ‘홈마’ 문화의 수혜를 많이 받았죠(웃음).근데 유성님은 대학교에 철학을 전공하셨다고 들었어요. 어떻게 철학과에 진학하게 되셨나요?철학과는 왜 갔냐면 문학 읽는 걸 좋아했고, 특히 고3 때 실존주의 소설들을 너무 좋아했어요. 알베르 카뮈의 <페스트>랑 <이방인>이 가장 인상적이었어요. “삶에 주어진 목적은 없고, 우리는 각자의 삶에 내던져지는 것이고, 그럼에도 불구하고 삶은 숭고할 수 있다”라는 메시지가 고등학생 때는 와닿았어요. 입시 공부의 무의미한 것 같은 일상도 의미가 있을 수 있다고 얘기해주는 게 위로가 됐어요. 글 쓰는 것도 좋아했고요.제가 철학을 전공했다고 말하면 많은 분들이 철학과 개발에 대단한 연결이 있을 거라고 기대하고 질문을 해주시는데요. 사후적으로 두 분야 사이에서 많은 연결점을 관찰할 수는 있겠지만, 저의 경우
2025.01.10
좋아요
별로에요
Classic AUTOSAR NVM에 대해 알아보자
자동차 내에는 수많은 ECU들이 존재합니다. 이 ECU들은 각자에게 주어진 특정 목적에 의해서 동작을 하는데요. 이 ECU 기능 중, 여러 주행 사이클 동안에 특정 데이터를 영구적으로 읽고 쓰는 기능은 매우 중요합니다. 가령 제조 시점에 설정된 어떤 특정 값을 매 사이클 불러와야 할 수도 있고, 차량 고장 시점의 여러 데이터를 영구적으로 저장하여 추후 분석에 활용할 수도 있습니다. 이러한 기능들에 대해서 Classic AUTOSAR Memory Stack이 어떤식으로 지원하고 동작하는지 알아봅시다.차량의 생애주기 동안 필요한 특정 데이터 영구 관리차량의 수명 내에 교체된 센서나 엑츄에이터를 사용하기 위해 새로 보정하거나, 차량 점검 시 오류 메시지를 저장하고 읽는 등의 동작에서 많은 변수들이 영구적으로 ECU에 기록되고 읽혀야 합니다. 개발 중에 특정 변수를 변경하는 방법으로는 Calibration 이 있지만, 이는 특수한 상황이며 특정 매개변수를 영구적으로 저장하기 위해서는 쉽게 말해 ECU의 메모리에 다시 Flash해야 합니다. 하지만 항상 Flash가 가능한 것도 아니며, 권장되는 방법도 아니죠.그렇다면 Non Volatile Memory RAM(NVRAM)을 사용할 수는 없을까요? 바로 이러한 목적으로 NVRAM이 ECU 내에 존재하고 이에 접근하거나 저장하는 일련의 과정을 SW 개발자가 구현해주게 됩니다. 일반적인 펌웨어에서도 특정 interface를 구성하여 NVRAM을 사용할 수 있지만, 우리는 AUTOSAR를 적용하는 경우를 중심으로 살펴봅시다.AUTOSAR OS의 Safety Mechanism과 Layered Architecture 내의 간접 참조 원칙을 고려할 때, NVRAM은 어떻게 사용되어져야 할까요? NVRAM의 경우에는 Write Cycle에 대한 제한이 있고 (하드웨어적으로), 데이터 유효성을 보장하기 위해서 체크섬이나 CRC와 같은 검증이 필요하기 때문에 신중하게 다뤄야 합니다. 자 이제 이런 NVRAM을 AUTOSAR에서 사용하기 위해 필요한 AUTOSAR 내의 메모리 스택에 대해서 살펴봅시다.AUTOSAR Memory Stack에 포함된 모듈아래 그림을 살펴보게 되면, RTE 윗 단의 SWC(Software Component)에서 NVRAM 내의 데이터를 사용하기 위한 Interface를 RTE로 연결한 모습을 볼 수 있습니다. 그리고 해당 Interface는 NVRAM Manager를 지나서, Mem If(Memory Abstration Interface)를 통해, FEE 혹은 EA로 나뉘게 됨을 볼 수 있는데 이는 사용하는 메모리의 종류에 따라 사용하는 메모리 스텍이 다르게 구성되어 있기 때문입니다.1. SW-C (Software Component)SW-C는 NvData Port를 통해 데이터를 저장하거나 읽기를 요청합니다. 요청만 하면 되고, 사실 상 SW-C 입장에서는 변수를 읽고 쓰듯이 사용하면 됩니다.2. RTE (Run-Time Environment)애플리케이션 계층과 BSW(Basic Software) 간의 통로 역할을 합니다.3. NvM (Non-volatile RAM Manager)EEPROM 및 Flash Memory에 대한 읽기/쓰기 요청을 처리합니다.이름에서 RAM만 다룰 것처럼 보일 수 있지만, Flash Memory도 관리합니다.데이터 저장 및 유지 관리를 자동차 요구사항에 따라 보장하며, 동기적/비동기적으로 데이터를 읽고 쓰는 서비스를 제공합니다.예: DEM(Diagnostic Event Manager)은 Event Memory와 Freeze Frame을 저장하고, XCP(외부 계측/제어 프로토콜)에서 현재 설정 상태를 저장합니다.4. MemIf (Memory Abstraction Interface)NvM이 메모리 추상화 모듈에 접근할 수 있도록 합니다. NvM과 EA, FEE를 연결FEE 및 EA 모듈과의 인터페이스를 관리하여 균일하고 선형적인 주소 공간을 제공합니다.5. EA (EEPROM Abstraction) 및 FEE (Flash EEPROM Emulation)디바이스별 주소 체계와 세분화를 추상화하여 가상 주소 체계와 세분화를 제공합니다.EEPROM 및 Flash EEPROM 드라이버와 Memory를 추상화합니다.위와 같은 메모리 스택 중에서 NvM에 대해서 좀 더 알아봅시다.NvM은 앞서 정의한 것과 같이 NVRAM의 읽기 및 쓰기를 처리하는 모듈입니다. 그리고 또한 이러한 작업을 동기/비동기로 수행할 수 있게 지원하며 관련 API와 서비스 포트를 SWC에 제공합니다.NvM에서 정의된 기본 저장 객체NvM은 내부적으로 NV 데이터를 저장하는 다음과 같은 Block들을 정의합니다:NV Block: NV 데이터를 저장하는 메모리 영역으로, 선택적으로 CRC 값을 포함할 수 있으며 메모리 무결성을 확인하는 데 사용됩니다.RAM Block: RAM에 있는 메모리 영역으로, 임시 데이터나 영구 사용자 데이터를 포함할 수 있습니다. 후자의 경우, 주소는 설정 시점에 정의됩니다. RAM Block은 연속된 주소 공간에 위치할 필요가 없습니다.ROM Block: ROM에 저장된 기본 데이터를 제공하며, Block이 비어 있거나 손상되었을 때 사용됩니다.Administrative Block: RAM에 위치하며, 데이터셋 NV Block과 연관된 Block Index를 포함합니다. NV Block의 속성, 오류 상태, 유효성 상태를 저장합니다. 이 Block은 애플리케이션에서 보이지 않습니다.NvM 블록 관리 유형NvM은 다음 세 가지 Block 관리 유형을 정의하며, 데이터 손상에 대한 신뢰도에서 차이가 납니다신뢰도라는 것은 특정 Block이 담고 있는 데이터가 전체 시스템 상에서 무결성과 신뢰성이 얼마나 보장되어야 하는지에 따라 결정됩니다.Native NvM Block: 가장 간단한 유형으로 최소한의 오버헤드를 제공합니다. 단일 NV Block, RAM Block, 선택적 ROM Block 및 관리 Block을 포함합니다.Redundant NvM Block: 데이터 손상 방지 메커니즘을 추가로 제공합니다. Na
1/10/2025
Classic AUTOSAR NVM에 대해 알아보자
자동차 내에는 수많은 ECU들이 존재합니다. 이 ECU들은 각자에게 주어진 특정 목적에 의해서 동작을 하는데요. 이 ECU 기능 중, 여러 주행 사이클 동안에 특정 데이터를 영구적으로 읽고 쓰는 기능은 매우 중요합니다. 가령 제조 시점에 설정된 어떤 특정 값을 매 사이클 불러와야 할 수도 있고, 차량 고장 시점의 여러 데이터를 영구적으로 저장하여 추후 분석에 활용할 수도 있습니다. 이러한 기능들에 대해서 Classic AUTOSAR Memory Stack이 어떤식으로 지원하고 동작하는지 알아봅시다.차량의 생애주기 동안 필요한 특정 데이터 영구 관리차량의 수명 내에 교체된 센서나 엑츄에이터를 사용하기 위해 새로 보정하거나, 차량 점검 시 오류 메시지를 저장하고 읽는 등의 동작에서 많은 변수들이 영구적으로 ECU에 기록되고 읽혀야 합니다. 개발 중에 특정 변수를 변경하는 방법으로는 Calibration 이 있지만, 이는 특수한 상황이며 특정 매개변수를 영구적으로 저장하기 위해서는 쉽게 말해 ECU의 메모리에 다시 Flash해야 합니다. 하지만 항상 Flash가 가능한 것도 아니며, 권장되는 방법도 아니죠.그렇다면 Non Volatile Memory RAM(NVRAM)을 사용할 수는 없을까요? 바로 이러한 목적으로 NVRAM이 ECU 내에 존재하고 이에 접근하거나 저장하는 일련의 과정을 SW 개발자가 구현해주게 됩니다. 일반적인 펌웨어에서도 특정 interface를 구성하여 NVRAM을 사용할 수 있지만, 우리는 AUTOSAR를 적용하는 경우를 중심으로 살펴봅시다.AUTOSAR OS의 Safety Mechanism과 Layered Architecture 내의 간접 참조 원칙을 고려할 때, NVRAM은 어떻게 사용되어져야 할까요? NVRAM의 경우에는 Write Cycle에 대한 제한이 있고 (하드웨어적으로), 데이터 유효성을 보장하기 위해서 체크섬이나 CRC와 같은 검증이 필요하기 때문에 신중하게 다뤄야 합니다. 자 이제 이런 NVRAM을 AUTOSAR에서 사용하기 위해 필요한 AUTOSAR 내의 메모리 스택에 대해서 살펴봅시다.AUTOSAR Memory Stack에 포함된 모듈아래 그림을 살펴보게 되면, RTE 윗 단의 SWC(Software Component)에서 NVRAM 내의 데이터를 사용하기 위한 Interface를 RTE로 연결한 모습을 볼 수 있습니다. 그리고 해당 Interface는 NVRAM Manager를 지나서, Mem If(Memory Abstration Interface)를 통해, FEE 혹은 EA로 나뉘게 됨을 볼 수 있는데 이는 사용하는 메모리의 종류에 따라 사용하는 메모리 스텍이 다르게 구성되어 있기 때문입니다.1. SW-C (Software Component)SW-C는 NvData Port를 통해 데이터를 저장하거나 읽기를 요청합니다. 요청만 하면 되고, 사실 상 SW-C 입장에서는 변수를 읽고 쓰듯이 사용하면 됩니다.2. RTE (Run-Time Environment)애플리케이션 계층과 BSW(Basic Software) 간의 통로 역할을 합니다.3. NvM (Non-volatile RAM Manager)EEPROM 및 Flash Memory에 대한 읽기/쓰기 요청을 처리합니다.이름에서 RAM만 다룰 것처럼 보일 수 있지만, Flash Memory도 관리합니다.데이터 저장 및 유지 관리를 자동차 요구사항에 따라 보장하며, 동기적/비동기적으로 데이터를 읽고 쓰는 서비스를 제공합니다.예: DEM(Diagnostic Event Manager)은 Event Memory와 Freeze Frame을 저장하고, XCP(외부 계측/제어 프로토콜)에서 현재 설정 상태를 저장합니다.4. MemIf (Memory Abstraction Interface)NvM이 메모리 추상화 모듈에 접근할 수 있도록 합니다. NvM과 EA, FEE를 연결FEE 및 EA 모듈과의 인터페이스를 관리하여 균일하고 선형적인 주소 공간을 제공합니다.5. EA (EEPROM Abstraction) 및 FEE (Flash EEPROM Emulation)디바이스별 주소 체계와 세분화를 추상화하여 가상 주소 체계와 세분화를 제공합니다.EEPROM 및 Flash EEPROM 드라이버와 Memory를 추상화합니다.위와 같은 메모리 스택 중에서 NvM에 대해서 좀 더 알아봅시다.NvM은 앞서 정의한 것과 같이 NVRAM의 읽기 및 쓰기를 처리하는 모듈입니다. 그리고 또한 이러한 작업을 동기/비동기로 수행할 수 있게 지원하며 관련 API와 서비스 포트를 SWC에 제공합니다.NvM에서 정의된 기본 저장 객체NvM은 내부적으로 NV 데이터를 저장하는 다음과 같은 Block들을 정의합니다:NV Block: NV 데이터를 저장하는 메모리 영역으로, 선택적으로 CRC 값을 포함할 수 있으며 메모리 무결성을 확인하는 데 사용됩니다.RAM Block: RAM에 있는 메모리 영역으로, 임시 데이터나 영구 사용자 데이터를 포함할 수 있습니다. 후자의 경우, 주소는 설정 시점에 정의됩니다. RAM Block은 연속된 주소 공간에 위치할 필요가 없습니다.ROM Block: ROM에 저장된 기본 데이터를 제공하며, Block이 비어 있거나 손상되었을 때 사용됩니다.Administrative Block: RAM에 위치하며, 데이터셋 NV Block과 연관된 Block Index를 포함합니다. NV Block의 속성, 오류 상태, 유효성 상태를 저장합니다. 이 Block은 애플리케이션에서 보이지 않습니다.NvM 블록 관리 유형NvM은 다음 세 가지 Block 관리 유형을 정의하며, 데이터 손상에 대한 신뢰도에서 차이가 납니다신뢰도라는 것은 특정 Block이 담고 있는 데이터가 전체 시스템 상에서 무결성과 신뢰성이 얼마나 보장되어야 하는지에 따라 결정됩니다.Native NvM Block: 가장 간단한 유형으로 최소한의 오버헤드를 제공합니다. 단일 NV Block, RAM Block, 선택적 ROM Block 및 관리 Block을 포함합니다.Redundant NvM Block: 데이터 손상 방지 메커니즘을 추가로 제공합니다. Na
2025.01.10
좋아요
별로에요
코드 품질 개선 기법 3편: 전략 없는 전략
안녕하세요. 커뮤니케이션 앱 LINE의 모바일 클라이언트를 개발하고 있는 Ishikawa입니다.저희 회사는 높은 개발 생산성을 유지하기 위해 코드 품질 및 개발 문화 개선에 힘쓰고 있습니다. 이를 위해 다양한 노력을 하고 있는데요. 그중 하나가 Review Committee 활동입니다.Review Committee에서는 머지된 코드를 다시 리뷰해 리뷰어와 작성자에게 피드백을 주고, 리뷰하면서 얻은 지식과 인사이트를 Weekly Report라는 이름으로 매주 공유하고 있습니다. 이 Weekly Report 중 일반적으로 널리 적용할 수 있는 주제를 골라 블로그에 코드 품질 개선 기법 시리즈를 연재하고 있습니다.이번에 블로그로 공유할 Weekly Report의 제목은 '전략 없는 전략'입니다.다음 은 로그 출력 정보를 담고 있는 인터페이스입니다.이때 어떤 속성을 로그로 출력할지 결정하기 위해 라는 열거형이 필요해졌다고 가정해 봅시다. 함수는 입력된 에 따라 어떤 속성을 사용해 로그 메시지를 구성할지 결정합니다.예를 들어 이 로 입력되면 로그 메시지에 포함할 속성은 로그 레벨과 종류, 설명이 될 것이고, 이에 따라 ‘FATAL, Crash, something wrong with some parameter’와 같은 로그가 출력될 것입니다.여기서 해당 의 순서는 정적으로 정해져 있어서 변경할 필요가 없다고 가정해 봅시다. 예를 들어 '로그 레벨은 메시지의 시작 부분에 위치해야 한다'는 규칙이 있다고 생각해 보겠습니다. 이 규칙을 구현할 때 개발자는 아래와 같이 순서를 결정하는 목록( )을 정의하고 이를 사용해 로그 메시지를 구성할 수 있습니다.위 코드에 문제가 있을까요?반복되는 '고도의 유연성'해당 코드는 반복문 내부에 분기가 있고 각 분기는 반복하면서 기껏해야 한 번만 사용되는 구조입니다. 이로 인해 다음 두 가지 문제가 발생합니다.• 분기를 반복문 내부에 직접 작성했기 때문에 함수의 흐름을 파악하기 위해서 각 분기를 파악해야 한다.• 타입의 순서와 분기를 대응시키기 어렵다.이 문제를 해결하기 위한 네 가지 방법을 소개하겠습니다. 각 방법은 장단점이 있으므로 상황에 따라 적절히 사용해야 합니다.'타입을 나타내는 컬렉션'이 충분히 작은 경우 아래와 같이 각 요소를 로 직접 분기해도 좋습니다.와 같은 보조 함수를 만들어 이용하면 더 명확하게 만들 수 있습니다.이 방법에는 두 가지 단점이 있습니다. 첫 번째는 모든 타입이 포함됐는지 확인하는 단위 테스트를 작성하기 어렵다는 것입니다. 따라서 새로운 타입을 추가했을 때 구현 누락을 경고할 수 있는 수단이 부족할 수 있습니다. 두 번째는 과 같은 컬렉션 유틸리티 함수를 사용할 수 없다는 것입니다. 위 코드에서는 사실 로 연결하는 코드를 생략했는데요. 이를 구현하면 코드가 조금 더 복잡해집니다.다음으로 단순히 조건 분기를 보조 함수로 추출하는 방법도 있습니다.이 방법은 가독성을 어느 정도 개선하기는 하지만, 와 간의 대응이 어렵다는 점은 개선하지 못합니다. 또한 분기에 ( )를 사용하면 포괄성을 보장할 수
1/9/2025
코드 품질 개선 기법 3편: 전략 없는 전략
안녕하세요. 커뮤니케이션 앱 LINE의 모바일 클라이언트를 개발하고 있는 Ishikawa입니다.저희 회사는 높은 개발 생산성을 유지하기 위해 코드 품질 및 개발 문화 개선에 힘쓰고 있습니다. 이를 위해 다양한 노력을 하고 있는데요. 그중 하나가 Review Committee 활동입니다.Review Committee에서는 머지된 코드를 다시 리뷰해 리뷰어와 작성자에게 피드백을 주고, 리뷰하면서 얻은 지식과 인사이트를 Weekly Report라는 이름으로 매주 공유하고 있습니다. 이 Weekly Report 중 일반적으로 널리 적용할 수 있는 주제를 골라 블로그에 코드 품질 개선 기법 시리즈를 연재하고 있습니다.이번에 블로그로 공유할 Weekly Report의 제목은 '전략 없는 전략'입니다.다음 은 로그 출력 정보를 담고 있는 인터페이스입니다.이때 어떤 속성을 로그로 출력할지 결정하기 위해 라는 열거형이 필요해졌다고 가정해 봅시다. 함수는 입력된 에 따라 어떤 속성을 사용해 로그 메시지를 구성할지 결정합니다.예를 들어 이 로 입력되면 로그 메시지에 포함할 속성은 로그 레벨과 종류, 설명이 될 것이고, 이에 따라 ‘FATAL, Crash, something wrong with some parameter’와 같은 로그가 출력될 것입니다.여기서 해당 의 순서는 정적으로 정해져 있어서 변경할 필요가 없다고 가정해 봅시다. 예를 들어 '로그 레벨은 메시지의 시작 부분에 위치해야 한다'는 규칙이 있다고 생각해 보겠습니다. 이 규칙을 구현할 때 개발자는 아래와 같이 순서를 결정하는 목록( )을 정의하고 이를 사용해 로그 메시지를 구성할 수 있습니다.위 코드에 문제가 있을까요?반복되는 '고도의 유연성'해당 코드는 반복문 내부에 분기가 있고 각 분기는 반복하면서 기껏해야 한 번만 사용되는 구조입니다. 이로 인해 다음 두 가지 문제가 발생합니다.• 분기를 반복문 내부에 직접 작성했기 때문에 함수의 흐름을 파악하기 위해서 각 분기를 파악해야 한다.• 타입의 순서와 분기를 대응시키기 어렵다.이 문제를 해결하기 위한 네 가지 방법을 소개하겠습니다. 각 방법은 장단점이 있으므로 상황에 따라 적절히 사용해야 합니다.'타입을 나타내는 컬렉션'이 충분히 작은 경우 아래와 같이 각 요소를 로 직접 분기해도 좋습니다.와 같은 보조 함수를 만들어 이용하면 더 명확하게 만들 수 있습니다.이 방법에는 두 가지 단점이 있습니다. 첫 번째는 모든 타입이 포함됐는지 확인하는 단위 테스트를 작성하기 어렵다는 것입니다. 따라서 새로운 타입을 추가했을 때 구현 누락을 경고할 수 있는 수단이 부족할 수 있습니다. 두 번째는 과 같은 컬렉션 유틸리티 함수를 사용할 수 없다는 것입니다. 위 코드에서는 사실 로 연결하는 코드를 생략했는데요. 이를 구현하면 코드가 조금 더 복잡해집니다.다음으로 단순히 조건 분기를 보조 함수로 추출하는 방법도 있습니다.이 방법은 가독성을 어느 정도 개선하기는 하지만, 와 간의 대응이 어렵다는 점은 개선하지 못합니다. 또한 분기에 ( )를 사용하면 포괄성을 보장할 수
2025.01.09
좋아요
별로에요
디자이너의 눈으로 본 Figma Slides, 도입해도 될까?
업무 효율화를 위한 디자인 툴 사용 후기Figma Slides, 새로운 프레젠테이션 툴피그마에서 프레젠테이션 툴이 나왔죠! 요즘 팀에서 잘 사용하고 있는데요.이번 글에서는 새로 나온 Figma Slides가 다른 비슷한 프레젠테이션 전용 툴을 대체할 수 있을지, 팀 내 도입하기에 유용할지 등을 테스트해 본 이야기를 하려고 해요. 😉Figma Slides는 Figma에서 프레임을 슬라이드처럼 구성하여 프레젠테이션을 제작하고, 디자인과 협업 기능을 활용해 실시간으로 공유 및 발표할 수 있는 툴이에요.Figma Slides를 사용해 볼까?기존에 Google Slides로 제작한 템플릿을 전사에 공유해서 사용하고 있는데요.사내에서 구글 기반의 계정을 사용하고 있기 때문에, 다양한 조직에서 공유와 수정이 편리하다는 이점이 있었지만 디자인팀에서 사용하기엔 불편한 점들이 있었습니다. 😌예를 들면, 여기어때 잘난체를 등록해서 사용할 수가 없고, 텍스트에 대한 디테일한 조정이나 간단한 그래픽 제작에 어려움이 있었어요.그리고 화면 전환할 때 애니메이트 기능도 다른 툴에 비해 단순하다 보니 사용하면서도 디자이너로서 아쉬움이 있었는데요.그러다 보니 팀 내에서 프레젠테이션 자료를 만들 때 키노트, 어도비 일러스트레이터, 인디자인 등 각자 더 편한 프레젠테이션 툴을 활용하는 분이 하나둘 늘어났어요.각자 서로 편한 다른 툴을 사용하면서, 함께 사용하기에 좋은 툴을 고민하던 중 Figma Slides가 출시되었죠.베타 버전이지만, 팀 내 프레젠테이션 전용 툴로 써보면 어떨지 비교, 테스트해보기로 했어요.위 이미지에서 확인할 수 있듯이, 프레젠테이션으로 각자 사용하고 있던 여러 툴의 장점을 포괄하고 있는 게 Figma Slides예요.정교한 그래픽 작업과 자유로운 폰트 사용 그리고 동시에 작업이 가능하여 협업이 쉽고, 간편한 애니메이트 기능도 있어요.뿐만 아니라, 프레젠테이션에 유용한 기능인 발표 노트 기능도 가지고 있고, 파일 공유를 링크로 간편하게 할 수 있기 때문에 용량을 크게 차지하지 않아요.그리고 gif나 동영상 레퍼런스 이미지를 첨부할 때 바로 재생이 되어서 편리했습니다.Figma Slides 어떻게 사용할까?팀원들 개인적으로 툴 스터디를 해본 뒤, 여러 가지 유용한 점들을 찾고 제일 먼저 템플릿을 만들었어요.매번 제작할 때마다 반복적으로 작업하는 표지나 컬러, 텍스트 스타일, 레이아웃 등 기본 틀에 해당하는 것들을 정리해서 공유했죠.템플릿을 끌어와 사용할 수 있으니 각자 제작 시 시간적인 효율도 높일 수 있었고, 일관성이 생기니까 함께 보고 이해하기에도 편리했어요.물론, Figma Slides에서 기본적으로 제공하고 있는 깔끔한 템플릿이 많았지만 우리만의 색을 담은 템플릿을 만들어서 사용할 수 있다는 점이 좋았어요.그리고 슬라이드 그룹핑이 가능해서 내용을 정리해서 보기에 편리해요. 큰 카테고리별로 묶어서 보니 내용 파악이 훨씬 쉬웠습니다.또, skip slide 기능은 작업 중인 슬라이드나 발표 시 보여주고 싶지 않은 내용을 제외할 수 있어 유용했어요.만
1/9/2025
디자이너의 눈으로 본 Figma Slides, 도입해도 될까?
업무 효율화를 위한 디자인 툴 사용 후기Figma Slides, 새로운 프레젠테이션 툴피그마에서 프레젠테이션 툴이 나왔죠! 요즘 팀에서 잘 사용하고 있는데요.이번 글에서는 새로 나온 Figma Slides가 다른 비슷한 프레젠테이션 전용 툴을 대체할 수 있을지, 팀 내 도입하기에 유용할지 등을 테스트해 본 이야기를 하려고 해요. 😉Figma Slides는 Figma에서 프레임을 슬라이드처럼 구성하여 프레젠테이션을 제작하고, 디자인과 협업 기능을 활용해 실시간으로 공유 및 발표할 수 있는 툴이에요.Figma Slides를 사용해 볼까?기존에 Google Slides로 제작한 템플릿을 전사에 공유해서 사용하고 있는데요.사내에서 구글 기반의 계정을 사용하고 있기 때문에, 다양한 조직에서 공유와 수정이 편리하다는 이점이 있었지만 디자인팀에서 사용하기엔 불편한 점들이 있었습니다. 😌예를 들면, 여기어때 잘난체를 등록해서 사용할 수가 없고, 텍스트에 대한 디테일한 조정이나 간단한 그래픽 제작에 어려움이 있었어요.그리고 화면 전환할 때 애니메이트 기능도 다른 툴에 비해 단순하다 보니 사용하면서도 디자이너로서 아쉬움이 있었는데요.그러다 보니 팀 내에서 프레젠테이션 자료를 만들 때 키노트, 어도비 일러스트레이터, 인디자인 등 각자 더 편한 프레젠테이션 툴을 활용하는 분이 하나둘 늘어났어요.각자 서로 편한 다른 툴을 사용하면서, 함께 사용하기에 좋은 툴을 고민하던 중 Figma Slides가 출시되었죠.베타 버전이지만, 팀 내 프레젠테이션 전용 툴로 써보면 어떨지 비교, 테스트해보기로 했어요.위 이미지에서 확인할 수 있듯이, 프레젠테이션으로 각자 사용하고 있던 여러 툴의 장점을 포괄하고 있는 게 Figma Slides예요.정교한 그래픽 작업과 자유로운 폰트 사용 그리고 동시에 작업이 가능하여 협업이 쉽고, 간편한 애니메이트 기능도 있어요.뿐만 아니라, 프레젠테이션에 유용한 기능인 발표 노트 기능도 가지고 있고, 파일 공유를 링크로 간편하게 할 수 있기 때문에 용량을 크게 차지하지 않아요.그리고 gif나 동영상 레퍼런스 이미지를 첨부할 때 바로 재생이 되어서 편리했습니다.Figma Slides 어떻게 사용할까?팀원들 개인적으로 툴 스터디를 해본 뒤, 여러 가지 유용한 점들을 찾고 제일 먼저 템플릿을 만들었어요.매번 제작할 때마다 반복적으로 작업하는 표지나 컬러, 텍스트 스타일, 레이아웃 등 기본 틀에 해당하는 것들을 정리해서 공유했죠.템플릿을 끌어와 사용할 수 있으니 각자 제작 시 시간적인 효율도 높일 수 있었고, 일관성이 생기니까 함께 보고 이해하기에도 편리했어요.물론, Figma Slides에서 기본적으로 제공하고 있는 깔끔한 템플릿이 많았지만 우리만의 색을 담은 템플릿을 만들어서 사용할 수 있다는 점이 좋았어요.그리고 슬라이드 그룹핑이 가능해서 내용을 정리해서 보기에 편리해요. 큰 카테고리별로 묶어서 보니 내용 파악이 훨씬 쉬웠습니다.또, skip slide 기능은 작업 중인 슬라이드나 발표 시 보여주고 싶지 않은 내용을 제외할 수 있어 유용했어요.만
2025.01.09
좋아요
별로에요
작지만 강한 Kanana Nano 효율적으로 개발하기
안녕하세요, 카카오의 AI 모델을 개발하는 카나나 알파(Kanana ⍺) 조직에서 자체 언어모델을 개발하고 있는 Juliet입니다. 저희 조직에서는 카나나 언어모델(Kanana LLM: Kanana Nano, Essence, Flag)의 Pre-training을 담당하고 있습니다.이번 글에서는 글로벌 경쟁력을 갖춘 작은 언어모델(SLM) 시리즈를 비용 효율적으로 개발하기 위한 실험 과정과 결과를 소개하고자 합니다. 이전 “밑바닥부터 Kanana LLM...
1/9/2025
작지만 강한 Kanana Nano 효율적으로 개발하기
안녕하세요, 카카오의 AI 모델을 개발하는 카나나 알파(Kanana ⍺) 조직에서 자체 언어모델을 개발하고 있는 Juliet입니다. 저희 조직에서는 카나나 언어모델(Kanana LLM: Kanana Nano, Essence, Flag)의 Pre-training을 담당하고 있습니다.이번 글에서는 글로벌 경쟁력을 갖춘 작은 언어모델(SLM) 시리즈를 비용 효율적으로 개발하기 위한 실험 과정과 결과를 소개하고자 합니다. 이전 “밑바닥부터 Kanana LLM...
2025.01.09
좋아요
별로에요
퍼블리셔와 개발자 협업을 위한 스토리북 깨짐 방지 방안
개발 프로젝트에서 퍼블리셔와 개발자 간의 원활한 협업은 매우 중요합니다.특히 저희 프로젝트에서는 스토리북(Storybook)을 이용해서 프로젝트 중간에 디자인 검수와 웹 접근성 검사를 수시로 진행 했기 때문에 항상 스토리북이 최신 상태로 잘 동작해야 했습니다.이번 포스팅에서는 스토리북으로 제작된 퍼블 산출물이 개발과정에서 깨지는 원인을 분석하고, 이를 해결하기 위해 고민했던 내용을 공유합니다.배경: 퍼블리셔와 개발자 협업의 도전 과제• None 퍼블리셔는 디자인 가이드에 맞춰 화면을 컴포넌트 형태로 개발합니다.• None 개발자는 API 연동을 포함한 비즈니스 로직 개발을 하고 필요 시, 퍼블리셔의 컴포넌트도 수정 할 수 있습니다.• None 프로젝트에서 스토리북은 디자인과 웹 접근성 검수를 위해 수시로 사용되므로, 항상 깨지지 않도록 유지해야 합니다.그러나 협업 과정에서 사소한 실수로 인해 스토리북이 깨지는 경우가 빈번히 발생했습니다.스토리북이 깨지는 주요 원인• None• None 퍼블리셔가 만든 컴포넌트가 스토리북에서 사용될때와 실제 서비스에서 사용될때는 여러가지 환경적 차이가 있습니다.• None 스토리북에서는 API 요청을 하지 않아 보유 데이터 차이 발생• None 특정 상황에서 세팅되는 쿠키의 차이• None 실제 서비스에서만 생성되는 Hook 사용• None 특정 절차를 건너뛰고 바로 접근하는 이유등으로 내부 상태 설정 안됨• None• None 퍼블리셔가 정의한 props를 개발자가 수정할 때, 관련 스토리를 함께 수정해야 합니다.• None 다른 컴포넌트에서 해당 컴포넌트를 사용하는 부분도 함께 확인해야 합니다.• None 퍼블리셔와 개발자의 산출물 차이• None 퍼블리셔 산출물은 화면에 필요한 모든 값을 props로 받지만, 개발자는 일부 값만 props로 받는 경우가 있습니다.• None 예) 개발 코드에서 dataId만 props로 받고, 나머지는 API로 요청하는 경우• None 중첩된 컴포넌트 구조에서는 하위 컴포넌트의 props 변경이 상위 컴포넌트 스토리를 깨뜨릴 수 있습니다.해결 방안 옵션과 협업 관점에서의 장단점• None 퍼블리셔와 개발자가 익숙한 방식으로 빠르게 개발 가능• None 이슈가 발생할 때마다 상황을 파악하고 대응해야 하므로 비효율적2. 개발자가 퍼블리셔 산출물 복사본을 만들어 FE로직 추가• None 개발자가 원하는 대로 자유롭게 작업 가능• None 중복 파일이 많아지며 관리가 어려워짐• None 퍼블리셔가 디자인을 수정하면 개발자가 diff를 확인하고 적용해야 함• None 실제 서비스와 유사한 환경에서 테스트 가능• None 퍼블리셔가 UI를 확인할 수 있는 스토리 레벨 테스트가 어려움• None 개발 시 상황별 처리 방안에 대한 고민을 줄이고 정해진 규칙을 따르는 것으로 스토리북 무결성 유지 가능• None 개발자의 자유도가 제약될 수 있음이번 프로젝트에서는 위에서 언급한 문제를 해결하기 위해 몇가지 개발 규칙을 마련하고 이를 묶어서 Container In Component (C
storybook
1/9/2025
퍼블리셔와 개발자 협업을 위한 스토리북 깨짐 방지 방안
개발 프로젝트에서 퍼블리셔와 개발자 간의 원활한 협업은 매우 중요합니다.특히 저희 프로젝트에서는 스토리북(Storybook)을 이용해서 프로젝트 중간에 디자인 검수와 웹 접근성 검사를 수시로 진행 했기 때문에 항상 스토리북이 최신 상태로 잘 동작해야 했습니다.이번 포스팅에서는 스토리북으로 제작된 퍼블 산출물이 개발과정에서 깨지는 원인을 분석하고, 이를 해결하기 위해 고민했던 내용을 공유합니다.배경: 퍼블리셔와 개발자 협업의 도전 과제• None 퍼블리셔는 디자인 가이드에 맞춰 화면을 컴포넌트 형태로 개발합니다.• None 개발자는 API 연동을 포함한 비즈니스 로직 개발을 하고 필요 시, 퍼블리셔의 컴포넌트도 수정 할 수 있습니다.• None 프로젝트에서 스토리북은 디자인과 웹 접근성 검수를 위해 수시로 사용되므로, 항상 깨지지 않도록 유지해야 합니다.그러나 협업 과정에서 사소한 실수로 인해 스토리북이 깨지는 경우가 빈번히 발생했습니다.스토리북이 깨지는 주요 원인• None• None 퍼블리셔가 만든 컴포넌트가 스토리북에서 사용될때와 실제 서비스에서 사용될때는 여러가지 환경적 차이가 있습니다.• None 스토리북에서는 API 요청을 하지 않아 보유 데이터 차이 발생• None 특정 상황에서 세팅되는 쿠키의 차이• None 실제 서비스에서만 생성되는 Hook 사용• None 특정 절차를 건너뛰고 바로 접근하는 이유등으로 내부 상태 설정 안됨• None• None 퍼블리셔가 정의한 props를 개발자가 수정할 때, 관련 스토리를 함께 수정해야 합니다.• None 다른 컴포넌트에서 해당 컴포넌트를 사용하는 부분도 함께 확인해야 합니다.• None 퍼블리셔와 개발자의 산출물 차이• None 퍼블리셔 산출물은 화면에 필요한 모든 값을 props로 받지만, 개발자는 일부 값만 props로 받는 경우가 있습니다.• None 예) 개발 코드에서 dataId만 props로 받고, 나머지는 API로 요청하는 경우• None 중첩된 컴포넌트 구조에서는 하위 컴포넌트의 props 변경이 상위 컴포넌트 스토리를 깨뜨릴 수 있습니다.해결 방안 옵션과 협업 관점에서의 장단점• None 퍼블리셔와 개발자가 익숙한 방식으로 빠르게 개발 가능• None 이슈가 발생할 때마다 상황을 파악하고 대응해야 하므로 비효율적2. 개발자가 퍼블리셔 산출물 복사본을 만들어 FE로직 추가• None 개발자가 원하는 대로 자유롭게 작업 가능• None 중복 파일이 많아지며 관리가 어려워짐• None 퍼블리셔가 디자인을 수정하면 개발자가 diff를 확인하고 적용해야 함• None 실제 서비스와 유사한 환경에서 테스트 가능• None 퍼블리셔가 UI를 확인할 수 있는 스토리 레벨 테스트가 어려움• None 개발 시 상황별 처리 방안에 대한 고민을 줄이고 정해진 규칙을 따르는 것으로 스토리북 무결성 유지 가능• None 개발자의 자유도가 제약될 수 있음이번 프로젝트에서는 위에서 언급한 문제를 해결하기 위해 몇가지 개발 규칙을 마련하고 이를 묶어서 Container In Component (C
2025.01.09
storybook
좋아요
별로에요
서울 중고차 개인 거래 성능 점검 가능. 모닝 후기
중고차 몰라도 사기 안당하는 방법. 카티더안심 입니다.중고차 구매는 항상 불안합니다. 그중에서도 차량 상태가 제일 걱정입니다.특히, 개인 거래의 경우 판매자의 말만 믿고 거래 할 수 밖에 없으며,차량 문제가 발견되어도 매수자가 책임을 져야하는 상황입니다. 그래서, 더욱 주의를 기울여야 합니다.가장 좋은건 차량 상태를 확인 하고 구매하는게 좋습니다.👍 개인거래 모든 과정을 지원합니다.3️⃣ 명의이전 (등록사업소 가지 않고, 휴대폰으로 가능)오늘 소개해드릴 모닝 개인직거래 차량, 실제 점검 사례를 통해 중고차 불안감 0% 함께 느껴보시죠!요즘 당근마켓 중고차 거래, 그중에서도 특히, 모닝 등 경차거래는 금액이 좋으면 하루만에 거래가 이루집니다. 아무래도 가격이 낮은 차량이니까 개인직거래에 적합한 차량 같습니다.금일 방문해주신 모닝 차주님도,좋은 가격에 올라온 모닝차량을 놓치지 않기 위해 빠르게 연락 후정밀점검을 의뢰해주셨습니다.개인직거래를 이용하셨던 이유는 딜러거래시 차량가격의 10% 정도가 되는 매도비용을 아까워서였다고 하셨습니다.개인직거래는 부대비용을 아낄수 있는 장점이 있는 반면, 구매 후 문제시 보상을 받을수 없는 큰 리스크가 존재합니다.구매 전 매도자분 매수자분 약속 잡고 점검 하시고 거래 하시는걸 추천드립니다.한국엔 경차 종류가 제한적입니다.모닝은 무난하면서, 가장 많이 팔린 차량입니다.카티더안심은 고질병을 미리 파악 후, 꼼꼼하게 체크 합니다.본 차량은 위 고질병들은 양호했습니다.자체개발 카티expert를 통해 과거이력 조회로 시작합니다.정비, 수리이력 데이터 수집 이후, 해당 부분 수리 상태 여부와 그외 부분 사고내용을 점검합니다.정비이력을 토대로 어떻게 관리되어 왔으며, 앞으로 어떻게 관리해야 하는지 브리핑 해드립니다.모닝 차량은 첫번째 차주분이 10년동안 관리하신 뒤, 판매된 차량이였습니다.현재는 엔진오일 교체 필요하시고 나머지 소모품 교체주기 검수리포트로 안내드렸습니다.엔진상태을 엔진음 AI 분석 통해 분석합니다.현대차 인증 중고차와 동일한 프로그램으로, 사람이 놓칠수 있는 미세한 소음까지 분석합니다.별점 4개로 높은 점수를 받았습니다. 1인신조 차량에 연식대비 키로수가 짧아 양호한 엔진 상태를 유지하고 있었습니다.직접 보는것만큼 정확한건 없습니다.점검 에서 가장 중요하다고 할 수 있는, 리프트 하부 점검먼저 언더커버를 탈착 하고 문제가 있든, 없든 차주분과 함께 보면서 설명 드립니다당장 수리 필요한 수준이 아니고 성능보증보험이 없기에, 추후 관리하면서 타시길 권장성능보증보험이 없는 개인직거래의 경우, 누유가 있을 시 수리비가 부담이 됩니다.다행이도 본차량은 누유가 심한 상태가 아니라서 관리하면서 타시기로 하셨습니다.당근마켓 중고차 개인직거래 시 가장 좋은 방법은카티더안심에 매도자/매수자 분이 함께 방문하셔서 차량 상태 확인 후 거래하시면 좋습니다실제 개인직거래 점검 영상으로 만나보기남이 타던 중고차. 소모품 어떻게 관리했는지 궁금합니다. 그렇다고, 비싼 돈 들여서 다 교체하고 타기도 아깝고..카티더안심은 주요 소모품 수명체크 후 다음 교체시점을 안내해드립니다.직거래의 경우 성능기록부가 없어서, 사고 내용을 알수가 없습니다.판매자가 알려주는데로 판단할 수 밖에 없기에 (본인도 모르시는 분들도 계심)정확히 진단합니다.모든 점검을 마친 후, 최종 검수 리포트를 발급해드립니다.중고차 개인직거래는 비용을 아낄 수 있다는 장점이 있지만, 성능에 대한 보상 주체가 없는 리스크가 있습니다구매전 성능점검을 통해 구입하시는 게, 가장 현명한 방법입니다.카티더안심이 함께 하겠습니다.
1/9/2025
서울 중고차 개인 거래 성능 점검 가능. 모닝 후기
중고차 몰라도 사기 안당하는 방법. 카티더안심 입니다.중고차 구매는 항상 불안합니다. 그중에서도 차량 상태가 제일 걱정입니다.특히, 개인 거래의 경우 판매자의 말만 믿고 거래 할 수 밖에 없으며,차량 문제가 발견되어도 매수자가 책임을 져야하는 상황입니다. 그래서, 더욱 주의를 기울여야 합니다.가장 좋은건 차량 상태를 확인 하고 구매하는게 좋습니다.👍 개인거래 모든 과정을 지원합니다.3️⃣ 명의이전 (등록사업소 가지 않고, 휴대폰으로 가능)오늘 소개해드릴 모닝 개인직거래 차량, 실제 점검 사례를 통해 중고차 불안감 0% 함께 느껴보시죠!요즘 당근마켓 중고차 거래, 그중에서도 특히, 모닝 등 경차거래는 금액이 좋으면 하루만에 거래가 이루집니다. 아무래도 가격이 낮은 차량이니까 개인직거래에 적합한 차량 같습니다.금일 방문해주신 모닝 차주님도,좋은 가격에 올라온 모닝차량을 놓치지 않기 위해 빠르게 연락 후정밀점검을 의뢰해주셨습니다.개인직거래를 이용하셨던 이유는 딜러거래시 차량가격의 10% 정도가 되는 매도비용을 아까워서였다고 하셨습니다.개인직거래는 부대비용을 아낄수 있는 장점이 있는 반면, 구매 후 문제시 보상을 받을수 없는 큰 리스크가 존재합니다.구매 전 매도자분 매수자분 약속 잡고 점검 하시고 거래 하시는걸 추천드립니다.한국엔 경차 종류가 제한적입니다.모닝은 무난하면서, 가장 많이 팔린 차량입니다.카티더안심은 고질병을 미리 파악 후, 꼼꼼하게 체크 합니다.본 차량은 위 고질병들은 양호했습니다.자체개발 카티expert를 통해 과거이력 조회로 시작합니다.정비, 수리이력 데이터 수집 이후, 해당 부분 수리 상태 여부와 그외 부분 사고내용을 점검합니다.정비이력을 토대로 어떻게 관리되어 왔으며, 앞으로 어떻게 관리해야 하는지 브리핑 해드립니다.모닝 차량은 첫번째 차주분이 10년동안 관리하신 뒤, 판매된 차량이였습니다.현재는 엔진오일 교체 필요하시고 나머지 소모품 교체주기 검수리포트로 안내드렸습니다.엔진상태을 엔진음 AI 분석 통해 분석합니다.현대차 인증 중고차와 동일한 프로그램으로, 사람이 놓칠수 있는 미세한 소음까지 분석합니다.별점 4개로 높은 점수를 받았습니다. 1인신조 차량에 연식대비 키로수가 짧아 양호한 엔진 상태를 유지하고 있었습니다.직접 보는것만큼 정확한건 없습니다.점검 에서 가장 중요하다고 할 수 있는, 리프트 하부 점검먼저 언더커버를 탈착 하고 문제가 있든, 없든 차주분과 함께 보면서 설명 드립니다당장 수리 필요한 수준이 아니고 성능보증보험이 없기에, 추후 관리하면서 타시길 권장성능보증보험이 없는 개인직거래의 경우, 누유가 있을 시 수리비가 부담이 됩니다.다행이도 본차량은 누유가 심한 상태가 아니라서 관리하면서 타시기로 하셨습니다.당근마켓 중고차 개인직거래 시 가장 좋은 방법은카티더안심에 매도자/매수자 분이 함께 방문하셔서 차량 상태 확인 후 거래하시면 좋습니다실제 개인직거래 점검 영상으로 만나보기남이 타던 중고차. 소모품 어떻게 관리했는지 궁금합니다. 그렇다고, 비싼 돈 들여서 다 교체하고 타기도 아깝고..카티더안심은 주요 소모품 수명체크 후 다음 교체시점을 안내해드립니다.직거래의 경우 성능기록부가 없어서, 사고 내용을 알수가 없습니다.판매자가 알려주는데로 판단할 수 밖에 없기에 (본인도 모르시는 분들도 계심)정확히 진단합니다.모든 점검을 마친 후, 최종 검수 리포트를 발급해드립니다.중고차 개인직거래는 비용을 아낄 수 있다는 장점이 있지만, 성능에 대한 보상 주체가 없는 리스크가 있습니다구매전 성능점검을 통해 구입하시는 게, 가장 현명한 방법입니다.카티더안심이 함께 하겠습니다.
2025.01.09
좋아요
별로에요
중고차 점검 받고 성능보증보험 현금 보상 후기
중고차 살때 가장 큰 걱정이 뭐야?< 1등 : 중고차 상태 괜찮은거 맞아?>전문가도 중고차는 불안합니다. 하물며 일반인은..→ 다음 3가지만 기억하시면, “중고차 수리비 걱정” 제거할 수 있습니다.중고차는 깨끗하게 씻겨서 주차장에 전시됩니다.광택도 내고,실내 클리닝도 하고,오일누유도 닦고(?)뭔 누유를 닦아?? 하는 분들 계실까요?상품화 과정에서 누유 세척이 이루어지는건 이젠 모두가 아는 상식 수준이 되어가고 있습니다.닦인 누유가 재발하기에 신나게 달려보는 것만큼 좋은게 없습니다.최소 500km 정도 달려보시고, 차량 다른 문제도 파악하세요.전문가도 리프트 띄워보기 전엔 알수 없습니다.반드시 차량을 리프트에 띄우고, 언더커버를 탈착해봐야 합니다.이유는 사진으로 대체 합니다.문제가 발견되면, 성능보증보험을 활용합니다.접수하는 방법은 아주 간단합니다. 성능점검기록부 3page에 나와있는 해당 보험사에 전화해서 접수합니다.성능보증보험 범위 에 대해 자세히 알고 싶다면, 아래 글을 봐주세요!🧑⚖️ 오늘은 실제 사례를 통해 점검 부터 보상까지 알아보겠습니다.20대 후반의 여성 차주분은 케이카 홈서비스를 신청 후 3일 환불 가능 기간에 방문해주셨습니다.엔카홈서비스, 케이카홈서비스 로 차량을 먼저 받으시고 정밀 점검 후 구매 확정 하는 현명한 소비자분들이 많습니다.2025 현존하는 중고차 리스크 줄이는 가장 안전한 시스템인거 같습니다.연식 키로수가 짧지만,사고 내용 및 전체 상태가 궁금하셔서 방문하셨습니다.카티더안심은 성능보증범위만 체크하지 않습니다.차량 고질병, 소모품 수명 체크, 엔진음 AI 분석 까지전체적인 상태 체크를 통해불안감을 해소합니다!먼저, 각 차량의 고질병 체크 후주의깊게 봅니다.고질병은 유전적(?) 발병 확률이 높아서 예방정비 차원에서도 꼭 점검하는게 좋습니다.키로수가 짧아서 아직까진 문제 없었습니다.자체개발한 를 통해, 숨은 이력을 파악. 유심히 체크할 부분이 있는지 확인, 중점적으로 체크합니다.과거이력이 화려한 반면, 성능지는 1군데만 체크가 되어 있네요.성능지와 동일하게 앞도어 교환 이 확인되었고 뒤도어 까지 수리 도장의 흔적이 발견되었습니다.이제 운전석 리어 쿼터패널 확인 이 남았는데요.. 과연…해당 부분 도막 측정 결과, 954 마이크로미터 가 나왔습니다.정상 부위는 200 이 정상인데 말이죠..내시경을 통해 안판을 봤을때 “스팟 용접 자국” 이 확연히 드러났습니다.다행히 1개월 이내 방문해주셨기에,사고내용 불일치의 경우 성능보증보험 범위에 포함 되며, 현금보상을 받을 수 있습니다.이렇게 숨은 사고가 발견 되는 경우, 성능보증보험 접수를 위한 점검소견서 발급해드립니다.현대 인증 중고차와 동일한 시스템으로, 사람이 놓칠 수 있는 미세한 소음까지 체크하여 엔진 상태를 분석합니다.점검 에서 가장 중요하다고 할 수 있는,리프트 하부 점검 입니다.먼저 언더커버를 탈착. 차주분과 함께 보면서 설명 드립니다.남이 타던 중고차. 소모품 어떻게 관리했는지 알수 없습니다.중고차 샀다고 싹~~ 갈고 타실껀가요? NONO~!정밀 진단 장비를 통해 주요 소모품 수명을 체크한 뒤, 다음 교체시점을 안내해드립니다.비싼 차값 이외에 불필요한 비용 지출 막아드립니다.🔍 카티더안심은 2가지만 집중합니다!30분이내로 성능보증항목"만" 체크하는 다른업체들과 다릅니다.꼭 필요한 부분만 정밀점검을 진행합니다.
1/9/2025
중고차 점검 받고 성능보증보험 현금 보상 후기
중고차 살때 가장 큰 걱정이 뭐야?< 1등 : 중고차 상태 괜찮은거 맞아?>전문가도 중고차는 불안합니다. 하물며 일반인은..→ 다음 3가지만 기억하시면, “중고차 수리비 걱정” 제거할 수 있습니다.중고차는 깨끗하게 씻겨서 주차장에 전시됩니다.광택도 내고,실내 클리닝도 하고,오일누유도 닦고(?)뭔 누유를 닦아?? 하는 분들 계실까요?상품화 과정에서 누유 세척이 이루어지는건 이젠 모두가 아는 상식 수준이 되어가고 있습니다.닦인 누유가 재발하기에 신나게 달려보는 것만큼 좋은게 없습니다.최소 500km 정도 달려보시고, 차량 다른 문제도 파악하세요.전문가도 리프트 띄워보기 전엔 알수 없습니다.반드시 차량을 리프트에 띄우고, 언더커버를 탈착해봐야 합니다.이유는 사진으로 대체 합니다.문제가 발견되면, 성능보증보험을 활용합니다.접수하는 방법은 아주 간단합니다. 성능점검기록부 3page에 나와있는 해당 보험사에 전화해서 접수합니다.성능보증보험 범위 에 대해 자세히 알고 싶다면, 아래 글을 봐주세요!🧑⚖️ 오늘은 실제 사례를 통해 점검 부터 보상까지 알아보겠습니다.20대 후반의 여성 차주분은 케이카 홈서비스를 신청 후 3일 환불 가능 기간에 방문해주셨습니다.엔카홈서비스, 케이카홈서비스 로 차량을 먼저 받으시고 정밀 점검 후 구매 확정 하는 현명한 소비자분들이 많습니다.2025 현존하는 중고차 리스크 줄이는 가장 안전한 시스템인거 같습니다.연식 키로수가 짧지만,사고 내용 및 전체 상태가 궁금하셔서 방문하셨습니다.카티더안심은 성능보증범위만 체크하지 않습니다.차량 고질병, 소모품 수명 체크, 엔진음 AI 분석 까지전체적인 상태 체크를 통해불안감을 해소합니다!먼저, 각 차량의 고질병 체크 후주의깊게 봅니다.고질병은 유전적(?) 발병 확률이 높아서 예방정비 차원에서도 꼭 점검하는게 좋습니다.키로수가 짧아서 아직까진 문제 없었습니다.자체개발한 를 통해, 숨은 이력을 파악. 유심히 체크할 부분이 있는지 확인, 중점적으로 체크합니다.과거이력이 화려한 반면, 성능지는 1군데만 체크가 되어 있네요.성능지와 동일하게 앞도어 교환 이 확인되었고 뒤도어 까지 수리 도장의 흔적이 발견되었습니다.이제 운전석 리어 쿼터패널 확인 이 남았는데요.. 과연…해당 부분 도막 측정 결과, 954 마이크로미터 가 나왔습니다.정상 부위는 200 이 정상인데 말이죠..내시경을 통해 안판을 봤을때 “스팟 용접 자국” 이 확연히 드러났습니다.다행히 1개월 이내 방문해주셨기에,사고내용 불일치의 경우 성능보증보험 범위에 포함 되며, 현금보상을 받을 수 있습니다.이렇게 숨은 사고가 발견 되는 경우, 성능보증보험 접수를 위한 점검소견서 발급해드립니다.현대 인증 중고차와 동일한 시스템으로, 사람이 놓칠 수 있는 미세한 소음까지 체크하여 엔진 상태를 분석합니다.점검 에서 가장 중요하다고 할 수 있는,리프트 하부 점검 입니다.먼저 언더커버를 탈착. 차주분과 함께 보면서 설명 드립니다.남이 타던 중고차. 소모품 어떻게 관리했는지 알수 없습니다.중고차 샀다고 싹~~ 갈고 타실껀가요? NONO~!정밀 진단 장비를 통해 주요 소모품 수명을 체크한 뒤, 다음 교체시점을 안내해드립니다.비싼 차값 이외에 불필요한 비용 지출 막아드립니다.🔍 카티더안심은 2가지만 집중합니다!30분이내로 성능보증항목"만" 체크하는 다른업체들과 다릅니다.꼭 필요한 부분만 정밀점검을 진행합니다.
2025.01.09
좋아요
별로에요
Kubernetes Job과 커스텀 컨트롤러를 활용한 배치 처리 경험기
배치 작업을 VM 서버에서 실행해 동시 실행에 어려움을 겪은 적이 있나요?이 글에서는 Kubernetes Job을 활용해, 기존에는 VM 서버에서 실행되던 배치 작업이 클러스터에서 실행되도록 아키텍처를 변경해 작업의 효율성을 높이고, Kubernetes 커스텀 컨트롤러로 Job 스케줄러를 구현해 Job 실행을 더 유연하게 관리한 방법을 공유하고자 합니다.동시에 실행하고 싶은 배치가 너무 많다프로젝트 초기에는 실행해야 하는 배치 수가 적기 때문에 간편하게 VM 서버 한 대에서 모든 작업을 처리할 수 있습니다. 하지만 프로젝트를 운영해 갈수록 실행해야 하는 배치 수는 점점 늘어나고 VM 서버 한 대로는 해결하기 힘든 상황이 옵니다.예를 들어보겠습니다. VM 서버 한 대로 특정 시간에 사용자에게 다양한 알림을 보내고 싶다면 어떻게 해야 할까요?일반적인 운영 환경에서는 VM 장비 한 대로는 CPU, 메모리 등 자원 할당의 문제로 여러 배치 작업을 동시에 실행하기 힘들기 때문에 서로 연관이 없는 독립적인 배치 작업이라도 동시에 실행하지 못하고 하나의 작업이 끝날 때까지 기다렸다가 다른 작업을 시작해야 합니다.만약 동시에 여러 작업을 실행하고 싶다면 서버를 추가해서 각각 실행해야 합니다. 하지만 서버를 추가하면 비용이 증가할 뿐 아니라 관리 포인트가 늘어나고, 이 경우 특정 시간에만 작업을 실행하기 때문에 대부분의 시간에 서버가 사용되지 않아서 자원을 효율적으로 사용할 수 없습니다. 그렇다고 해서 이 작업을 위해 특정 시간에만 새로운 서버를 설정하는 방법은 확장성이 떨어집니다.그래서 이런 문제점을 해결하기 위해 Kubernetes Job을 활용해 배치 작업을 클러스터에서 실행할 수 있게 했습니다.클러스터에서 일회성 작업을 실행할 수 있는 Kubernetes Job 오브젝트Kubernetes Job은 Kubernetes 클러스터에서 일회성 작업을 실행하기 위한 오브젝트입니다.의존성 없는 다수의 배치 작업을 각각 Job으로 실행하면 하나 이상의 컨테이너에서 배치 작업을 독립적으로 수행할 수 있어 전체 배치 작업의 실행 시간이 단축되고 시스템 전체의 효율이 향상됩니다.뿐만 아니라 Kubernetes의 자동 확장 및 복구 기능은 시스템의 안정성을 높이고 유지 보수 부담을 줄여줍니다. 또한 한 번 Job을 구성해두면 클러스터만 변경해 실행이 가능하기 때문에 이중화에도 효과적입니다.그럼 Kubernetes Job이 어떤 식으로 동작을 하는지 간단하게 알아보고, Job 템플릿을 생성 후 실제로 실행하고 모니터링해 보겠습니다.Kubernetes Job 동작 방식Kubernetes Job은 클러스터 내에서 자원을 조정하고 작업을 스케줄링하는 컨트롤 플레인을 통해 파드에 스케줄링받아 실행됩니다.출처: Kubernetes Components사용자가 Job 생성을 요청하면 Kubernetes API 서버가 요청을 받아서, 클러스터의 모든 상태 정보를 저장하는 etcd에 리소스를 저장합니다.etcd에 리소스가 저장되면, 해당 리소스의 이벤트를 감시하는 컨트롤러 매니저가
go
helm
kubernetes
1/8/2025
Kubernetes Job과 커스텀 컨트롤러를 활용한 배치 처리 경험기
배치 작업을 VM 서버에서 실행해 동시 실행에 어려움을 겪은 적이 있나요?이 글에서는 Kubernetes Job을 활용해, 기존에는 VM 서버에서 실행되던 배치 작업이 클러스터에서 실행되도록 아키텍처를 변경해 작업의 효율성을 높이고, Kubernetes 커스텀 컨트롤러로 Job 스케줄러를 구현해 Job 실행을 더 유연하게 관리한 방법을 공유하고자 합니다.동시에 실행하고 싶은 배치가 너무 많다프로젝트 초기에는 실행해야 하는 배치 수가 적기 때문에 간편하게 VM 서버 한 대에서 모든 작업을 처리할 수 있습니다. 하지만 프로젝트를 운영해 갈수록 실행해야 하는 배치 수는 점점 늘어나고 VM 서버 한 대로는 해결하기 힘든 상황이 옵니다.예를 들어보겠습니다. VM 서버 한 대로 특정 시간에 사용자에게 다양한 알림을 보내고 싶다면 어떻게 해야 할까요?일반적인 운영 환경에서는 VM 장비 한 대로는 CPU, 메모리 등 자원 할당의 문제로 여러 배치 작업을 동시에 실행하기 힘들기 때문에 서로 연관이 없는 독립적인 배치 작업이라도 동시에 실행하지 못하고 하나의 작업이 끝날 때까지 기다렸다가 다른 작업을 시작해야 합니다.만약 동시에 여러 작업을 실행하고 싶다면 서버를 추가해서 각각 실행해야 합니다. 하지만 서버를 추가하면 비용이 증가할 뿐 아니라 관리 포인트가 늘어나고, 이 경우 특정 시간에만 작업을 실행하기 때문에 대부분의 시간에 서버가 사용되지 않아서 자원을 효율적으로 사용할 수 없습니다. 그렇다고 해서 이 작업을 위해 특정 시간에만 새로운 서버를 설정하는 방법은 확장성이 떨어집니다.그래서 이런 문제점을 해결하기 위해 Kubernetes Job을 활용해 배치 작업을 클러스터에서 실행할 수 있게 했습니다.클러스터에서 일회성 작업을 실행할 수 있는 Kubernetes Job 오브젝트Kubernetes Job은 Kubernetes 클러스터에서 일회성 작업을 실행하기 위한 오브젝트입니다.의존성 없는 다수의 배치 작업을 각각 Job으로 실행하면 하나 이상의 컨테이너에서 배치 작업을 독립적으로 수행할 수 있어 전체 배치 작업의 실행 시간이 단축되고 시스템 전체의 효율이 향상됩니다.뿐만 아니라 Kubernetes의 자동 확장 및 복구 기능은 시스템의 안정성을 높이고 유지 보수 부담을 줄여줍니다. 또한 한 번 Job을 구성해두면 클러스터만 변경해 실행이 가능하기 때문에 이중화에도 효과적입니다.그럼 Kubernetes Job이 어떤 식으로 동작을 하는지 간단하게 알아보고, Job 템플릿을 생성 후 실제로 실행하고 모니터링해 보겠습니다.Kubernetes Job 동작 방식Kubernetes Job은 클러스터 내에서 자원을 조정하고 작업을 스케줄링하는 컨트롤 플레인을 통해 파드에 스케줄링받아 실행됩니다.출처: Kubernetes Components사용자가 Job 생성을 요청하면 Kubernetes API 서버가 요청을 받아서, 클러스터의 모든 상태 정보를 저장하는 etcd에 리소스를 저장합니다.etcd에 리소스가 저장되면, 해당 리소스의 이벤트를 감시하는 컨트롤러 매니저가
2025.01.08
go
helm
kubernetes
좋아요
별로에요