목록분류 전체보기 (39)
꿈이 현대자동차 RnD 연구소 직원인 자동차 관련 임베디드 개발자
#include와 같은 헤더파일, libXXX.so와 같은 라이브러리 파일 등 dependency를 연결하여 소스코드를 빌드할 수 있도록 해주는 빌드 툴이다. 이 외에도 실행파일 이름, 빌드할 소스코드 목록들 선택, 빌드 후에 처리 등 기능이 매우 많다.장점은 차분빌드(icremental build)라고 해서, 한번 빌드한 후 변경된 것만 재빌드후 결과물을 만들어낸다. 또한 VSCode, CLion 등 IDE에서 코드 인텔리전스 기능을 이용하여, 생각나지 않는 함수 이름, 변수, ENUM 값 등을 일부 글자만 적어서 키보드 방향키로 찾는 ide 존재 이유인 주 기능을 이용할 수 있다.기능이 진짜 많아서, 익숙해지면서 필요할때마다 공식 홈페이지를 뒤지면서 알아가야한다.Java 진영에서는 Maven, Gra..
자동차 부품들이 통신을 통해 상호작용을 할 수 있게 하는 통신망 혹은 네트워크(ivn)이다.예를 들면 페달 감지 센서가 통신망을 통해 파워트레인 컨트롤러에 센서 측정값을 전달해서 rpm을 높힐수있다.자동차 통신망에서 이더넷의 장점은 고속뿐만 아니라 acl, vlan, 동일한 기기(다르게 말하면 같은 ip주소)에서 여러 서비스를 443, 8080 포트번호로 실행하는 등 이더넷의 수많은 기능을 사용할수있다.자동차 통신에서 이더넷은 SOME/IP를 사용하며, GENIVI SOME/IP로 SW 라이브러리를 사용한다. 참고로 SOME/IP는 BMW에서 만든 것이자 오픈소스화 되어있고, AUTOSAR의 CLASSIC, ADAPTIVE 등의 클래스 문서로 각각 정의되어있다. genivi에서 covesa로 이름을 바꾼..
CAN은 자동차 부품들이 서로 상호작용을 할 수 있도록 하는 통신망 혹은 네트워크인 IVN 타입 중에 하나이다.고속과 저속으로 따로 쓴다고 하며, CAN 고속용보다 더 빠른 속도를 요구하는 것은 이더넷 기반 SOME/IP를 사용한다.psCOBOL 언어로 돈을 벌던 시대에 사신 선임님이 나에게 스몰토크로 던져준 이야기를 이렇게라도 남긴다.기회가 된다면 찾아보기도 하겠지.. 예전에 현대자동차 임직원한테 듣는 것보다, 지금처럼 직접 하고 있는 거니 조금 이해하기 쉬울거라고 기대한다.
정의dsmeg는 리눅스 명령어 중에 커널 관련 로깅 명령어이다.퀄컴 통신칩 hw 동작이 잘 동작하거나 펌웨어 버전 미호환 등 문제때문에 얼마 못가서 죽어버려는지 확인할수있다.쓰임 예시(dmesg인데 오타났다.. 모바일에서 코드블록 내용이 수정이 안되서, 고쳐야함)dsmeg | grep SECTONps자동차 부품(텔레메틱스, bmw node0 등) 중에 안드로이드(aosp)를 리눅스에 설치한 컴퓨터들이 매우 많이 있다. 그리고 자동차에서 안드로이드 개발은 결국 리눅스 컴퓨터로 다루는것과 똑같기에, 위와 같은 리눅스 명령어로 트러블 슈팅을 한다.

