전체 글 71

[Spring] 스프링 빈과 스프링 컨테이너

이 두 가지 개념은 제어의 역전(IoC, Inversion of Control)이라는 스프링의 대원칙을 실현하는 가장 기초적인 구조이다. 먼저 이 두가지가 무엇인지 간단히 알아보면 1. 스프링 컨테이너 (Spring Container)스프링 컨테이너는 자바 객체의 생명 주기를 관리하는 관리자라고 생각하면 편하다.정의: 개발자가 작성한 코드의 처리 과정을 위임받아 독립적으로 처리하는 존재이다.핵심 역할:객체 생성: 개발자가 new 키워드로 객체를 직접 생성하지 않고, 컨테이너가 대신 생성한다.관계 설정 (DI): 객체 간의 의존 관계(어떤 객체가 어떤 객체를 필요로 하는지)를 연결해 준다.생명 주기 관리: 객체의 생성부터 소멸까지의 과정을 관리한다.대표적인 인터페이스:ApplicationContext: 가..

tech/Spring 2025.12.16

[JAVA] 문자열 비교 == 연산자와 .equals()의 차이

우리가 보통 비교를 할 때 == 를 많이 쓴다. 그러나 코테 문제를 풀다 보면 문자열을 비교하는 과정에서 별 생각 없이 == 을 썻다가 틀린 경험이 있을 것이다. 그렇다면 == 과 .equals()는 어떤 차이가 있기 때문에 다음과 같은 경우가 발생한 것일까? 1. 동작 방식에서의 차이비교 방식비교 대상설명== 주소값 (Memory Address)두 변수가 완전히 동일한 객체(메모리 위치)를 가리키는지 확인.equals()내용 (Content)두 변수가 가리키는 문자열의 실제 값(텍스트)이 같은지 확인 잘 이해가 안된다면 코드 예시를 봐보자. 아래 코드 예시는 프로그래머스 연습 문제를 풀면서 내가 작성한 코드이다. class Solution { public int solution(String[] ..

tech/JAVA 2025.12.14

[C++] 접근제어 지시자

1. 접근 제어 지시자란? C++에서 접근 지시 제어자(Access Modifiers)는 클래스 멤버(변수나 함수)를 외부에서 함부로 건드리지 못하게 보안 등급을 설정하는 문법이다. 쉽게 말해 이 정보는 누구까지 볼 수 있는가? 를 정하는 규칙이다. 크게 3가지(private, protected, public)가 있습니다. 2. 각 제어자의 사용 목적private:정보 은닉(Encapsulation)을 위해 사용한다.클래스 내부의 멤버 변수는 되도록 private으로 숨기고, 값을 변경하거나 가져올 때는 public 함수(Getter/Setter)를 통해서만 하도록 유도한다. 이렇게 하면 엉뚱한 값이 들어가는 것을 막을 수 있다.참고: 클래스(class)에서 접근 제어자를 아무것도 안 적으면 기본적으로..

tech/C++ 2025.12.07

[C++] call by value와 call by reference

참조를 이용한 Call-by-reference 결론1. Call by Value (값에 의한 호출) "원본의 복사본을 전달"작동 방식: 함수를 호출할 때 전달하는 변수의 값(Value)을 복사해서 함수의 매개변수에 넣는다.특징: 함수 내부에서 매개변수의 값을 아무리 변경해도, 함수 밖에 있는 원본 변수에는 전혀 영향을 주지 않는다.사용 목적: 원본 데이터를 보호하고 싶거나, 값을 바꿀 필요가 없을 때 사용한다.// Call by Value 예시void swap1(int a, int b) { int temp = a; a = b; b = temp;} 함수가 끝나면 복사본은 사라지므로 main의 a와 b 값(10, 50)은 그대로 유지 2. Call by Reference (참조에 의한 호..

tech/C++ 2025.12.07

[C++] 인라인 함수와 메크로 함수의 특징

1. 정의 및 설명매크로 함수 (Macro Function)정의: 전처리기(Preprocessor) 지시문인 #define을 사용하여 정의하는 함수이다.동작: 컴파일 전 단계(전처리 단계)에서 코드 내의 매크로 이름을 단순 텍스트 치환 방식으로 코드 본문으로 바꾼다.특징: 자료형(Type)을 확인하지 않으며, 단순한 문자열 대치이므로 괄호 처리를 잘못하면 연산 순서 오류나 부작용(Side Effect)이 발생하기 쉽다. 장점 : 함수가 인라인화 되어 성능의 향상으로 이어질 수 있다. 단점 : 함수의 정의 방식이 일반함수에 비해서 복잡하다. 복잡한 함수의 정의에는 한계가 있다. 인라인 함수 (Inline Function)정의: 함수 선언 앞에 inline 키워드를 붙여 정의하는 함수이다동작: 컴파일러..

tech/C++ 2025.12.07

[Spring] 인증(Authentication)과 인가(Authorization)

저번 글에서는 Spring security에 대해서 알아보았다. https://sunm2n.tistory.com/66 [Spring] SpringSecurity란?Spring Security는 자바(Java) 기반의 애플리케이션(특히 Spring 프레임워크)에서 보안(인증 및 인가)을 담당하는 가장 강력하고 표준적인 프레임워크이다. 쉽게 비유하자면, 웹 사이트라는 '건물'을 지sunm2n.tistory.com Spring security를 공부하기 위해서 꼭 알아야 할 개념인 인증과 인가에 대해서 알아보자. 인증(Authentication)과 인가(Authorization)는 보안의 가장 기초이면서, 실무자들도 용어를 섞어 쓸 만큼 자주 헷갈리는 개념이다.하지만 이 둘은 명확히 다르다. 가장 쉽게 이해할..

tech/Spring 2025.12.03

[Spring] SpringSecurity란?

Spring Security는 자바(Java) 기반의 애플리케이션(특히 Spring 프레임워크)에서 보안(인증 및 인가)을 담당하는 가장 강력하고 표준적인 프레임워크이다. 쉽게 비유하자면, 웹 사이트라는 '건물'을 지킬 때 입구에 배치하는 최첨단 경비 시스템과 같다.1. 핵심 개념: 인증과 인가Spring Security를 이해하려면 두 가지 단어를 반드시 구분해야 합니다.인증 (Authentication): "당신은 누구입니까?"사용자의 신원을 확인하는 절차이다.예: 로그인(ID/Password 입력), 지문 인식, OTP 등인가 (Authorization): "당신은 무엇을 할 수 있습니까?"인증된 사용자가 특정 리소스에 접근할 권한이 있는지 확인하는 절차이다.예: 일반 사용자는 내 정보만 볼 수 있..

tech/Spring 2025.12.03

[후기] UMC Product Team 지원 후기

나는 UMC 9기 SpringBoot 파트에서 공부하고 있었다. 어느 날 나를 이끄는 모집 공고가 하나 뜨게 되었다. 바로 UMC Product Team 모집이였다. 앞으로 UMC 챌린저들을 지원받을 사이트를 개발하는 팀이였다. 나는 항상 나보다 잘하는 사람들과 프로젝트를 하면서 정말 많은 성장을 했다고 느꼈고 이 프로젝트는 UMC 전체에서 모집하는 것이기 때문 에 상당한 고수들이 많이 올 것이라고 생각했다. 이거다! 무조건 해야겠다! 라고 우선 지원을 했다. 그러나 서류 결과발표가 미뤄 지면서 내 머릿속에서 점점 희미해져갈 때쯤... 사실 떨어질 거 같았다. 근데 내가 붙었다니!!! 역시 평소에 깃허브를 있어보이게 꾸며본 것이 많은 도움이 되었던 거 같다. 그리고 후에 면접을 보았다. 1대1로 면..

UMC/project 2025.12.01

[15652번] N과 M (4)

문제: https://www.acmicpc.net/problem/15652 이 문제는 백트래킹 문제이다. 먼저 백트래킹이 뭔지 알아보자1. 백트래킹(Backtracking)이란?백트래킹은 가능한 모든 경우의 수를 탐색하되, 조건에 맞지 않으면 즉시 되돌아가는(Back) 알고리즘이다.탐색: 일반적으로 재귀 함수(DFS)를 사용하여 깊이 들어간다.가지치기(Pruning): 조건에 맞지 않는 길은 더 이상 가지 않고 끊어버리는 것이다. 이것이 단순한 완전 탐색(Brute Force)과 백트래킹의 차이다. 2. 문제 분석 이 문제의 조건은 두 가지 핵심 포인트가 있다.중복 허용: 같은 수를 여러 번 골라도 된다. (예: 1 1, 2 2)비내림차순: 수열이 뒤로 갈수록 같거나 커져야 한다. (예: 1 2는 되..