728x90

분류 전체보기 275

독일 자동차 OEM사의 In-house 소프트웨어

한국 출장차 베를린에서 출발해 뮌헨 공항에서 대기중이다. 무려 8시간이나 ㅠㅠ 뮌헨에 사는 같이 가는 분과 일정을 맞추기 위해 어쩔 수 없다. 시간이 너무 많이 남아 노트북을 열었고 얼마전 지인과 독일 OEM 3사의 소프트웨어 회사 MBition (Mercedes-Benz Innovation Lab.), BMW Car IT, Cariad (폭스바겐 그룹)에 대해 이야기 했던 것이 생각나 정리해보려고 한다. 개인적으로 아는 정보로는 BMW Car IT -> Cariad (이전이름 Carmeq) -> MBition 순서대로 각 OEM의 소프트웨어 회사가 설립 된 것으로 알고 있다. BMW Car IT와 Carmeq는 솔직히 누가 먼저 생겼는지 모르겠지만 느낌상 그렇다. 자동차의 소프트웨어가 너무 광범위해서 ..

Automotive 2023.09.28

Yocto Package Feed (패키지 피드)

Yocto에서 패키지 피드라고 해서 패키지 저장소를 놓고 바이너리 패키지 (rpm, ipk, deb)를 다운로드할 수 있도록 제공한다. 쉽게 말하면 우분투의 apt-get과 같은 명령어로 패키지를 쉽게 설치할 수 있도록 서버단에서 빌드된 패키지들을 저장소에 올려놓고 클라이언트 (타깃)에서 dnf, opkg 등과 같은 명령어로 패키지를 설치를 의존성 있는 패키지와 함께 설치하도록 도와준다. 위의 강좌에서 Package Feed를 어디서 어떻게 사용하는지에 대해서 간단히 설명했고, 최종 제품을 만들 때 사용하는 것보다는 개발 단계에서만 사용하도록 권장한다. 물론 설정을 잘해서 양산 이미지에도 사용할 수 있겠으나 의존성 관리, 재빌드 등 다양한 문제가 나올 때 대처해야한다. PR 서비스 깨지지 않는 빌드를 만..

Yocto 2023.09.27

차량용 소프트웨어 개발 테스트 환경 및 자동화

소프트웨어를 개발할 때 테스트는 기본적으로 같이 이루어져야 한다. 이 글에서는 차량용 소프트웨어를 개발할 때 ASPICE 프로세스를 기준으로 어느 단계에서 어떤 테스트가 이루어져야하는지를 간단히 소개하고 이를 CI와 연결하여 자동으로 테스트할 수 있는 방법에 대해서 이야기해보고자 한다. 이론은 크게 어렵지 않지만 실제 개발에 적용하기란 단계에 따라 상당히 어려울 수 있다. 이유도 가지 각색으로 정말 다양하다. 개발 리소스, CI 리소스, 하드웨어 리소스 문제, 안정성 문제, Component/SW Elements 등에 대한 정의의 문제, 의존성 문제 등등 말이다. 이 각각의 문제를 필자의 경험을 토대로 어떻게 하면 해결할 수 있을까 또는 왜 그렇게 어려운가에 대해서 하나씩 풀어보고자 한다. https:/..

Automotive 2023.09.26

차량용 (Infotainment) 소프트웨어 개발 과정 중 통합 2부

이틀간의 UI 통합 관련 워크샾을 마치고 돌아왔다. 워크샾 기간 동안 그리고 저녁식사를 같이 하면서 많은 이야기를 나누었다. UI 개발자가 몇백명이고 독립된 CI/CD 팀과 내부 인프라 등을 모두 가지고 있었다. 물론 테스트를 위한 전용 차량 및 테스트 벤치, 통합팀 등 전체 개발에 필요한 모든 조직을 내부에 가지고 있었다. 그럼에도 불구하고 UI 도메인 테스트가 끝나고 통합 직전 Pre Integration 테스트를 할 때 가끔 문제가 발생한다. UI 뿐만이 아니라 덩치가 큰 Speech, SoC, Camera, Media, Vehicle 도메인은 자체 통합팀 및 테스터를 보유하고 있다. 그리고 Pre Integration 팀에서도 통합 직전 테스트시 문제가 발생할 때 왜 나는지 개선을 위해 5 why..

Automotive 2023.09.25

Engineering Lead, Architect, Product Owner 에 대한 견해

