codinglog
COTHE's technical blog
-
Java 21 Visitor Pattern - 로직과 구조의 분리
Java에서 객체 타입별로 다른 처리가 필요할 때 instanceof 남발로 인한 복잡한 코드와 확장성 문제를 Visitor Pattern으로 해결하는 방법을 다룹니다. 음악 스트리밍 서비스 예제를 통해 패턴의 원리를 단계별로 설명하고, Java 21의 최신 기능들과 실무 적용 방법까지 다룹니다. 오늘도 평범한(?) 목요일 아침, 커피를 마시며 코드를 보던 중 이런 생각이 들었습니다. “아, 또...
-
자바 제네릭 super 와일드카드와 PECS 원칙
지금까지 제네릭 클래스, 제네릭 메소드, 와일드카드의 extends에 대해서 알아보았습니다. 드디어 우리의 목표 메소드를 완전히 해석할 수 있는 마지막 퍼즐 조각인 super 키워드에 대해 알아보겠습니다. public <T extends Comparable<? super T>> T max(Collection<? extends T> col) [리스트 1] 드디어 완전히 해석할 목표 super 와일드카드의 필요성 앞선 포스트에서 extends 와일드카드를 배웠는데, 왜...
-
AI 시대, 개발자가 살아남는 방법
AI가 개발 전반에 걸쳐 개입하는 시대가 정말로 왔습니다. 간단한 요구사항만 던져주면 AI 에이전트가 알아서 프로젝트를 만들고, 코드를 생성하고, 심지어 배포까지 해주죠. 처음 AI가 만든 결과물을 본 순간… 정말 경악했습니다. “곧 우리는 짤리겠구나…” 현실은 그렇게 호락호락하지 않더군요 하지만 실무에서 AI를 활용한 개발을 해보니 오히려 시간이 더 걸리는 경우가 허다했습니다. 원래 잘...
-
Windows에 Gradle 9 설치하기
요구사항 Gradle 최신 버전(9.0.0)은 Java JDK 17 이상이 설치되어 있어야 합니다. 주요 OS에서 대부분 설치가 가능합니다. 자바 버전은 아래 명령어로 확인할 수 있습니다. 자바버전 확인 java -version Gradle은 Groovy Library를 포함하여 배포되기 때문에 특별히 따로 설치할 필요는 없습니다. 기존에 설치되어 있는 Groovy가 있어도 그 버전은 무시합니다. 설치파일 다운로드 다운로드 페이지에서...
-
Gemini vs ChatGPT vs Claude - AI 대전의 진짜 승자는 누구인가?
“누가 더 뛰어난가?”보다 중요한 질문 AI를 쓰다 보면 자주 듣게 되는 질문이 있습니다. “제미나이, 챗GPT, 클로드 중에 뭐가 제일 좋아요?” 하지만 실제로 세 가지 모델을 모두 써보면서 깨달은 건, “누가 더 뛰어한가?” 라는 질문보다 “어떤 상황에서 누구를 쓰는 게 더 효과적인가?” 가 훨씬 중요하다는 점입니다. 마치 자바에서 ArrayList와 LinkedList, HashMap이...