반응형

java 28

[SLF4J] Class path contains SLF4J bindings targeting slf4j-api versions 1.7.x or earlier. 에러 해결

프로젝트 구조Java 21gradleSpring boot 3.XSpring Webfluxkotlin에러 발생java, spring boot, gradle 등 프로젝트 주요 라이브러리의 버전업 후, 프로젝트 boot시에 에러가 발생하는 것을 발견SLF4J(W): No SLF4J providers were found.SLF4J(W): Defaulting to no-operation (NOP) logger implementationSLF4J(W): See https://www.slf4j.org/codes.html#noProviders for further details.SLF4J(W): Class path contains SLF4J bindings targeting slf4j-api versions 1.7.x..

개발 Error 2025.03.20

[Spring Webflux] Unable to load io.netty.resolver.dns.macos.MacOSDnsServerAddressStreamProvider, fallback to system defaults. This may result in incorrect DNS resolutions on MacOS. 에러 처리

프로젝트 구조Java 21gradleSpring boot 3.XSpring Webfluxkotlin에러 발생java, spring boot, gradle 등 프로젝트 주요 라이브러리의 버전업 후, 프로젝트 boot시에 에러가 발생하는 것을 발견2025-03-20 08:53:13.537 ERROR [ main] i.n.resolver.dns.DnsServerAddressStreamProviders io.netty.resolver.dns.DnsServerAddressStreamProviders.(DnsServerAddressStreamProviders.java:79) : Unable to load io.netty.resolver.dns.macos.MacOSDnsServerAddressS..

개발 Error 2025.03.20

한글 코딩

소프트웨어 개발에서 한글로 코딩하는 것에 대한 논의는 꾸준히 이루어져 왔습니다.한글 코딩은 특히 한국 개발자들 사이에서 직관적인 변수명과 상수명을 통해 더 명확한 의미 전달을 할 수 있다는 점에서 관심을 받고 있습니다.하지만 한글 코딩은 장점과 단점을 동시에 가지며, 사용하는 데 주의할 점도 존재합니다.이번 글에서는 한글 코딩의 장점, 단점, 그리고 주의해야 할 점을 정리해 보겠습니다.한글 코딩의 장점가독성 향상변수명과 상수명을 한글로 작성하면 개발자가 코드의 의도를 더 명확히 이해할 수 있습니다.예: final int 최대값 = 100;는 영어로 final int MAX_VALUE = 100;보다 직관적일 수 있습니다.의미 전달의 효율성영어에 익숙하지 않은 개발자나 팀에서는 한글이 더 효과적인 의사소통..

ETC 2024.12.27

Java Spring MVC에서 ArgumentResolver

Spring MVC에서 ArgumentResolver는 컨트롤러 메서드의 매개변수를 처리하고 주입하는 데 사용되는 중요한 구성 요소입니다.이 글에서는 HandlerMethodArgumentResolver와 이를 활용하여 사용자 정의 로직을 구현하는 방법에 대해 설명하겠습니다.ArgumentResolver란 무엇인가?Spring MVC의 HandlerMethodArgumentResolver는 컨트롤러 메서드의 매개변수를 처리하는 전략 인터페이스입니다.이를 통해 HTTP 요청 데이터를 분석하거나 추가적인 비즈니스 로직을 적용하여 매개변수 값을 동적으로 생성할 수 있습니다.기본 동작 방식Spring MVC는 HTTP 요청을 처리하는 과정에서 컨트롤러 메서드와 매핑된 매개변수를 확인합니다.각 매개변수에 대해 등..

Spring 2024.12.22

Java 예외 처리 방식: Exception 클래스를 개별 생성 vs Enum으로 관리

