반응형

Spring 19

실무에서 자주 사용하는 인텔리제이 단축키 정리

개발하면서 매번 단축키를 검색하거나 메뉴를 뒤적이는 게 번거롭다고 느낀 적 있으신가요?저 역시 그랬습니다. 그래서 실무에서 자주 사용하는 인텔리제이 단축키만 모아서 한 눈에 정리해봤습니다.저처럼 Java와 Spring Boot 기반의 백엔드 개발을 하시는 분이라면, 이 단축키들만 알아도 개발 속도가 꽤 빨라질 거예요.특히 파일 이동, 북마크, 에디터 탐색, 디버깅까지 커버되니 꼭 한 번 정리해두고 손에 익혀보시길 추천합니다.📁 파일 변경 및 탭 제어 관련 단축키단축키 설명F5파일 복사F6파일 이동Shift + F6파일 이름 변경Ctrl + F4현재 탭 닫기Ctrl + E최근 사용한 파일 목록 조회💡 Tip: Ctrl + E는 여러 파일을 동시에 작업할 때 정말 유용합니다. 직전에 편집하던 파일을 빠르..

ETC 2025.06.16

[Spring] Proxy vs proxyselector

이번에 프록시에 대해 정리하면서, 단순한 개념 설명을 넘어서서 실무에서 Proxy와 ProxySelector를 어떻게 선택하고 적용할지에 대한 전략까지 정리해봤습니다.Java/Kotlin 기반의 Spring 프로젝트에서 HTTP 요청을 외부 프록시 서버를 거쳐야 하는 환경이라면 필수적으로 알아야 하는 내용입니다.Proxy vs ProxySelector 실무 기준 비교 분석개발 경력 5년 차인 제 입장에서 이 둘의 차이는 단순한 API 수준의 차이가 아닙니다. 프록시를 어떻게, 얼마나 유연하게 적용할 수 있는가에 대한 아키텍처적 결정 요소라고 생각합니다.Proxy – 단순하고 명시적인 설정 방식java.net.Proxy는 개별 요청에 대해 직접 프록시를 지정할 수 있습니다. 테스트나 제한된 상황에서 매우 ..

카테고리 없음 2025.04.25

[TDD] TDD는 단순 테스트 코드가 아니었다

최근에 TDD를 다시 보게 되면서, 혼자 끄적이던 생각과 고민이 조금씩 정리가 되었습니다.사실 처음에는 TDD를 그냥 '테스트 코드 먼저 작성하는 방식' 정도로만 알고 있었는데요,이번에 프로젝트를 진행하면서 "테스트가 코드의 방향을 결정할 수도 있다"는 걸 체감하게 되었습니다.TDD는 단순히 테스트를 먼저 짜는 게 아니더라구요보통은 기능을 먼저 구현하고 테스트 코드를 나중에 붙이는 경우가 많잖아요? 그런데 TDD는 반대입니다.테스트 코드를 먼저 작성하고, 그 테스트를 통과할 수 있는 최소한의 코드를 작성한 뒤, 마지막에 리팩토링을 진행합니다.이게 단순히 순서만 바뀌는 게 아니라, "어떻게 코드를 짤 것인가" 자체가 달라집니다. 단계 설명Red실패하는 테스트를 먼저 작성합니다Green테스트를 통과시키기 위..

ETC 2025.04.17

[SLF4J] LoggerFactory is not a Logback LoggerContext but Logback is on the classpath. Either remove Logback or the competing implementation() 에러 해결

프로젝트 구조Java 21gradleSpring boot 3.XSpring Webfluxkotlin에러 발생- java, spring boot, gradle 등 프로젝트 주요 라이브러리의 버전업 후, 프로젝트 boot시에 에러가 발생하는 것을 발견Exception in thread "main" java.lang.IllegalArgumentException: LoggerFactory is not a Logback LoggerContext but Logback is on the classpath. Either remove Logback or the competing implementation (class org.slf4j.helpers.NOPLoggerFactory loaded from file:/Users..

개발 Error 2025.03.20

[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

리액티브 프로그래밍 > RxJava와 Spring WebFlux 비교

리액티브 프로그래밍은 비동기 데이터 스트림과 이벤트 흐름을 처리하는 새로운 패러다임입니다.Java 환경에서 사용되는 RxJava와, Spring 생태계에서 제공하는 Spring WebFlux의 리액티브 기능에 대해 알아보고,각 기술의 예제 코드를 통해 설명해보겠습니다.1. 리액티브 프로그래밍 개념리액티브 프로그래밍은 다음과 같은 특징을 가지고 있습니다.비동기 처리: 데이터가 도착하는 대로 즉시 처리할 수 있음논블로킹 I/O: 요청이 끝날 때까지 기다리지 않고 다른 작업을 수행 가능데이터 스트림: 연속적으로 발생하는 데이터를 스트림으로 다룸백프레셔(Backpressure): 소비자가 데이터를 처리하지 못할 경우, 생산자가 데이터를 조절하는 메커니즘 제공이러한 개념은 고성능 서버, 실시간 애플리케이션, 그리..

Spring 2025.02.06

한글 코딩

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

ETC 2024.12.27

Spring MVC의 DispatcherServlet: 핵심 개념과 역할

Spring MVC는 Model-View-Controller (MVC) 디자인 패턴을 기반으로 하는 강력한 웹 애플리케이션 프레임워크입니다.이 구조에서 DispatcherServlet은 Spring MVC의 중심에 위치하며 중요한 역할을 담당합니다.이번 글에서는 DispatcherServlet의 역할, 동작 방식, 그리고 왜 중요한지에 대해 자세히 알아보겠습니다.1. DispatcherServlet이란?DispatcherServlet은 Spring Framework의 서블릿으로, 클라이언트 요청을 받아 다양한 처리 로직과 협력하며 적절한 응답을 생성하는 역할을 합니다. 간단히 말해, 웹 애플리케이션의 요청과 응답을 조율하는 "프론트 컨트롤러" 역할을 합니다.2. DispatcherServlet의 주요 역..

Spring 2024.12.24

Spring Boot Run: 내부 동작 과정과 Bean 등록

Spring Boot 애플리케이션을 실행할 때, 여러 단계의 과정을 거쳐 애플리케이션이 구동됩니다. 이 글에서는 Spring Boot의 실행 과정, Bean 등록 과정, 그리고 IOC(Inversion of Control)와 DI(Dependency Injection)가 이 과정에 어떻게 녹아있는지 정리합니다.1. Spring Boot Application 시작Spring Boot 애플리케이션은 @SpringBootApplication 어노테이션으로 시작합니다. 이 어노테이션은 세 가지 어노테이션을 포함합니다:@SpringBootConfiguration: @Configuration을 포함하며, Spring 컨텍스트를 위한 설정 클래스를 나타냅니다.@EnableAutoConfiguration: 클래스패스와..

Spring 2024.12.23
반응형