
그 동안 조금 쉬고 싶기도 했고, 취업 후 적응이라는 빛 좋은 핑계로 개발 공부에 손을 놓았던 것 같다.
개발자라고 하기 부끄럽지만, 개발자로 취직하며 여러 개발자와 대화할 기회가 많았는데
그들이 개발을 대하는 방식과 삶을 살아온 방식은 천차만별이라
깨달은 바가 많았다. 다시금 공부를 해야겠다는 생각을 뼈저리게 느끼게 되었다.
다시 개발공부 달려보도록 할 것이다.
Why? 스케일 아웃은 데이터를 여러 곳에 분산시키겠다는 의미인데,
트랜잭션은 데이터의 일관성을 보장하기 위해
스케일 아웃 한 만큼 여러 서버간 동기화 작업을 실행하게 되니
성능이 떨어지게 되는 것.
-> 트랜잭션을 위한 시간이 증가하게 됨.참고: RDB 스케일링에 관한 글 
과제 할당 : 사업부나 마케팅, 개발팀 등에서 개발 과제를 할당한다.
과제 분석 : 할당받은 과제에서 각각의 의미를 분석하는 과정이다.
클라이언트가 과제를 할당할 때 생각했던 의미와
개발자가 과제를 이해할 때 정말 많은 생각의 차이가 발생하기 때문에,
"이벤트를 초대한다" 라는 누구라도 이해할 수 있을 법한
과제 속에서도 "이벤트"란 무엇을 말하는지, "초대"란 무엇을 의미하는지
면밀하게 분석하고 정리하는 것이 중요하다.
개발 : 본격적으로 개발을 진행하는 과정이다.
버그를 수정하며, 개발한 코드는 깃허브와 같은 협업툴을 통해 동료의 리뷰를 받고 코드의 완성도를높일 수 있다.
테스트 : 코드가 잘 동작하는지 확인하는 것 뿐만 아니라, 로직상의 문제는 없는지, 성능 한계는 어느정도인지, 내가 작성한 코드가 추후 다른 사람이 읽었을 때 읽기 편한 지 등 다방면으로 검토하면서 테스트를 한다.
조직이나 개발자에 따라 개발용 코드보다 테스트코드를 먼저 작성하는 테스트 주도 개발 기법을 사용하기도 한다.
단위 테스트 : 하나의 모듈(함수, 메서드, 클래스 등) 을 기준으로 독립적으로 진행되는 가장 작은 단위의 테스트
TDD(= Test-Driven Development, 테스트 주도 개발) : 반복 테스트를 이용한 소프트웨어 방법론.
작은 단위의 테스트 케이스를 작성하고 이를 통과하는 코드를 추가하는 단계를 반복하여 구현한다.
QA(=Quality Assurance) : 품질 보증 과정. 기능이 요구사항대로 잘 동작하는지 확인 하며 테스트뿐만 아니라 앱/웹에서의 품질도 유지한다.
참고: QA란? (쏘카 QA팀)
배포와 유지보수 :
CI(=Continuous Integration) : 지속적인 통합이란 뜻. 새로운 코드 변경 사항이 정기적으로빌드 및 테스트되어 저장소에 통합되는 것.
CD(=Continuous Delivery & Continuous Deployment) : 실제 프로덕션 환경까지 변경된코드가 반영되는 것.
실제 개발을 진행하면서, 개발을 할당한 클라이언트와
그것을 이해하고 개발하는 나의 입장이 사뭇 달라서
중간에 개발 방향을 바꾼 적도 몇 번 있었기에, 과제 분석 단계에서
커뮤니케이션하는 단계는 정말 중요하다고 생각한다.
해당 글은 다음 도서의 내용을 정리하고 참고한 글임을 밝힙니다.
신선영, ⌜스프링 부트 3 벡엔드 개발자 되기 - 자바 편⌟, 골든래빗(주), 2023, 384쪽