java 40

[Java/Python] 타입 확인 및 replace

타입 확인1. 핵심 요약 비교표 구분 파이썬 (Python) 자바 (Java) 변수 타입 확인isinstance(x, int)x instanceof Integer엄격한 타입 비교type(x) == intx.getClass() == Integer.class문자열 내 숫자 판별s.isdigit()s.matches("\\\\d+") (정규식)주요 특징내장 메서드가 풍부함정규식이나 예외 처리를 주로 사용2. 언어별 상세 코드 (조건문 예시)🐍 파이썬 (Python)파이썬은 문자열 객체 안에 자체적인 판별 메서드가 내장되어 있어 매우 편리합니다.변수의 타입 자체를 확인data = 10 if isinstance(data, int): print("이 변수는 숫자형입니다.")문자열 내용물이 숫자인지 확인 (isd..

CODINGTEST 2026.05.08

[Spring Boot] 10. Redis Pub/Sub 기반 실시간 알림 시스템

1. SSE (Server-Sent Events)란?보통의 웹은 클라이언트가 질문(요청)을 해야 서버가 답(응답)을 주는 방식이지만, 알림은 서버가 사건이 터졌을 때 먼저 알려줘야 합니다. 이를 위해 사용하는 기술이 바로 SSE입니다.작동 방식: 서버와 클라이언트 사이의 연결 통로를 계속 열어둡니다. 이벤트(알림)가 발생할 때마다 서버는 이 통로로 데이터를 툭툭 던져줍니다.장점:가벼움: WebSocket보다 구현이 훨씬 단순하고 리소스를 적게 먹습니다.자동 재연결: 네트워크 불안정으로 연결이 끊기면 브라우저/앱이 알아서 재연결을 시도합니다.HTTP 기반: 별도의 프로토콜 설정 없이 기존 웹 환경에서 아주 잘 돌아갑니다.2. 기술 비교: WebSocket vs SSE우리가 대화하며 정리한 채팅과 알림의 기..

SPRING BOOT 2026.03.27

[스프링 핵심 원리 - 기본편] 17. 빈 스코프(Singleton, Prototype, Request, Proxy)

1. 빈 스코프란?스프링 빈은 기본적으로 싱글톤 스코프로 생성되므로 컨테이너 시작부터 종료까지 유지됩니다. **스코프(Scope)**는 빈이 존재할 수 있는 범위를 뜻합니다.스프링이 지원하는 다양한 스코프싱글톤: 기본 스코프, 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위.프로토타입: 생성과 의존관계 주입까지만 관여하고 더는 관리하지 않는 매우 짧은 범위.웹 관련 스코프:request: 웹 요청이 들어오고 나갈 때까지 유지.session: 웹 세션의 생성과 종료까지 유지.application: 서블릿 컨텍스트와 동일한 범위.빈 스코프 지정 방법자동 등록:@Scope("prototype") @Component public class HelloBean {}수동 등록:@Scope("prototype")@..

INFLEARN 2026.03.24

[스프링 핵심 원리 - 기본편] 16. 빈 생명주기 콜백

1. 빈 생명주기 콜백의 필요성데이터베이스 연결이나 네트워크 소켓처럼 시작 시 연결하고 종료 시 끊어야 하는 객체는 초기화와 종료 작업이 필수입니다.문제 상황: 생성자에서 초기화 시도package com.example.spring_study.lifecycle;public class NetworkClient { private String url; public NetworkClient() { System.out.println("생성자 호출, url = " + url); connect(); call("초기화 생성 메시지"); } public void setUrl(String url) { this.url = url; } // 서비..

INFLEARN 2026.03.24

[스프링 핵심 원리 - 기본편] 15. 조회한 빈이 모두 필요할 때: List, Map 활용

항상 하나의 빈만 사용하는 것이 아니라, 클라이언트의 선택에 따라 여러 할인 정책(fix, rate)을 유연하게 적용해야 할 때가 있음스프링은 전략 패턴(Strategy Pattern)을 구현할 수 있도록 특정 타입의 모든 빈을 List나 Map으로 주입받는 기능을 제공1. 전체 빈 조회 테스트 코드DiscountService는 모든 DiscountPolicy를 주입받아, 상황에 맞는 정책을 골라서 실행package com.example.spring_study.autowired;import com.example.spring_study.AutoAppConfig;import com.example.spring_study.discount.DiscountPolicy;import com.example.spring_..

INFLEARN 2026.03.21

[스프링 핵심 원리 - 기본편] 14. 애노태이션 직접 생성하기

애노테이션 직접 만들기@Qualifier("mainDiscountPolicy")처럼 문자를 직접 적으면 컴파일 시 타입 체크가 안 된다는 단점이 있음(오타가 나도 실행 전까지 모름).이를 해결하기 위해 애노테이션을 직접 만들어 사용하면 컴파일 타임에 오류를 잡을 수 있고 코드도 훨씬 깔끔해짐1. 커스텀 애노테이션 생성@Qualifier를 포함한 새로운 애노테이션을 정의package hello.core.annotation;import org.springframework.beans.factory.annotation.Qualifier;import java.lang.annotation.*;@Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER..

INFLEARN 2026.03.21

[스프링 핵심 원리 - 기본편] 13. 조회 Bean이 2개 이상일 경우(@Qualifier vs @Primary)

1. @Autowired 필드 명 매칭@Autowired는 먼저 타입 매칭을 시도하고, 이때 여러 빈이 있으면 필드 이름이나 파라미터 이름으로 빈 이름을 추가 매칭합니다.기존 코드:@Autowiredprivate DiscountPolicy discountPolicy필드 명을 빈 이름으로 변경:@Autowiredprivate DiscountPolicy rateDiscountPolicy정리: 타입 매칭 결과가 2개 이상일 때, 필드 명(또는 파라미터 명)과 일치하는 빈 이름을 찾아 주입합니다.2. @Qualifier 사용@Qualifier는 빈에 추가 구분자를 붙여주는 방법입니다. 빈 이름을 바꾸는 것이 아니라, 주입 시 식별할 수 있는 별칭을 주는 것입니다.빈 등록 시:@Component@Qualifier..

INFLEARN 2026.03.20

[스프링 핵심 원리 - 기본편] 12. Lombock 라이브러리

최근 스프링 개발에서는 객체의 불변성을 유지하기 위해 필드에 final 키워드를 사용하는 것이 표준하지만 매번 생성자를 만들고 대입하는 코드를 작성하는 것은 번거로움이를 Lombock을 사용해서 편하게 함1. 기본 코드 (생성자 주입)가장 정석적인 방법으로, 생성자에 @Autowired를 붙여 의존관계를 주입@Componentpublic class OrderServiceImpl implements OrderService { private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; @Autowired public OrderServiceImpl(MemberRepository m..

INFLEARN 2026.03.20

[스프링 핵심 원리 - 기본편] 11. 의존관계 자동 주입의 4가지 방법

1. 생성자 주입 (Constructor Injection)생성자를 통해 의존 관계를 주입받는 방식입니다. 스프링에서 가장 권장하는 방식입니다.특징:생성자 호출 시점에 딱 1번만 호출됨을 보장합니다.불변, 필수 의존관계에 사용됩니다 (필드에 final 키워드 사용 가능).중요: 생성자가 딱 1개만 있으면 @Autowired를 생략해도 자동 주입됩니다. (스프링 빈 한정)@Componentpublic class OrderServiceImpl implements OrderService { private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; // 생성자가 1개이므로 @Autowi..

INFLEARN 2026.03.20

[스프링 핵심 원리 - 기본편] 10. ComponentScan

1. 컴포넌트 스캔과 자동 주입이란?컴포넌트 스캔: @Bean으로 일일이 등록하지 않아도, @Component 애노테이션이 붙은 클래스를 스캔하여 자동으로 스프링 빈에 등록하는 기능입니다.@Autowired: 생성자에 붙이면 스프링 컨테이너가 해당 타입에 맞는 빈을 찾아 자동으로 주입해줍니다.2. 코드 적용 예시① 설정 정보 등록 (AutoAppConfig.java)@ComponentScan을 붙여줍니다. 기존 AppConfig와의 충돌을 막기 위해 @Configuration이 붙은 클래스는 제외하는 필터를 추가했습니다.@Configuration@ComponentScan( excludeFilters = @Filter(type = FilterType.ANNOTATION, classes = Config..

INFLEARN 2026.03.15