Spring과 Java 기반의 애플리케이션을 개발할 때, 예외 처리 방식은 시스템의 안정성과 유지보수성에 큰 영향을 미칩니다. 이번 글에서는 예외를 클래스별로 생성하는 방식과 Enum을 사용해 관리하는 방식의 장단점을 비교하여, 상황에 맞는 선택을 할 수 있도록 도와드리겠습니다.1. Exception을 클래스별로 생성하는 방식구현 방식예외를 처리하기 위해 특정 상황에 맞는 예외 클래스를 각각 정의하는 방식입니다. 예를 들어, 다음과 같은 예외 클래스를 작성할 수 있습니다:public class UserNotFoundException extends RuntimeException { public UserNotFoundException(String message) { super(message..

java 2024.12.20

자바 메모리 구조

java 메모리 구조의 관해서 공부하던 중 상시로 읽어보기 위해서 기재하였습니다. JVM 의 전체적인 구조 클래스 로더(Class Loader): 자바 프로그램은 클래스로 구성되어 있으며, 클래스 로더는 이러한 클래스 파일들을 JVM으로 로드합니다. 클래스 로더는 클래스 파일을 찾고 로드하며, 필요한 경우 클래스를 동적으로 로드하여 실행 환경을 구성합니다. 메모리 영역(Memory Areas): JVM은 다양한 메모리 영역을 관리합니다. 메서드 영역(Method Area): 클래스 정보, 정적 변수, 상수 등이 저장되는 영역입니다. 힙(Heap): 인스턴스 객체와 배열이 할당되는 영역으로 동적으로 생성되며, 가비지 컬렉션에 의해 관리됩니다. 스택(Stack): 메서드 호출과 관련된 지역 변수와 메서드 호..

java 2023.08.16

Stack

Stack이란? 자료 구조 중 하나인 Stack의 사전적 정의는 '쌓다', '더미'입니다. 상자에 물건을 쌓아 올리듯이 데이터를 쌓는 자료 구조라고 할 수 있습니다. Stack의 가장 큰 특징은 나중에 들어간 것이 먼저 나오는 (Last In First Out)의 형태를 띈다는 것입니다. 이 방식을 가진 자료구조인 Stack을 활용하여 다양한 문제를 해결할 수 있습니다. 자바에서 Stack은 java.util.Stack을 import하면 바로 사용할 수 있습니다. Stack의 특징 1. 먼저 들어간 자료가 나중에 나옴 LIFO(Last In First Out) 구조 2. 시스템 해킹에서 버퍼오버플로우 취약점을 이용한 공격을 할 때 스택 메모리의 영역에서 함 3. 인터럽트처리, 수식의 계산, 서브루틴의 복..

자료구조 2023.06.26

Queue

public void QueueCreate() { Queue queue = new LinkedList(); //int형 queue 선언, linkedlist 이용 Queue queue2 = new LinkedList(); //String형 queue 선언, linkedlist 이용 } Queue란? Queue의 사전적 의미는 무엇을 기다리는 사람, 차량 등의 줄 혹은 줄을 서서 기다리는 것을 의미하는데 이처럼 줄을 지어 순서대로 처리되는 것이 큐라는 자료구조입니다. Queue는 데이터를 일시적으로 쌓아두기 위한 자료구조로 스택과는 다르게 FIFO(First In First Out)의 형태를 가집니다. FIFO 형태는 뜻 그대로 먼저 들어온 데이터가 가장 먼저 나가는 구조를 말합니다. Queue의 특징 먼..

자료구조 2023.05.24

Decoupled Architecture - 백엔드와 프론트엔드의 분리

개발을 하다보면 프론트엔드와 백엔드가 구분되어있는 것을 확인할 수 있다. 이를 Decoupled Architecture이라고한다. Decoupled Architecture를 알아보기 전에 전통적인 웹사이트 아키텍처를 이해해야 한다. 전통적인 아키텍처 - Monolithic Architecture Monolithic Architecture의 구조는 아래와 같다. Monolithic Architecture - 전통적인 웹 사이트 아키텍처 이 구조는 많은 기능이 동일한 코드베이스 내에 있다. 이 구조에서는 동일한 코드베이스 내에 있는 기능을 통해서 작업을 처리하게 된다. 코드베이스란? 특정 소프트웨어 시스템, 응용 소프트웨어, 소프트웨어 구성 요소를 빌드하기 위해 사용되는 소스 코드의 모임 따라서 이런 단일 ..

ETC 2023.04.11

함수형 인터페이스

1. 함수형 인터페이스란? 함수형 인터페이스는 하나의 추상 메서드만을 가지고 있는 인터페이스입니다. 즉, 함수형 인터페이스를 구현하는 클래스는 하나의 메서드만을 반드시 구현해야 합니다. 예를 들어, 아래와 같은 함수형 인터페이스를 정의할 수 있습니다. @FunctionalInterface public interface Calculator { int calculate(int x, int y); } 위 인터페이스는 calculate라는 하나의 메서드만을 가지고 있습니다. 이 인터페이스를 구현하는 클래스는 calculate 메서드를 반드시 구현해야 합니다. 2. 함수형 인터페이스의 활용 Java 함수형 인터페이스는 함수형 프로그래밍을 지원하기 위해 도입되었습니다. 함수형 프로그래밍은 상태를 변경하는 대신 입력..

java 2023.04.06
반응형