windows linux, git, gerrit, redmine, svn, slack, jira, confluence…
이번엔 임베디드 프로그래머들에게 유용한 여러 개발 프로그램들에 대해 소개해 볼까 합니다!
1. WSL(Windows Subsystem for Linux)
Windows10에서 사용 가능한 linux system 입니다. 간편하게 linux를 체험해 볼 수 있는 방법 중 하나 입니다.
보통은 vmware(유료), virtual box(무료) 프로그램을 사용하여 ubuntu(linux)를 설치하여 사용했는데 MS에서 windows에서 바로 사용할 수 있는 ubuntu를 만들었습니다.
설치는 "Microsoft Store"를 실행시키고 ubuntu 라고 검색하시면 설치하실 수 있습니다.
여러 버전이 있는데 아시는 분은 버전 맞춰서 설치하시면 되고, 처음 접하시는 분들은 아무것이나 설치하셔도 상관없습니다.
버전이 쓰여 있는 것은 linux kernel의 버전에 따라 변경되는 것으로 전문적으로 사용하시는 분들 아니시면 크게 고려할 사항은 아닙니다.
이 프로그램을 추천 드린 이유는 정말 간단하게 리눅스가 무엇인지? 리눅스에서 C 코딩 한번 해보시려는 분들에게 편하기 때문에 추천 드린 것 입니다.
2. 코드 이력 관리 프로그램(git, svn, gerrit)
실무에서는 편하게 history라고 많이 얘기합니다. 여기서 이력이란 내가 또는 팀원이 만든 source code의 이력을 뜻 합니다. 예~전과 달리 요즈음은 웬만한 프로그램 만들면 수만줄, 수십만줄이 필요합니다. 이런 프로그램을 코딩하는데 어제 내가 어떤 코드를 만들었는지 나와 협업하는 사람이 무엇을 만들었는지 파악하는 것은 굉장히 중요해 졌습니다. 이런 source code의 이력을 확인할 수 있는 프로그램을 이력 관리 프로그램이라고 합니다.
프로그래밍을 해보셨다면 다들 아실만한 것들로 "svn", "git" 이 있습니다.
각 장단점이 있지만 처음 접하시는 분들이라면 git을 먼저 사용해 보실 것을 권유 드리고 싶습니다. 단순히 쓰는 것이 중요한 것이 아니라 git을 왜 만들었는지 체계가 어떻게 되는지를 먼저 확인하시고 사용하시기 바랍니다.
개인적으로 유용한 프로그램들이 왜 만들어졌는지 모르고 사용하신다면 안쓰는 것만 못한 것 같습니다.
나중에 새로운 것들이 나와도 기존에 있던 것들에서 파생되는데 그냥 쓸 줄만 안다면 버전업 되거나 새로운 것들이 나타나면 기존 사용하던 것에서 벗어나지 못하는 분들을 많이 봤습니다.
즉, 편해진 것에서 벗어나질 못하는 거죠. 그러면 자연히 밑에 있는 사람들에게도 강요하게 되고 어디가서도 난 괜찮던데?! 라는 말만 반복할 뿐입니다. 참… 그렇습니다 ㅎㅎ
특히 git은 visual studio와도 연동이 되고 처음에는 다소 복잡할 수 있지만 잘 이해하고 쓴다면 이만큼 좋은 것도 없을 것 같습니다.
Svn은 간단합니다. 사용하기 편하고요. 단, 복잡한 것은 수용하기 어렵습니다. 또한 코드 용량이 많으면 svn 용량도 많아져 딱히 좋다고는 볼 수 없습니다.
둘 다 써보시고 사용할 줄 알면 좋습니다! 어떤 회사가 어떤 것을 쓸지 모르니까요! 그리고 뭐든 많이 할 줄 알면 좋아합니다 ㅎㅎ
Svn site: https://tortoisesvn.net/
Git site: https://git-scm.com/
Git과 관련해서는 github, gerrit이 추가적으로 있습니다.
회사나 단체 등에서는 gerrit을 구축해서 쓰시는 것도 좋습니다. Gerrit은 이력관리와 동시에 등급에 따라 코드 적용 여부를 결정하는 기능이 있습니다.
즉, 팀원이 코드를 적용하면 팀장이 코드 확인 후 실제 소스 코드에 적용할지 결정할 수 있다는 것 입니다.
자세한 사항은 gerrit site(https://www.gerritcodereview.com)에서 확인해 보시기 바랍니다.
3. 업무 이력 관리 프로그램(redmine, jira, confluence)
개발자들이니까 코드만 볼 줄 알면 되지 않나요!!! 네~~ 아닙니다 ㅎㅎ
많은 사람들이 많은 업무를 진행하는데 소스 코드의 이력만 봐서는 빠르고 정확한 확인이 어렵습니다.
그래서 업무 이력 관리 프로그램을 별도로 구축하는데요. 제가 사용해 본 것 중에 몇 가지 추천드리고자 합니다.
Redmine(무료), jira(부분 유료), confluence(부분 유료)
Redmine은 무료로 각자 담당한 업무의 내용과 진행 사항을 작성, 관리하고 완료 기일은 언제까지인지 현재 진행 중인지 등의 업무 진행의 전반적인 내용들을 작성, 관리할 수 있습니다. 다만 무료라 그런지 무언가 멋드러지거나 UI적으로 깔끔한 느낌은 없습니다. 그러나 많은 회사나 단체에서 사용하고 있습니다.
Jira 역시 remine과 같은 기능들이 있는데 UI적으로 표현이 잘 되어 있어 사용해 보면 아주 만족스러울 것 입니다. 네, 유료라 그렇습니다 ㅎㅎ 역시 돈이 들어가야… ㅎㅎ
Confluence는 진행 사항 표시 등의 용도라기 보다는 문서 관리 프로그램으로 보시는 것이 좋을 것 같습니다. 업무 내용에 따라 사용설명서나 제품소개서 등을 만들게 되는데 word나 powerpoint로 만들어서 redmine에 첨부 파일로 넣기도 하지만 아예 서버에 직접 저장하고 타인과 협업 또는 검토하기를 원하시면 confluence 한번 써보시길 추천 드립니다.
4. 채팅 프로그램(slack)
개발하면서 개발을 위해 별도로 채팅 프로그램 써 본 것은 slack의 최초이자 마지막 입니다 ㅎㅎ
5명 이하의 구성원이라면 무료이고요. 5명 초과는 1명당 돈을 내시거나 뭐 여러 옵션에 따라 돈을 내셔야 합니다.
샘플로 써보실 수 있으니 꼭 한번 써보시기 바랍니다 ㅎ
저런 관리 프로그램이 꼭 필요한가? 라고 생각하시겠지만 혼자 프로젝트를 하더라도 지난 이력을 확인할 필요가 있고, 스스로의 데이터를 쌓는데 아주 도움이 됩니다.
그렇다면 회사나 단체는!? 아주 중요하죠. 80~90년대처럼 회사가 사람 한명 한명으로 유지되는 것이 아니라 이제는 시스템을 통해 돌아가게 변화되고 있습니다.
예를 들면 10년을 다닌 과장 한명이 회사를 나가면 그 분이 가지고 있는 지식과 노하우가 사라지는 것이죠. 이런 것을 예방, 방지하기 위해 문서화 작업을 하고 이력을 남기는 것 입니다. 왜냐하면 10년 된 과장님의 지식과 노하우는 오롯이 본인의 것이 아니기 때문입니다. 혹여 누군가 퇴직을 해도 제대로 된 문서와 이력이 있다면 그 다음 사람이 데이터만 보고도 빠른 업무 파악과 시작이 가능합니다. 그러면 회사 입장에서도 좋은 것이고요.
그런데 아쉽게도 중소기업에서는 이런 문서화나 이력 관리가 잘 안되는 편 입니다. 왜? 당장 돈 벌기도 바쁜데다가 내가 이 회사에 다닐 수 있는 이유가 저 지식과 노하우인데 주면 안된다는 의식이 있기 때문이죠. 아! 물론 모든 중소기업이 그런 것은 아닙니다! 오해 없으시길 바랍니다 ㅎㅎ
그런데 또 아이러니하게 존경받고 칭찬받는 사람들은 아낌없이 다 주고 갑니다. 왜? 스스로 자신감도 있지만 실제 일을 해보면 내가 알고 있는 것 다 알려줘도 내가 하는 만큼 상대방이 따라오려면 시간이 걸립니다. 그럼 그 시간 동안 난 가만히 있을까요? 아니죠 또 앞으로 나아가겠죠. 그렇기 때문에 문서화, 이력 작성 등을 해도 상관이 없다는 거죠 ㅎㅎ
이 예시가 맞는지 모르겠지만 수많은 원조 음식점들이 있지만 진짜! 원조라 하는 집이 있다면! 주변에 원조라 써 붙여도 손님들은 어떻게 알고 진짜 원조를 찾는단 말이죠. 기술자도 마찬가지라 봅니다.
프로그래머는 일을 완전히 그만 둘 때까지 계~속 공부해야 합니다. 힘들어요 ㅎㅎ 그런데 또 만드는 보람이 있습니다. 내 손으로 무언가를 만들어 내는거잖아요. 과대 포장해서 "창조" 하는거죠. 그 짜릿함이란!!! ㅎㅎ
제가 소개해 드린 프로그램 말고도 많은 것들이 있겠지만 제가 써본게 몇 개 안되서 ㅎㅎ
개인적으로 보편적으로 사용되는 것들이 아닌가 싶습니다 ㅎ
요세는 신입분들에게도 open source project 해봤는지 물어보는 경우도 있다고 하더라고요!?
그럼 git, gerrit을 활용해 보세요 ㅎ 가장 많이 사용되니까요 ㅎ
그럼 오늘도 힘들 내시고!!
궁금한 사항은 댓글 달아주세요~~
'프로그래밍 > 임베디드 프로그래머 생활' 카테고리의 다른 글
임베디드 프로그래머로써 한 업무들(1) (0) | 2020.12.14 |
---|---|
OS가 있는 분야 (0) | 2020.12.13 |
임베디드 프로그래머의 미래는? (0) | 2020.12.10 |
임베디드 프로그래머의 이직 준비에 도움되는 것들 (0) | 2020.12.08 |
임베디드 프로그래머는 어떻게 이직 준비를 해야 되나? (0) | 2020.12.07 |