회사에서 SCRUM 형태로 팀을 운영을 하고 있다. 일반적으로 하나의 SCRUM 팀에 1명의 Product Owner (PO)가 있고 Scrum Master (SM)은 여러 팀이 공유를 한다. DR (Development Representative)도 각 SCRUM 팀마다 한명이 있다. People 관리를 하는 Engineering Lead (EL)도 여러개의 스크럼을 가지고 있고 Architect는 System Architect (SA) 팀이 따로 있고, 여러개의 SCRUM 팀이 묶인 Domain 개념이 있는데 이 Domain에 속한 Architect 즉, Domain Architect (DA)도 있다. 간단하게 그림으로 표현하면 위와 비슷한 구조이다. 가끔 역할이 애매할 때가 있어 이번 기회에 개인적..

Etc 2023.09.24

Yocto Rolling master model for production

Platform 및 플랫폼 개발을 하면서 오픈소스 처럼 개발 하기는 정말 어렵다. 여기서 오픈소스 처럼 개발 한다는 의미는 Yocto master branch를 계속 쫓아가면서 production branch (필자의 회사는 dunfell branch)를 유지하는 것이다. 즉 2개의 branch를 운영하고 개발자는 코드를 제출할 때는 master와 dunfell 모두 올려야하고 테스트도 물론 모두 함께 해야한다는 것을 의미한다. 필자의 회사에서는 Yocto 로 개발하는 Infotainment 플랫폼 및 제품에서 이를 시도하고 있다. 개발자들은 잘 지켜가고 있지만 현재 리소스 부족으로 테스트는 자동화만 돌리고 일부 매뉴얼 테스트는 대응하기 어렵지만, 필요할 때마다 요청해서 돌리고 있는 상황이다. 이 모델의..

Yocto 2023.09.23

Yocto (OpenEmbedded) 의존성 관리

Yocto 프로젝트에서 의존성 관리하는 방법과 의존성을 쉽게 추출하여 볼 수 있는 도구가 있어 간단히 소개하고자 한다. 의존성 (Dependency) 관리 의존성에는 크게 런타임 의존성과 빌드타임 의존성이 있다. 말 그대로 런타임 의존성은 실제 시스템 동작시 필요한 의존성이다. 예를 들면 시스템에서 실행 중 A라는애플리케이션에서 버튼을 눌러 특정 동작을 하라고 명령을 내리면 IPC를 통해 다른 프로세스로 실행중인 B라는서비스의 API를 실행할 A 애플리케이션은 B 서비스에 런타임 의존성을 가진다고 할 수 있다. 빌드 타임 의존성은 빌드 과정중에 필요한 의존성으로 빌드할 때 필요한 라이브러리가 그 하나의 예가 될 수 있다. Yocto에서는 각 레시피에서 DEPENDS와 RDEPENDS 변수를 통해 빌드타임..

Yocto 2023.09.22

초보자들이 볼만한 Yocto 소개 자료

회사에서 개발자 대상으로 Yocto Training 자료 정리하는 중에 도움이 될 만한 자료가 있어 공유하고자 한다. 첫번째 두 세션은 Yocto 프로젝트에 대한 개념을 소개하고 나머지 두 세션은 layer, image, application 생성에 대한 실습을 하면서 필요한 yocto 개념을 설명한다. Yocto는 임베디드 개발에서 프로그래밍을 하는 것에 대한 기본 지식을 가지고 이해해야 해서 약간의 사전 지식이 필요하다. Yocto 프로젝트에 대한 짧은 소개 - 개념 잡기 (5분) Getting started with Yocto (1:03:26) Embedded Linux 에 대한 간단한 정의부터 시작해서 1시간 동안 Yocto Project에 대해 소개한다. 아래 총 4개의 세션으로 나누어져 있는 ..

Yocto 2023.09.22

Yocto 개발 환경 (SDK, eSDK, devtool 등)

Yocto 기반으로 임베디드 리눅스를 개발할때 일반적으로 많이 사용하는 개발 환경을 소개하고자 한다. 다들 알고 글을 읽고 있겠지만 간단히 Yocto에 대해서 다시 소개하자면 하드웨어 아키텍처와 무관하게 커스텀 임베디드 리눅스를 만들기 위한 빌드 프레임워크이다. 자세한 내용은 https://www.yoctoproject.org/ 를 방문해서 문서와 함께 살펴보면 된다. Yocto 기반으로 개발을 해본 분들은 알고 있겠지만 일단 Yocto 자체를 배우는 것에 대한 시간이 소요된다. 오죽하면 "욕나오고 토나온다고 해서" 욕토라고 하겠는가? :) 물론 Yocto 원어는 10의 -24승, 아주 작은 단위를 말한다. 이유야 어찌되었건 그만큼 Yocto 환경에서 개발하는데 어렵다는 의미이다. 그럼 왜그렇게 다들 어..

Yocto 2023.09.21
728x90
반응형