본문 바로가기

분류 전체보기67

[spring] @Configuration의 프록시 객체 수동 빈 등록이 싱글톤 보장될 수 있는 이유 사실, 스프링에서 @Bean 애노테이션을 사용하여 수동 등록을 해도 싱글톤으로 등록된다. 하지만, 문제는 내부의 의존관계를 메서드 호출을 통해서 주입해주는 경우 발생하게 된다. 이러한 경우에는 객체가 새로 생성되기 때문에 DI컨테이너 내에 싱글톤이 깨지게 된다. 이 문제를 해결해주기 위한 애노테이션이 바로 @Configuration인 것이다. @Bean을 사용하여 수동으로 빈을 등록할 때, @Configuration을 적어줌으로써 싱글톤이 유지되게 된다. @Configuration의 유무에 따른 싱글톤 보장 여부 예제코드와 함께 직관적으로 살펴보면 아래와 같다. - ItemService와 ItemRepository 클래스. public class ItemRep.. 2023. 3. 10.
2. 플로이드 와샬 플로이드 와샬을 사용하는 경우는? 플로이드 와샬은 그래프 알고리즘 중 하나라고 할 수 있다. 각각의 정점에서 다른 각각의 정점으로 가는 최단거리를 구하는 알고리즘이다. 이게 무슨 소리일까? 처음에는 다른 블로그들을 봤을 때 잘 이해가 안갔었는데, 이해하고 나서 막상 쓰려다보니 저 말이 맞는 말이다. 이해가 잘 안갔던 기억을 토대로 이 글에서 좀 자세하게 알고리즘에 대해 설명 해보고자 한다. 플로이드 와샬 알고리즘 아래 그림을 살펴본다. 단순히 그래프를 직관적으로 봤을 때, 출발지에서 도착지까지 어딘가 경유하지 않고 한 번에 갈 수 있는 거리를 오른쪽 표로 나타낸 것이다. 이제부터 오른쪽 표를 하나씩 채워가며 완성할 건데, 이때 모든 칸들을 최솟값으로 채우는 알고리즘이 바로 플로이드 와샬 알고리즘이다. 즉.. 2023. 3. 2.
1년을 채우지 않은 퇴사를 하면서. 2022년 한 해동안 회사를 다니면서 많은 것들을 깨달을 수 있었다. 그리고 새로운 해가 시작된 지 2개월이 끝나갈 무렵인 현재, 작년 한 해동안 깨달은 것보다 더 많은 것들을 깨달을 수 있었다. 근 두 달 동안 많은 심경변화와 앞으로의 계획에 대해 기록하고자 글을 쓰게 되었다. 입사 나는 2022년 초 전혀 의도치 않게 취업을 하게 되었다. 당시 나는 취업보다는 학업에 더 초점을 두고 있었다. 진학을 하기 위한 준비를 하며, 시간적 여유가 조금 생기게 되면서 단순 프로젝트성 개발에 참여할 인원을 뽑는 모집공고를 보게 되었다. 기획 단계부터 시작하여 개발까지 함께 할 인원을 뽑는다는 내용에서 흥미가 가게 되었고, 이력서를 제출하고 면접을 보게 되었다. 면접에서 나눴던 이야기는 다음과 같았다. 기존의 앱을.. 2023. 2. 27.
1. Union-Find Union-Find(유니온-파인드) 유니온 파인드 알고리즘은 서로소 집합을 찾는 알고리즘이다. 주로 아래와 같은 상황에서 사용할 수 있다. 여러 가지 데이터가 존재할 때 이 데이터들이 몇 개의 집합으로 묶여 있는지 파악. 무작위로 두 개의 데이터를 뽑았을 때, 두 데이터가 같은 집합의 원소인지 / 서로 다른 집합인지 파악. 위 두 경우만 봐도 서로소 집합을 찾을 때, 사용한다는 말이 와닿는다. 사실, 구체적으로는 그래프 알고리즘이다. 어떤 원소가 어떤 같은 그래프에 속하는지, 또는 서로 다른 그래프인지를 구별하는 방법인데, 아래 그림과 같다. 위 그래프를 보시면, 두 개의 그래프가 있습니다. {1,2,3,6,7}과 {4,5}로 두 그래프로 나뉘어 있다. 만약 이러한 그래프에서 "3과 4가 같은 그래프인가.. 2023. 2. 21.