본문 바로가기

분류 전체보기1169

나만의 클린 코드 이야기 - Enum의 description 변수를 사용하자 해당 글은 클린 코드의 대한 자유로운 의견을 공유하고 작성된 것으로 다양한 의견이나 잘못된 내용이 있으시면 댓글 남겨주시면 감사하겠습니다.상수를 정의하는 방법으로 interface, 자체 클래스 상수, 내부 final 상수로 만드는 방법이 많지만 Java에서 상수를 정의하라고 만든 Enum 클래스 타입이 존재합니다.  Enum 클래스에서 정의한 상수의 네이밍으로 한 눈에 알아볼 수 있지만, 상세적인 내용을 1개의 네이밍으로 설정하는 것은 쉽지 않은 일입니다. public enum Type{ TYPE_NAME1(...), TYPE_NAME2(...), TYPE_NAME3(...), TYPE_NAME4(...); ...}  해당 Enum 클래스의 유지보수성을 높이기 위해서 description 변수.. 2025. 4. 3.
[백준, Java] 13710번, XOR 합 3(비트마스킹, 누적합) ㅏㅈ문제 링크 13710번: XOR 합 3수열의 XOR 합이란 수열에 들어있는 모든 원소를 다 XOR한 값이다. 수열 A 주어졌을 때, A의 모든 연속하는 부분 수열의 XOR 합을 더한 값을 구하는 프로그램을 작성하시오.www.acmicpc.net주의사항JAVA를 사용하여 프로그램을 사용하였습니다.백준에서 코드를 작성하였을 때 아래 형태에서 Main에서 결과가 출력되어야 합니다.public class Main{ public static void main(String[] args){ }}문제 설명접근 방법이 문제에 핵심 1. 수열 XOR 합은 수열에 들어있는 모든 원소를 XOR한 값이다.2. 수열 A가 주어질 때 모든 연속하는 부분 수열의 XOR합을 더한 값을 결과로 출력합니다.3. 수열에는 1,.. 2025. 3. 28.
[백준, Java] 17609번, 회문(투 포인터) 문제 링크 17609번: 회문회문(回文) 또는 팰린드롬(palindrome)은 앞 뒤 방향으로 볼 때 같은 순서의 문자로 구성된 문자열을 말한다. 예를 들어 ‘abba’ ‘kayak’, ‘reviver’, ‘madam’은 모두 회문이다. 만일 그 자체는 회문이 아니지만 한www.acmicpc.net주의사항JAVA를 사용하여 프로그램을 사용하였습니다.백준에서 코드를 작성하였을 때 아래 형태에서 Main에서 결과가 출력되어야 합니다.public class Main{ public static void main(String[] args){ }}문제 설명접근 방법이 문제에 핵심 1. 일반적인 문자열이 주어질 때 회문/유사회문/일반 문자열인지 판단해야 한다.2. 한 문자를 삭제하여 회문을 만들 수 있으면 .. 2025. 3. 24.
Plug-in Architecture(pf4j을 곁들인 예시) Plug-in Architecture일상생활에서 사용하고 싶은 전자제품에 대해서 플러그를 꽂고 사용한 뒤 플러그를 빼는 활동을 자연스럽게 행동합니다.위 행동을 개발하는 용어로 살펴본다면 아래와 같이 볼 수 있습니다.일반적인 우리의 행동개발자로 보는 관점일상생활을 하고 있는 자신RunTime 중인 서버하고 싶은 활동인터페이스전자 제품인터페이스가 구현된 객체 Plug-in Architecture는 위 개념에 따라 코어 시스템을 중심으로 미리 정의한 인터페이스으로 구현된 Plug-in을 필요에 따라 붙여서 사용하는 아키텍처입니다. 코어 시스템에 대한 최소한의 기능을 구현하고 사용에 따라 변화할 수 있는 부분은 Plug-in으로 RunTime의 대처할 수 있어서 확장성이 용이한 방식입니다.  용어설명코어 시스템.. 2025. 3. 6.
OpenStack KeyStone 1). 사전 지식오픈 스택에서 제공하는 여러가지 서비스(Nova, Cinder, Switf 등)은 모두 독립적인 서비스를 제공하고 있습니다. - 각 서비스를 이용하려면 인증/인가 과정을 다시 확인하게 됩니다.2). 인증 과정[현실 세계에서의 예시][전제 조건] : 홍길동은 음식점에서 항상 음주를 하기 때문에 신분증 검사를 합니다.[음식점 A, 음식점 B, 음식점 C] : OpenStack 각각 독립적인 서비스(Cinder, Glance 등)[신분증] : 인증 토큰[현재 환경의 특징] : 음식점 C의 주류는 음식점 B에서 제공받고 있습니다. 1). 홍길동이 음식점 A에 방문하여 신분증 검사를 하였습니다.2). 홍길동이 음식점 B에 방문하여 신분증 검사를 하였습니다.3). 홍길동이 음식점 C에 방문하여 신분.. 2025. 2. 24.
Koltin Gradle, Groovy Gradle 비교 주요 차이점 비교  장단점 장점단점 Groovy DSL - 간결한 문법- 더 나은 빌드 성능- 낮은 학습 곡선- 효율적인 증분 빌드 · 동적 타이핑으로 인한 타입 안전성 부족· IDE 지원이 상대적으로 약함 Kotlin DSL · 강력한 타입 안전성 · 우수한 IDE 지원 (자동완성, 오류 감지)· 리팩토링 용이성 · 상대적으로 장황한 문법 · 학습 곡선이 더 가파름  성능 비교[Gradle 개발자가 남긴 벤치마킹 정보] The Kotlin and Groovy DSLs should have similar performance characteristics · Issue #15886 · gradle/gradleExpected Behavior The Kotlin and Groovy DSLs have as .. 2025. 1. 21.