서론README는 프로젝트에서 가장 처음 보이는 페이지이며, 어떻게 쓰일 수 있는지에 대한 설명과 프로젝트를 돋보이게 해주는 수단이다. 생각해보라, 프로젝트에서 만든 어플리케이션 화면과 함께 꾸며진 리드미를 봤을 때, 프로젝트가 근사할거라는 기대감이 드는 경험 말이다. 본론1. 공식화된 작성법이 있나?No, 공식화나 권고된 작성 스타일은 딱히 보이지는 않는 것 같다.오픈소스가이드, 깃허브, FreeCodeCamp 등을 조사를 해봤을 때, 수학공식처럼 명확하게 작성가이드 라인을 찾을 수 없었다. 이 글들을 읽어보았을 때 프로젝트 성격에 따라서 넣지 않아도 될 구성들이 있었다.시야를 넓혀서 microsoft, toss, naver, naver map, kakao 등의 대기업의 레포지토리를 보면서, 수많은 ..
언젠가는 제때 정리해라, 제발..개요보통 멀티 브랜치는 feature, develop, master, hotfix로 많이 쓴다. 예를 들어 야구예매시스템 개발과정에서 로그인 기능은 feature/login, 결제기능은 feature/payment으로 말이다. 여러 기능들을 멀티 브랜치로 관리하면, 필요한 기능을 선택적으로 합쳐서 새로운 것으로 만들기가 용이하다. 필요성멀티브랜치 사용에 대한 필요성을 느끼게 된 계기는 merge가 제대로 되지않는 문제를 겪고 있기 때문이다. 처음에는 단일 브랜치를 사용하다가, 국가별로 프로젝트를 나누어서 사용하려고 멀티 브랜치로 변경되었다. 그리고 자주 업데이트 되는 master 브랜치에는 기존에 작업했던 내용이 정상작동하지만, 'A 이름'을 가진 브랜치는 아니다.원인은..
언젠가는 정리하겠지, 나 자신? rich는 화면에 출력할 내용을 예쁘게 만들어주는 라이브러리이다.예를 들어 작업을 처리하는데 오래 걸리는 프로그램에 대해, 아무것도 출력하지 않는 대신에 랙이 걸리지 않았음을 표시하려고 메세지를 출력할 때가 있다. 뭔가 똑같은 메세지를 반복적으로 출력하기 보다는 '로딩바'를 사용하여 소요시간 및 진행율을 한줄에 보여주고 싶을 때 이 라이브러리가 유용하다. 또한 테이블 등 여러가지 표현방법을 사용하여 console에 출력할 수 있다. + rich 라이브러리를 사용하면 console뿐만 아니라 GUI도 구현할 수 있다.

'Baeldung'은 spring, Linux 등의 주제에 대한 게시물을 담는 블로그와 같은 사이트이다.이 블로그는 직면한 문제가 있을 때 이 블로그에 필요한 내용이 담겨져 있어서, 스프링(스프링부트 포함)을 사용할 때 한줄기의 빛과 같았던 기억이 난다. 최근에 이 블로그가 스프링 외에도 Linux, DevOps 등의 내용을 담고 있다는 것을 알았다. 그래서 가끔씩 읽으면 좋을거같아서 이 사이트에 대해 링크로 정리를 해둔다. 주제별 Spring : https://www.baeldung.com/Linux : https://www.baeldung.com/linux/CS(Computer Science) : https://www.baeldung.com/cs/Ops(#Devops) : https://www.ba..
언젠가는 정리하겠지, 나 자신??ITU X.680(PDF 196 페이지) : Specification of basic notationITU X.681(PDF 42 페이지) : Information object specificationITU X.682(PDF 20 페이지) : Constraint specificationITU X.683( PDF 22 페이지) : Parameterization of ASN.1 specifications+ ITU X.208 : Specification of Abstract Syntax Notation One (ASN.1) 문서 구성X.680이나 X.208이 ASN.1에 대한 주 내용이며, 나머지는 부록과 같은 느낌의 내용들이다.X.680을 주내용으로 삼는 이유는 X.208은 ..

언젠가는 작성(정리)하겠지, 나 자신? 한눈에 알아보기 어려운 정규식을 코드에 때려넣고 싶지 않았다.pyparsing은 Keyword, alphas, alphanums 등으로 텍스트 파싱하도록 되어있어서, 나중에 시간이 지나서 코드를 분석하거나 유지보수를 다시 시작하기 쉽도록 할거라고 생각했다. 정규식은 기억이 사라지면 찾는데(뭐였는지 아는데) 시간이 걸리지만, pyparsing은 추측이 가능하기 때문에 pyparsing으로 텍스트 파싱을 구현하기로 했다. 내가 이 라이브러리가 필요한 이유는 구현하고자 하는 내용이 정규식 대신 사용함으로써 코드 가독성을 높힐 수 있기 때문이다. ITU의 X.280, X.680, X.681, X.682의 문서를 읽고, ASN.1 변수들의 이름과 정의값을 파싱해서 변수들을..