4번의 백엔드 네트워킹 및 과제를 하면서 이전에는 개발을 하면서 경험해보지 못한 많은 부분을 배웠다.
실제 서비스에서 발생할 수 있는 다양한 문제 상황 경험
그전에 백엔드 개발을 할 때는 대용량 트래픽, 대량의 데이터 등에 대해서 고려하지 하지 않고 기능 구현에 집중했다.
이번 네트워킹 과제를 진행하면서 로직상에 문제가 없다고 생각한 기능들도 실제로 많은 사용자가 동시에 접근하는 상황 또는 데이터가 많아지는 상황에서 내가 의도하지 않은 결과가 나오는 것을 확인했다.
특히 사용자가 몰릴 경우 race condition 문제가 실제로 발생해 데이터 일관성 문제가 발생함을 확인할 수 있었고, 데이터가 많을 경우 데이터를 저장하거나 조회하는데 상상 이상의 성능 감소가 발생함을 확인했다.
이를 통해 내가 알고 있는 것이 전부가 아님을 확인할 수 있고 실무에서 일어나는 다양한 문제 상황에 대해 대처할 수 있는 방안을 많이 알고 있어야 함을 확인했다.
나만 보는 코드가 아닌 상대방이 이해할 수 있는 코드
과제를 진행하면서 동아리원들의 코드 리뷰를 진행했다.
실력이 뛰어난 동아리원들의 코드를 보면서 이해하기 쉬운 코드, 유지보수가 쉬운 코드가 무엇인지 배울 수 있었다.
예를 들어, DTO를 활용해 컨트롤러, 서비스, 리포지터리 계층을 명확히 분리함으로써 책임을 구분하고 유지보수성을 높이는 방법을 배웠다. 반면, 내가 작성한 코드는 이러한 구조적 분리가 부족해 가독성과 유지보수성이 떨어지는 부분이 많았다.
코드는 결국 혼자 보는 것이 아니라 다른 개발자들과 함께 읽고 유지보수해야 하는 것이므로 코드의 가독성과 구조적 설계를 더 신경 써야겠다는 생각이 들었다.
다른 사람들의 코드 읽어보기
이전까지는 내 코드 구현에 집중하느라 다른 사람들의 코드를 자세히 읽어보지 않았다.
그러나 이번 네트워킹을 통해 다양한 코드들을 접하면서, 여러 가지 구현 방식과 서로 다른 사고방식을 경험할 수 있었다.
이를 통해 단순히 기능을 만드는 것이 아니라, 더 효율적이고 깔끔한 코드 작성 방법을 배우는 계기가 되었다.
다른 사람들의 코드를 분석하고 장점을 흡수하는 과정이 반복되면서, 자연스럽게 내 코드도 발전하고 개선되는 경험을 할 수 있었다.
24년도 2학기에 Cotato 백엔드 파트로서 네트워킹에 참여해 다양한 경험을 하며 많은 것을 배울 수 있었다. 이 경험을 통해서 한층 더 성장한 것 같고 배운 것들을 잘 활용해서 능숙한 개발자로 성장하고 싶다.
참고
Cotato 네트워킹 회고 4 (인기 게시글 조회 성능 최적화)
기존 코드를 통해서 인기 게시글 조회 소요 시간을 측정하게 되면 다음과 같은 결과가 나오게 된다. 동시에 발생한 요청이 실행된 횟수가 총 500회 일 경우, 요청 당 평균 응답 시간은 5.145 초가
velog.io
Cotato 네트워킹 회고 3 (동시성 제어)
위 메서드에 대하여 같은 게시글에 대하여 요청이 들어올 경우, 해당 조회수에 대한 증가는 순차적으로 이뤄져서 동기화가 이루어져야 한다. 하지만 적절한 동시성 제어를 하지 않고 해당 메소
velog.io
Cotato 네트워킹 회고 2 (대량의 데이터 저장하기)
20만 건의 데이터를 읽어와 데이터베이스에 저장하는 로직을 구현하면서, JPA의 saveAll() 방식과 JDBC를 활용한 Bulk Insert 방식을 비교하며 겪었던 차이를 중심으로 작성한 글이다.대량 데이터 저장
velog.io
Cotato 네트워킹 회고 1
1주차 과제는 과제의 요구 사항를 충족하면서 기존의 코드를 객체지향적인 코드로 변경하는 과제였다. 과제를 수행하면서 고민해볼 주요 사항들은 다음과 같았다.상수 관리코드 중복의 없애는
velog.io
'활동 > Cotato' 카테고리의 다른 글
Cotato 5th 해커톤 회고 (0) | 2025.02.11 |
---|