졸업생입니다. 고민이 있습니다...

Chless의 이미지

안녕하세요 이번에 졸업을 하는 지방국립대 전자공학과 학생입니다.(졸업학점 : 4.16)

저는 자율주행차/우주공학(인공위성)/로봇 분야의 임베디드/ 제어 분야로 취업을 하고 싶어서 현재 취업 준비 겸 공부를 하고 있는 상태입니다
그런데, 바보같은 질문일 수 있겠지만 취업 준비를 하면서 현재 공부 계획이 괜찮은 것인지 모르겠어서 질문 남깁니다

우선 현재 계획 및 진행 상황은 "공부를 위해 기초가 탄탄해야 하니까 2~4학년 동안 배운 과목 중
임베디드 시스템에 필요할 만한 것을 복습 겸 정리하여 기록으로 남겨 두자"라고 생각하여

논리, 회로이론, 마프, 임베디드 시스템, 컴퓨터 구조, 네트워크, vlsi를 일딴 기본으로 하여 복습을 하며 저만의 방식으로 정리하면서
적어도 2월 말 ~ 3월 초까지는 끝내고 이후에 더 깊게 커널, 디바이스 드라이버, 제어 등등을 공부하자고 계획을 세워 현재 진행 중에 있습니다.
(물론 영어, 코딩 공부는 매일 같이하고 있습니다)

그런데, 현재 하는 도중에 이렇게 학과 내용을 다시 정리하면서 하는게 나한테 정말 괜찮은건가?
그냥 리눅스 커널, 디바이스 드라이버 등등 좀 더 다음단계(?)의 내용들의 공부를 시작하는게 맞는건가?
같은 의구심이 들어 질문을 남깁니다....

제가 꿈이 그냥 허무맹랑하게 높아서 인지 처음에 들어갈때 대기업을 노려보고 싶어서 1년만 준비해본다고 부모님하고 얘기를 한 상태인데 시간이나 실력의 모자람 등의 불안함으로 이런 고민이 생기는 것 같습니다.

고수분들의 입장에서 학부내용을 다시 제대로 하고 넘어가는게 좋을지 아니면
넘어가서 공부를 하면서 까먹은 부분을 찾아보면서 하는게 좋을지 조언 부탁드립니다!!

(어떤한 조언이라도 달게 받고 배움의 자세로 조언을 듣겠습니다!)

AustinKim의 이미지

실전 임베디드 시스템 소프트웨어 개발자로써 간단한 소견을 드리면요.
굉장히 훌륭한 계획을 세우고 준비하시고 있다고 생각합니다.

> 그냥 리눅스 커널, 디바이스 드라이버 등등 좀 더 다음단계(?)의 내용들의 공부를 시작하
> 는게 맞는건가?

조금 더 욕심을 부린다면, Arm 프로세서를 공부하시면 훨씬 더 좋을 것 같습니다.

언급하신 '자율주행차/우주공학(인공위성)/로봇 분야의 임베디드/ 제어 분야'의 CPU로 거의 대부분 Arm 프로세서가 사용되고 있거든요.

감사합니다.

(개인블로그)
http://rousalome.egloos.com

Chless의 이미지

답변 감사합니다 Austin Kim님!!
제가 학부 내용 정리하고 다음으로 나아갈 리눅스 커널 공부를 할때 저자님 책으로 하려고 했는데 본인께서 직접 답을 남겨주시고 좋은 계획이라고 해주셔서 너무 기쁘네요 ㅠㅠ

그러면 제가 먼저 계획 했던 대로 위 내용들을 쭉 정리해서 큰 흐름의 기초를 튼튼히 하고 나서 혹은 어느 정도 하면
저자님의 책으로 리눅스 커널 공부 -> 디바이스 드라이버 공부를 하면서, ARM 프로세서도 추가적으로 따로 공부하면 되겠습니까??

그리고 죄송하지만, ARM 프로세서를 공부한다는 말이 조금 헷갈려서 그러는데
제가 마이크로 프로세서 시간에 atmega1281로 배운 내용들과 1281에 없던 기능들(DMA,pll등)그리고 RTOS 포팅부터 사용까지 해보기 위해서 Nucleo f130rb를 구매했었는데, 이런 걸 해보는 과정이 ARM core를 공부하는 것인지
아니면 추가적인 다른 뜻이 있는지 궁금합니다!!

AustinKim의 이미지

제가 쓴 책을 보실 예정이라고 하시니 감사할 뿐입니다. 추가로 질문 주신 내용에 피드백을 드리면요.
Arm 프로세서는 크게 2가지 타입으로 나뉘는데요;

1. Armv7-A, Armv8-A, Armv9-A 아키텍처

리눅스와 같은 범용 운영체제가 실행되는 아키텍처인데요.
Cortex-A53, Cortex-A57와 같은 Arm 프로세서가 이에 해당됩니다.

휴대폰, 전장 분야(인포테이먼트) 그리고 자율 주행(Armv9-A 개발 중)에 주로 활용되며,
고성능 컴퓨터 제품군에 쓰입니다.(거의 대부분 64비트 기반 Armv8-A 아키텍처 활용)

요즘 신문에 시스템 반도체 혹은 SoC가 부족하다라는 기사를 볼 수 있는데요.
이런 시스템 반도체에(Application Processor) 위에서 소개한 Arm 프로세서가
탑재됩니다.

2. Armv7-M, Armv8-M 아키텍처

iOT 디바이스와 같은 아주 작은 사이즈의 마이크로 콘트롤러(MCU)로 사용되는
계열인데요.

Cortex-M3, Cortex-M4가 주로 제품군인데, 리눅스를 실행하지는 않고
RTOS나 베어베탈(운영체제가 아닌 심플한 RTOS) 소프트웨어가 주로 실행됩니다.

만약 리눅스 커널이나 드라이버를 분석하신다면 Armv7-A, Armv8-A(64비트) 아키텍처를 배우시는 걸 추천드립니다.

(개인블로그)
http://rousalome.egloos.com

Chless의 이미지

추가 질문 답변까지 감사드립니다!!

말씀하신대로 2가지 아케텍쳐중에서 제가 원하는 직무랑 가장 연관있어보이는게 Armv-7,8A들인거 같습니다.

말씀해주신 것들 가슴에 세겨두고 공부해 보겠습니다!!

졸업하는 입장에서 갈팡질팡하며 남긴 글이였는데 좋은 답변해주시고 추가적인 길까지 잡아주셔서 감사합니다
정말로 감사합니다 ㅠㅠ