질문 전체 내용
졸업 작품으로 AWS(EC2, RDS, S3)랑 도메인 연결해서 https 연결하고 node.js로 API서버 만들고 도커라이징까지 해놨습니다.
파트너한테서 AI classification 모델 받아서 Flask로 model load 후에 api 통신 받아서 관측값을 반환하는식으로 만들고 있습니다.
CI/CD도 추가 예정인데, 여기서 더 추가하면 좋을만한 게 있을까요?
파트너는 Kotlin으로 어플 제작 중입니다.
답변자, 질문자 대화 내용
답변자
그 프레임워크를 채택한 이유가 뭔가요? 어떤 데이터베이스 시스템을 사용했으며, 그 데이터베이스의 장단점과 선택한 이유가 뭔가요? 코틀린으로 어플을 구성하였는데, 서버도 코틀린으로 구성하면 안 됐나요? 관련하여 여러 질문이 생기네요.
질문자
음.. 그냥 제일 익숙한걸로 구현하긴했는데 일단 해당 프레임워크는 사용자 풀이 넓어서 자료찾기가 편하기도해서 채택한 감이 있어요..! 아 그리구 안드로이드는 제가 아니고 파트너가 하는거라.. 답변하기 힘드네요 ㅠㅠ
답변자
프레임워크 종류가 생각보다 다양합니다. 예를 들어 노드 같은 경우 express, fastify, koa 등 장단점을 알아두시고, 왜 선택했는지까지 질문이 왔을 때 답하시면 도움됩니다.
네. 사용자가 많다는건 레퍼런스가 많아서 디버깅이 다른 프레임워크에 비해 쉬웠다는 식으로 풀수도 있겠네요. 신입에게 바라는건 얼마나 코드를 잘 구현했느냐보다는 이런 기본기가 얼마나 좋느냐에 다른 지원자와 경쟁이 갈리는 것 같습니다.
질문자
db는 mysql를 채택하고 Sequelize ORM으로 매핑해서 처리했습니다. 이거를 통짜 SQL보다 ORM 쓰는게 더 좋겠지요..?
답변자
왜 좋을까요?
질문자
코드의 가독성이 좋아지기도 하고, 생산성이나 유지보수가 더 좋다고 생각돼요.
답변자
잘 아시네요. 객체 중심으로 개발할 수 있다. 이런 식으로 CI/CD를 현재 프로젝트에 적용해야하는지 잘 결정해보시면 될 것 같아요. 무조건 채용 공고에 있다고 추가하는 것보단 좋은 접근이라고 생각합니다. CI/CD 추가에 드는 일정으로 코드를 더 효율적으로 만든다거나, 테스트 코드를 더 추가해 본다거나 성능테스트를 통해 슬로우쿼리를 최적화하는 게 좀 더 좋지 않을까 생각되네요.
질문자
앗.. 테스트..매번 미루다 미루다 지금 생각났네요.. 조언 감사합니다! TDD를 하라곤 하는데 뚝딱만들다보면 계속 만들다보니까 테스트를 생각 안 했었네요
답변자
개인적으로 tdd는 실무에서 사용되지 않아서, 굳이 tdd로 프로젝트를 해서 일정을 늘릴 필요가 있을까하는 생각이 있습니다. 개인적인 생각이에요!