728x90
반응형
SMALL

2024/02/05 5

[SPRING] 스프링 컨테이너(Spring Container)란?!

스프링 컨테이너(Spring Container)란?! ApplicationContext 를 스프링 컨테이너라고 합니다. 스프링 컨테이너는 @Configuration 이 붙은 AppConfig 를 설정(구성) 정보로 사용합니다. 여기서 @Bean 이라 적힌 메서드를 모두 호출하여 반환된 객체를 스프링 컨테이너에 등록합니다. 이렇게 스프링 컨테이너에 등록된 객체를 스프링 빈이라고 합니다. // 스프링 컨테이너 생성 ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class); 일반적으로 'IOC 컨테이너' 와 '스프링 컨테이너'는 동일한 의미로 사용됩니다. IOC 컨테이너는 Inversion Of Control(제어의..

개발지식 2024.02.05

[SPRING] DI(Dependency Injection) 의존관계 주입, DI 컨테이너

DI 의존관계 주입 객체 간의 의존성을 외부에서 주입하여 결합도를 낮추고 유연한 코드를 작성하는 방법입니다! DI(Dependency Injection) 는 객체 간의 의존 관계를 외부에서 결정하여 객체가 필요한 의존성을 주입받는 개념입니다. DI 를 통해 객체 간의 결합도를 낮출 수 있고, 코드의 재사용성과 테스트 용이성을 높일 수 있습니다. DI 는 주로 생성자, 메서드 매개변수, 속성에 의해 의존성을 주입하며, 의존성을 관리하는 컨테이너를 활용하여 객체의 생성과 관리를 담당합니다. 이를 통해 유연하고 확장 가능한 애플리케이션을 개발할 수 있습니다! 스프링 DI를 코드 예시를 통해 확인을 해보자! public interface MessageService { void sendMessage(String ..

개발지식 2024.02.05

[SPRING] IOC(Inversion of Control) 제어의 역전

IOC 제어의 역전 프레임워크가 내 코드를 대신 호출해 주는 것, 말 그대로 제어권이 뒤바뀌는 것을 제어의 역전이라고 합니다. 기존 프로그램은 클라이언트 구현 객체가 스스로 필요한 서버 구현 객체를 생성하고, 연결하고, 실행했습니다. 한마디로 구현 객체가 프로그램의 제어 흐름을 스스로 조종했으며 개발자 입장에서는 자연스러운 흐름이였습니다. 하지만 IOC(Inversion of Control)는 일반적인 객체의 생명주기를 개발자가 직접 관리하는 것이 아닌, 스프링 프레임워크가 객체의 생성과 관리와 같은 프로그램의 제어 흐름을 관리하는 것을 제어의 역전(IOC)이라 합니다. 프레임워크 VS 라이브러리 ● 프레임워크가 내가 작성한 코드를 제어하고, 대신 실행하면 그것은 프레임워크가 맞다 ● 반면에 내가 작성한..

개발지식 2024.02.05

프로그래머스) K번째 수 Lv1

배열 안 특정 범위 내에서 정렬은 한 뒤 k 번째 수를 구하는 문제! 배열의 범위를 자르는 방법에 대해서 이것저것 쑤시고, commands 랑 같이 사용하려고 하다보니 for문이 4개나 중첩되어가고 있었다... 이건 나도 보기 어렵고 아무리 잘쳐줘도 정답은 아닌 것 같아 고민을 좀 하다 힌트(질문하기)를 사용했다 참고한 내용 중 commands에 나오는 시작번호, 끝번호, 선택 번호를 변수로 두고 배열과 함께 처리하는 메서드를 만들어서 처리하는 방법을 확인하고 문제를 해결하였다! 그리고 다른 사람들은 어떻게 풀었나 확인을 해보니 배열을 정렬하는 함수 Arrays.copyOfRange 를 사용하여 문제를 풀었드라.... Arrays.copyOfRange(array, commands[i][0]-1, comm..

코딩 테스트 2024.02.05

프로그래머스) 기사단원의 무기 Lv1

1래밸 문제들 중 손풀기용으로 정답률이 높은 문제를 풀었다! 약수의 갯수를 구하고 제한 숫자가 넘으면 해당 숫자로 변경해야하는 문제 약수를 구하는 방법이 생각이 나질않아 구글링해볼까.... 하다가 그럼 안되지! 하고 열심히 고민을 해서 풀어보았다 후다닥 풀고 슬적 기대하면서 코드 실행을 해봤는데 테스트1 통과 테스트2 실패 class Solution { public int solution(int number, int limit, int power) { int answer = 0; for(int i=1; i

코딩 테스트 2024.02.05
728x90
반응형
LIST