캐나다 IT 개발자로 취업하기 위해서는 포트폴리오 작성이 필수적입니다. 기존 프로젝트를 효과적으로 표현하는 것도 중요하지만, 새로운 포트폴리오 프로젝트를 만들어서 영문 이력서에 반영하는 것도 꼭 거쳐야 하는 과정입니다.
개발자 포트 폴리오 프로젝트 작성
물론 기존에 한국 혹은 캐나다에서 진행해 온 프로젝트를 어떤 관련 고용주가 봐도 매력적으로 느끼게끔 마케팅 효과를 극대화해서 이력서에 표현하는 것도 중요하지만, 여기에서는 개발자가 새롭게 포트폴리오 프로젝트를 만들고 이를 영문 이력서에 반영하여 면접 기회를 확보하고 취업하는 방법에 대한 자세한 안내를 하려고 합니다.
우선 고려해야 할 사항은 어떤 순서와 방법으로 포트폴리오를 만들어야 할 지에 대해 다음과 같이 고민을 해 보아야 합니다. 실제 프로젝트와는 다르게 포트폴리오 프로젝트는 회사 내의 HR 혹은 IT 팀을 대상으로 합니다. 그렇기 때문에 UI 적인 부분에 시간을 많이 들일 필요는 없고, 가능하다면 모듈, 기능, 코드의 품질 등을 중점적으로 작성, 테스트하셔야 합니다. 그렇지만 그렇다고 해서 일반 프로젝트와 전혀 다른 것은 아니고, 일정 정도 그 과정은 비슷하게 생각해 볼 수 있는데 아래와 같이 구체적으로 그 과정을 명시했으니 참조하시기 바랍니다.
포트폴리오프로젝트 작성 과정
- 포트폴리오 프로젝트 계획 및 선택: 프로젝트 실제 수행에 앞서 현재 캐나다 IT 시장의 트렌트, Job 시장에서의 요구사항을 미리 파악하는 것을 권장합니다.
- 분야 선택: 먼저, 자신이 전문화하고자 하는 분야를 결정합니다. 예를 들어, 웹 개발, 모바일 앱 개발, 데이터 분석 등의 분야가 있습니다. 이는 개발자가 어떤 프로젝트를 선택할지, 어떤 기술 스택을 사용할지 결정하는 데 도움이 됩니다. 이때 중요한 것은 함께 현재 캐나다 Job 마켓에 대해 리서치를 해 보는 것을 추천드립니다. 전혀 동떨어진 분야가 아니라, 어느 정도의 마켓을 가지고 있는 분야임을 미리 알고 시작하는 것도 좋은 방법 중의 하나입니다.
- 참조 블로그 글: "캐나다 IT 시장의 전반적인 기술 요구사항" 글을 올렸으니 참조해 주세요. [해외 취업 일반 정보] - 캐나다 IT 시장의 전반적인 기술 요구사항 파악
- 프로젝트 아이디어 브레인스토밍: 개인적인 관심사, 개발하고 싶은 애플리케이션, 또는 시장의 필요를 충족시키는 아이디어 등을 고려하여 아이디어를 생성합니다. 어떤 비즈니스를 생성, 진행하기 위함이 목적이 아니라 Job 시장 취업이라는 목표 아래 있기 때문에 이 과정에서는 지나치게 창의적인 것만을 생각하지 마시고, 기존의 프로젝트를 많이 살펴보시고, 이를 통해 부분적이나마 자기의 아이디어를 첨가해서 진행하는 것도 포트폴리오 프로젝트 아이디어에 해당된다고 볼 수 있습니다. 예를 들어 기존의 github, bitbucket 혹은 gitlab으로부터 참조해서 프로젝트를 재 생성 하는 방법입니다.
- 분야 선택: 먼저, 자신이 전문화하고자 하는 분야를 결정합니다. 예를 들어, 웹 개발, 모바일 앱 개발, 데이터 분석 등의 분야가 있습니다. 이는 개발자가 어떤 프로젝트를 선택할지, 어떤 기술 스택을 사용할지 결정하는 데 도움이 됩니다. 이때 중요한 것은 함께 현재 캐나다 Job 마켓에 대해 리서치를 해 보는 것을 추천드립니다. 전혀 동떨어진 분야가 아니라, 어느 정도의 마켓을 가지고 있는 분야임을 미리 알고 시작하는 것도 좋은 방법 중의 하나입니다.
- 포트폴리오 프로젝트 개발
- 프로젝트 환경 설정 (기술 스택 결정) : 개발 환경을 설정하고 필요한 도구와 라이브러리를 설치합니다. 이 단계에서는 프로젝트에 필요한 모든 설정을 완료하여 원활한 개발을 위한 기반을 마련합니다. 이는 프로젝트를 진행하는 데 가장 기초적인 단계이며, 적절한 환경을 구축하지 않으면 개발 과정에서 문제가 발생할 수 있습니다. 따라서, 각각의 도구와 라이브러리를 신중하게 선택하고 설치하여 프로젝트에 최적화된 개발 환경을 구축해야 합니다. 이를 위해 프로젝트의 목표와 요구 사항을 고려하여 필요한 도구와 라이브러리를 선택하고 적절하게 설치하는 것이 필요합니다.
- 프로젝트 관리 계획: 작업 분할 구조 (WBS)를 사용하여 프로젝트를 세분화하고, 각 작업에 대한 일정을 세우며, 마일스톤을 설정하여 프로젝트를 계획합니다. 또한 품질 관리 및 위험 관리 계획을 수립하여 프로젝트의 성공을 보장합니다. 이때 예를 들어 Jira라고 하는 online agile tool을 이용해서 작업하고, 연습해 보는 것도 도움이 많이 될 것입니다. 많은 캐나다 IT 회사에서 개발 방법론으로 택하고 사용하는 방법이기도 하니까, 그런 부분도 적용하면 좋습니다. 사실 이 부분은 optional 한 부분입니다. 실제 프로젝트에서는 PM 혹은 PL들이 이러한 스케줄과 범위 규정을 조직적으로 구성해 내지만, 취업을 위한 포트폴리오 프로젝에서는 생략해도 됩니다. 하지만 비록 혼자 작업을 한다고 해도 앞서 말한 agile 방법론을 따라 계획적으로 스스로 관리하는 방법을 택하는 것을 권장합니다.
- 개발 시작: 프로젝트를 모듈로 분할하고 각 기능을 개발하기 시작합니다. 우선, 각 모듈에 대한 요구사항을 분석하고 설계 단계로 진행합니다. 이후에는 각 모듈을 개별적으로 구현하며, 필요한 기능을 추가하고 세부적인 기능을 개선합니다. 모듈 간의 통합을 위해 필요한 테스트를 수행하고, 버그를 수정하며 안정성을 향상합니다. 이렇게 개발 과정을 체계적으로 진행하여 프로젝트의 품질과 유지 보수성을 높일 수 있습니다. 코드의 변경이 있을 때마다 git 저장소에 꾸준히 commit을 해 나가는 것도 당연한 진행과정 중의 하나입니다.
- 테스팅 및 디버깅: 유닛 테스트, 통합 테스트, 시스템 테스트 등 다양한 테스트를 수행하여 코드의 안정성과 신뢰성을 확보하고, 발생한 버그를 신속하게 수정합니다. 이러한 부분들도 당연히 테스트 기반의 개발이라는 (TDD: Test Driven Development)라는 항목을 이력서에 추가해서 설명할 수 있는 근거가 되니, 놓치지 마시기 바랍니다.
- 프로젝트 완성 및 배포:
- 코드 리뷰 및 리팩토링: 코드의 품질을 향상하기 위해 정기적으로 리팩토링을 수행하고, 가능하다면 동료 혹은 코드를 아는 이로부터 귀중한 피드백을 받습니다. 이를 통해 코드의 가독성과 유지보수성을 높이고, 더 나은 소프트웨어를 개발할 수 있습니다. 사실 이 과정은 요즘 개발자들이 이용하고 있는 AI의 도움을 받으셔도 됩니다. 사실 면접관 혹은 팀원들이 코드를 모두 리뷰하지는 않고, 그중에 몇 가지만 보고 코드 작성 패턴을 보는 경우가 많은데, 이때 개발자의 quality를 보여주기 위해서는 반드시 리팩토링을 거쳐야 합니다.
- 문서 작성: README 파일, 개발 문서, 사용자 매뉴얼 등을 포함하여 프로젝트 문서를 작성합니다. 이 문서들은 프로젝트의 목적과 목표를 명확하게 설명하고, 프로젝트의 진행 방식과 사용되는 도구 및 기술에 대한 자세한 내용을 제공합니다. 또한, 문서 작성 과정에서는 프로젝트의 주요 기능 및 구현 방법에 대한 설명도 포함되어야 합니다. 아무리 작은 프로젝트라고 하더라도, 핵심 기능과 모듈에 대해서는 정확하고 분명하게 표현해 주어야 합니다.
- 프로젝트 배포: GitHub, Heroku, AWS 등의 다양한 플랫폼에 프로젝트를 배포하고, 사용 가능한 링크를 생성하여 면접 예상이 되는 회사의 팀원들 혹은 매니저가 쉽게 접근하고 활용할 수 있도록 합니다.
포트폴리오 프로젝트 영문 이력서 기술
프로젝트에 대한 설명은 구체적이고 명확해야 합니다. 구직자가 어떤 문제를 해결했는지, 어떤 기술을 사용했는지, 그리고 결과가 어떠했는지를 명확하게 작성해야 합니다. 이렇게 하면 채용 담당자가 구직자의 기술력과 문제 해결 능력을 쉽게 이해할 수 있습니다. (자세한 영문 이력서 작성 방법은 이 블로그의 "영문 이력서 작성" 부분을 참조해 주세요 [해외 취업 일반 정보] - 영문 이력서 작성 )
여기에서는 위와 같이 작업한 포트폴리오 프로젝트 (혹은 기존의 프로젝트를 새롭게 영문으로 바꾸면서 기능을 보강한 경우도 마찬가지)를 영문 이력서에 기술하는 몇 가지 예를 소개합니다. 그리고 위에서 배포한 프로젝트의 URL을 함께 이력서에 명시해 주시면 더욱 도움이 될 것입니다.
Developed a full-stack web application for restaurant reservation using React.js and Node.js (GitHub link). The application allows users to search for restaurants based on location and cuisine type, make reservations online and provide reviews after dining experience.
Designed and implemented an e-commerce mobile app using Flutter (GitHub link). The app includes features such as user authentication, product listing by categories, shopping cart management and secure online payment.
Conducted a data analysis project using Python's pandas library to investigate the trend of COVID-19 cases across the globe (GitHub link). The project involved data cleaning from various sources, comprehensive analysis, visualization using matplotlib and seaborn, and interpretation of the results.
'Job 인터뷰' 카테고리의 다른 글
모의 인터뷰 (0) | 2023.10.29 |
---|---|
IT 개발자 이직할 때 고려 사항 (0) | 2023.10.27 |
Job Reference 준비 (0) | 2023.10.26 |
전화 인터뷰 잘 하는 방법 (0) | 2023.10.14 |
캐나다 IT Job 인터뷰시에 피해야 할 질문들, 해야 할 질문들 (0) | 2023.10.12 |