2025/03 4

지속 가능한 개발자

일반적으로 좋은 코드는 잘 동작하고, 읽기 쉬우며, 유지 보수가 용이한 지속 가능한 코드를 말하곤 합니다. 그런 지속 가능한 코드를 작성하기 위해서는 개발자 또한 지속 가능한 개발자가 되려면 어떤 방법들로 꾸준한 학습을 이어나가야 할까요? 이제 막 5년차에 접어든 제가 성장하기 위해서 활용했던 방법들을 간단하게 공유하고자 합니다. 환경 설정개발의 시작은 항상 환경 설정으로 시작됩니다. 학습 역시 개인의 의지를 믿지 않고 최대한 학습을 할 수 밖에 없는 환경을 조성하려고 노력하고 있습니다. 저는 스스로 얼마나 의지가 약한 사람인지 매우 잘 알고 있습니다. 이 기술이 좋다던데, 저 기술이 좋다던데 등 생각이나 다짐만 하고 실제 행동으로 옮기질 못하는 사람이죠. 그래서 일종의 강제성을 부여하여 이를 극복하고 ..

개발/공부 2025.03.30

Spring에서의 트랜잭션 개념과 적용 사례

1. 트랜잭션의 개념과 특징트랜잭션이란?트랜잭션이란 더 이상 쪼갤 수 없는 하나의 작업 단위를 뜻합니다. 여러 데이터 변경 작업을 하나로 묶어 원자적으로 처리하여, 모든 작업이 성공하면 커밋, 한 작업이라도 실패하면 롤백되어 이전 상태로 복구됩니다. 일상 생활에서는 은행 계좌에서 현금을 인출할 때 현금이 계좌에서 인출되거나, 인출되지 않을 뿐이지 그 중간의 상태는 없는 것과 같습니다. 트랜잭션은 이러한 속성을 ACID 속성인 4가지로 분류하고 있습니다.Atomicity(원자성) : 모든 작업이 완료되거나, 하나라도 실패하면 전체 작업이 취소Consistency(일관성) : 트랜잭션이 끝난 후에도 데이터베이스는 항상 일관된 상태를 유지Isolation(고립성) : 동시에 여러 트랜잭션이 실행되더라도 각각은..

개발/Spring 2025.03.23

TDD의 개념과 적용 사례

기존 항해 학습간 TDD를 처음 접하게 되었고 사내 전파를 위해 귀찮기만 한, 오히려 작업량이 늘어버리는 이미지를 가진 TDD의 효용성에 대해 설득을 위해 간단한 정리를 해보고자 합니다.  TDD란?개발을 하다 보면 이런 경험 한 번씩 있으실겁니다.코드 다 짰는데 안 돌아가네? ⇒ 디버깅 ⇒ 버그 발견 ⇒ 수정 ⇒ 또 안 됨 ⇒ OTL 이런 지옥의 무한 루프에 빠지지 않기 위해 탄생한 것이 바로 TDD(Test-Driven Development) 즉 테스트 주도 개발입니다. TDD의 핵심 개념은 아주 간단합니다. 코드를 짜기 전에 실패하는 테스트를 먼저 작성하자! 즉, 기능을 만들고 테스트하는 게 아니라 테스트부터 만들고 그걸 통과하는 개발을 진행하는 방식입니다. 쉽게 말하면 시험 문제를 보고 거기에 맞..

개발/Spring 2025.03.15

이제 와서 고쳐보는 2024 내 코드

2025년도 두 달이나 지나 벌써 3월입니다. 작년 10월 항해 플러스 백엔드 교육을 통해 많은 인사이트를 얻었고 사용하지 않으면 까먹을게 뻔하니 틈틈이 사내 SI용 템플릿을 개발하고 있었습니다. 당연히 학습과는 달리 실무에 적용하며 많은 어려움을 겪고 있어 다시 한 번 이전에 작성한 코드를 보며 또 다른 인사이트를 얻어보려 합니다.과제 선정항해 당시 선택할 수 있었던 과제는 콘서트 예매 사이트와 E-Commerce 사이트가 있었고 비록 팀 미션은 아니지만 상호 피드백을 위해 학습 매니저님과 팀원들과의 논의 끝에 선정했던 과제는 E-Commerce로 진행하게 되었습니다. Spring Boot로 API 서버만 구현했었고 주요 기능으로는 잔액 충전 및 조회 / 상품 조회 / 장바구니 / 주문 및 결제가 있습..

개발/Spring 2025.03.09