Software 직무의 경우 결국 프로그램을 개발하는 것이 가장 중요하다고 생각합니다.
프로그램 개발 필요한 역량은 1.설계와 2.구현이 있습니다.
서비스 하는 규모와 어떤 서비스를 하는지에 따라 시스템 아키텍처에 대한 올바른 설계가 선행되어야 하며, 그 후 도메인 설계를 하고 서비스 로직의 구현으로 이어지는 것이 프로그램 개발에 있어서 자연스러운 흐름이라고 생각됩니다.
저는 교내 경진대회 프로젝트로 'OOO 시스템'을 구현한 바 있습니다.
1. 설계
해당 시스템은 웹 서버와 얼굴인식을 하는 서버가 분리되어 있었고, 이 두 모듈간에는 통신 및 파일 공유가 필요했습니다. 따라서 처음에는 시스템 아키텍처를 설계를 했습니다. 해당 프로젝트의 아키텍처는 도커 컨테이너를 기반으로 톰캣, 젠킨스를 두어 웹 어플리케이션의 CI/CD를 구축하였으며, 얼굴인식 부분의 경우에는 로컬에서 파이썬 프로그램을 실행하도록 하였고, 두 모듈은 소켓 통신을 통해 정보를 주고받을 수 있습니다. 아키텍처 설계 후 서비스에 필요한 도메인을 설계했습니다. 해당 프로젝트의 경우 사용자, 이미지 정보, 영상 정보, 업로드 정보, 결과 정보 등의 도메인을 설계했습니다.
2. 구현
도메인 설계가 끝난 후, 해당 도메인과 관련된 서비스 로직을 작성했습니다. 회원가입, 로그인, 파일 업로드 등이 이에 해당됩니다.