API 문서 자동화: Javadoc과 Swagger로 구축하는 소통의 '캐시(Cache)'
한 줄 요약: 문서화는 더 이상 노동이 아니다. 코드와 동기화된 문서는 팀의 연산 비용을 줄여주는 최적화다. 1. Javadoc vs Swagger: 무엇이 다른가? 두 도구 모두 문서화를 돕지만, 누구에게 무엇을 보여줄 것인가에 따라 역할이 나뉩니다. Javadoc (내부용): Java 소스 코드에서 HTML 문서를 생성합니다. 주로 ...
한 줄 요약: 문서화는 더 이상 노동이 아니다. 코드와 동기화된 문서는 팀의 연산 비용을 줄여주는 최적화다. 1. Javadoc vs Swagger: 무엇이 다른가? 두 도구 모두 문서화를 돕지만, 누구에게 무엇을 보여줄 것인가에 따라 역할이 나뉩니다. Javadoc (내부용): Java 소스 코드에서 HTML 문서를 생성합니다. 주로 ...
“한 줄 요약: 뛰어난 코드는 기술력에서 나오지만 위대한 제품은 개발자의 ‘기본자세’와 ‘협업’에서 나온다.” 1. 왜 개발자에게 ‘코드 이전’의 역량이 필요한가? 소프트웨어 개발은 이제 개인의 천재성만으로 굴러가지 않습니다. 프로젝트 규모가 커질수록 ‘개인의 생산성’ 보다 ‘팀의 협업 효율’ 이 성패를 가르기 때문입니다. 협업 비용 절...
“한 줄 요약: 이미 계산한 값은 기록해두자. 기억력은 곧 성능이다.” 1. 메모이제이션(Memoization)이란? 재귀 함수가 동일한 계산을 반복해야 할 때 이전에 계산한 결과를 메모리에 기록(Caching) 해 두었다가 다시 사용하는 기법입니다. 핵심: ‘중복 계산’을 제거해 실행 속도를 크게 끌어올린다. 조건: 동일한 입력에 항상 ...
한 줄 요약: 비교 없이 위치를 계산해 정렬하되, 입력 순서를 끝까지 지켜내는 알고리즘. 1. 계수 정렬(Counting Sort)이란? 일반적인 정렬(Quick, Merge 등)은 데이터끼리 크기를 직접 비교하지만, 계수 정렬은 각 숫자가 몇 번 등장했는지 세어서 위치를 찾는 알고리즘입니다. 핵심 원리: 데이터의 값을 직접 비교하지 않고 ...
“한 줄 요약: 좋은 프로그램은 문제가 없는 프로그램이 아니라 문제가 생겼을 때 무너지지 않는 프로그램이다.” 1. 왜 예외 처리가 필요한가? 개발자는 항상 ‘정상적인 상황’을 가정하고 코드를 짜지만 현실은 다릅니다. 사용자는 숫자가 필요한 곳에 문자를 입력하고("12a") 네트워크는 갑자기 끊기며 읽어야 할 파일은 사라지기도 합니다. 핵심 ...
“한 줄 요약: 주석이 ‘어떻게(How)’에 집중한다면, Javadoc은 ‘무엇을(What)’과 ‘왜(Why)’라는 계약에 집중한다.” 1. Javadoc은 왜 필요할까? 단순히 “설명이 필요해서”가 아니다. 잘 작성된 Javadoc에는 이런 이점이 있다. API 계약의 명시: 메서드가 무엇을 입력받고 무엇을 반환하며 어떤 예외를 던지는지 ...
한 줄 요약. 값 중심의 프로그래밍에서 타입과 의도 중심의 프로그래밍으로 넘어가는 이야기다. 1. Enum, 상수 집합을 넘어선 상태 도메인 모델 String이나 int 상수는 값만 전달할 뿐 의도, 즉 타입은 담지 못합니다. Enum은 인스턴스 수가 고정된 특별한 클래스라서 타입 안정성(Type Safety)을 보장합니다. 1-1. 실무형 En...
“한 줄 요약: 삭제와 같은 상호 작용 때문에 맺어진 양방향 관계는 데이터 정합성을 맞추는 데 추가 작업이 필요하다.” 1. 발단: “삭제할 때 둘이 엮여있다…?” Category에서 상품을 삭제(removeProduct)하거나, Product가 속한 카테고리를 변경할 때, 두 객체의 상태를 모두 동기화해야겠다고 느꼈습니다. 예를 들어 상품이 삭제...
한 줄 요약: instanceof를 걷어내 다형성을 확보하고, 메서드 이름(hasNext vs isEmpty)으로 비즈니스 의도를 드러낸다. 1. instanceof 사용을 지양해야 하는 이유 코드 내에서 객체의 실제 타입(예: Category, Product)을 직접 확인하는 instanceof는 가급적 피해야 한다고 한다. OCP (개방-...
“한 줄 요약: 스트림으로 출력을 선언적으로 개선하고, 객체를 생성·관리하는 책임을 분리해 응집도 높은 설계를 만들었다” 1. 🔍 문제 분석 (Problem Understanding) 상황: 상품 리스트 출력 시 for문과 인덱스(i)를 사용함. 문제점: 문자열 더하기(+)의 반복으로 가독성이 낮고, 출력 형식이 로직에 강하게 결합되어 수정...