FreeRTOS 특징먼저 RTOS에 대해서는 이전 포스팅을 참고하자. FreeRTOS는 오픈소스로, 누구나 무료로 사용 및 수정할 수 있고 많은 반도체 제조사와 마이크로 컨트롤러 플랫폼에서 FreeRTOS를 공식적으로 제공한다. 또 커뮤니티가 활발하고 다양한 상용 지원 옵션이 있어 개발이 용이하고 오랜 기간 사용되어 안정성과 신뢰성을 제공한다. 공식 웹 사이트 FreeRTOS™ - FreeRTOS™ freertos.org 네이밍 규칙FreeRTOS에서는 특정 네이밍 규칙을 사용한다. ccharsint16_t (short)iint32_t (int)xBaseType_tuunsignedppointer먼저 변수는 타입에 따라 접두어를 위와 같이 설정한다. vvoidxBaseType_tpvvoid*prvpriv..
현생
RTOS?RealTime Operation System, 애플리케이션의 수행 마감 시간을 정할 수 있는 운영체제이다. 운영체제론 시간에 다루는 Soft Realtime - Hard Realtime 과 같은 개념이 내재되어 있는 OS인 것이다. 주로 임베디드에 쓰이는 OS인 만큼, Scalability하다. 즉, 사용자가 원하는 기능을 추가하거나 제거하여 크기를 조절할 수 있다. 또한 Preemptive - 선점(우선순위가 높은 task가 리소스를 가져감)을 허용하고, Multitasking이 가능하며, Robustness, 즉 견고하다. 왜 써야 하는가범용 PC OS를 사용하는 범용 컴퓨터, 예를 들어 Windows를 사용하는 데스크탑에서는 보통의 경우 0.1초만에 끝낼 수 있는 프로세스가 다른 프로세..
SW 개발자가 왜 알아야 하는가?가장 중요한 이유로는 아무래도 기판을 만지는 직종이고, 컴퓨터 옆에 널부러져 있는 기판엔 전기가 흐르며, 만약 DC가 아닌 고압의 AC 전류가 흐르는 환경에서 전기를 잘 모른다면 좀 빨리 가버릴 수도 있다. (AC220V, 즉 311V짜리 전압이 초당 120번 극성이 바뀐다. 이에 감전되면 근육이 수축된 상태로 경직되어 움직이지 못하는데, 궁금하면 콘센트에 젓가락 꽂...진 말자) DC라 하더라도 역전류나 쇼트가 발생하면 기판은 물론 연결된 컴퓨터까지 태워먹을 수 있다. 물론 여기에 감전돼도 꽤 많이 아프다. 또한 당연하게도 회로도를 보며 여러 단자를 연결해야 하는데, 기초적인 전기 상식이 없으면 이도 쉽지 않다. 전기 기초 상식전압두 점 사이의 전위차를 의미한다. 이는 ..
임베디드 SW란?임베디드 SW는 특정 하드웨어 시스템 내에서 실행되도록 설계된 소프트웨어이다. 다시 말해, 하드웨어가 특정 기능을 수행하거나 특정 장치를 제어하도록 한다. 범용 컴퓨터와 달리 제한된 리소스 내에서 한정된 기능을 효율적으로 수행하는데 최적화되어 있다. 제품군으로는 가전 제품, 자동차, 의료기기, 통신기기 등에 적용되며, 형태로는 펌웨어, 디바이스 드라이버, 미들웨어, (특정 하드웨어에 종속되는) 애플리케이션 소프트웨어, 부트로더, 네트워크 스택, 실시간 제어 소프트웨어 등 굉장히 많은 분야가 임베디드 SW에 속해있다. 필요한 하드웨어 지식임베디드 SW에 관심을 가지는 하드웨어 전공자도 많겠지만, 소프트웨어 전공자도 꽤나 많을 것이다. (실제로, 임베디드 SW 직종의 70%는 소프트웨어 ..
서류 합격! 사실 이번년도에 삼성 인턴을 넣을 생각은 없었습니다. 대학원 생각도 있었고, 막학년이니 졸업유예하고 1년 쉬어가고 싶다는 생각도 했었기 때문입니다. 그러나 코딩테스트 한 번 봐보고 싶기도 하고, 그래도 나름 삼성인데 한 번 해보면 좋지 않을까? 하며 서류 마감일 당일에서야 자소서를 적기 시작하고 서류 마감 1분 전에 제출했습니다ㅋㅋㅋ 그래서.. 백업본도 없어서... 면접까지 가는게 제일 무서워요.. 자소서 문항은 대충 여기에 왜 지원했는지, 사회 이슈에 대한 소견 등등 항상 나오던 그 문항들 나왔습니다. 프로젝트 관련하여 서술할 곳이 많이 없어서 그건 좀 아쉬웠습니다. 그리고 대학교에서 들은 모든 강의에 대한 학점을 기입하는 문항도 있었어요! 이거 있는 줄 몰랐다가 서류 못넣을 뻔 했습니다...
본 포스팅은 Java17 / Gradle / 인텔리제이 / MacOS 환경에서 쓰여졌다. 서론 스프링부트에서 사용되는 디렉토리(패키지) 구조와 build.gradle등의 설정 파일들을 소개하려 한다. 루트 폴더 스프링부트 프로젝트를 열어보면, 루트폴더에는 .gradle, .idea, build, gradle, src 폴더와 각종 파일이 존재한다. src는 우리가 작성할 소스 코드와 리소스 파일이 저장될 곳이다. 하위 구조는 후술하겠다. build.gradle은 프로젝트의 gradle 빌드 파일로, 의존성 관리, 플러그인 설정, 빌드 구성 등이 정의된다. 상세한 정보는 후술하겠다. .gradle/gradle은 gradle 빌드 도구 관련 설정/캐시 등 관련 파일이 저장되고, .idea는 인텔리제이 관련 설..
본 포스팅은 Java17 / Gradle / 인텔리제이 / MacOS 환경에서 쓰여졌다. 자바 설치 먼저 자바가 안깔려있다면 자바를 설치해야한다. 맥 OS에서는 brew를 통해 손쉽게 설치할 수 있다. /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" brew가 깔려있지 않다면, 위 명령어로 설치할 수 있다. brew install openjdk@17 brew를 통해 jdk를 설치한다. 여기서는 Java17을 사용할 것이기 때문에 @를 통해 버전을 명시해주었다. vi ~/.zshrc export JAVA_HOME=/opt/homebrew/Cellar/openjdk@17/17.0.3/l..
새해 맞이하고 9일이나 지나서 쓰는 신년 계획...취업.. 결국엔 백엔드백엔드, 참 폭넓은 분야고 그만큼 할게 많다. 근데? 내가 해둔게 없다... 컴퓨터 전공을 시작한 지 벌써 군생활 포함 5년째에 한거라곤 알고리즘, 게임개발, 게임회사인턴. 백엔드는 강의 프로젝트에서 대충 맛보거나 창업동아리에서 맛본 정도. 그 조차도 자바가 너무너무너무너무너무 하기 싫어서 파이썬과 NodeJS로 했다. 게임쪽 많이 해놨으면 거기 가면 되는거 아니냐 싶겠지만 인턴생활동안 현업자분들에게 게임업계실황을 듣고 "아! 여긴 해외는 몰라도 한국은 아닌거같다!" 란 소감을 느껴버려 결국 진로는 돌고돌아 백엔드를 택했다. 사실 시스템이나 데이터에도 관심이 있어서기도 하다. 백엔드로 경력쌓고 이직하는 루트가 제일 안정적으로 보이니까..