[Spring] 4.IoC(Inversion Of Control) 컨테이너
·
🖥️ Backend/Spring
스프링의 가장 핵심적인 역할 중 하나는 DI(Dependency Injection, 의존성 주입)를 통해 객체(부품)들을 조립해주는 것이다. 이러한 DI와 함께 반드시 알아야 할 또 하나의 중요한 개념이 바로 IoC 컨테이너이다.스프링의 가장 기본적인 코어에 해당되는 능력이 부품을 조립해준 기능인데 그러기 위해서는 여러 가지 부품들을 주문서에다가 입력해서 스프링에게 제공해야한다. 스프링은 우리가 제공해주는 주문서대로 부품을 생성하고 조립을 하게 돼 있다. 그럼 우리는 어떠한 부품이 필요하고 그 부품들이 어떠한 조립 관계를 가져야 된다는 것을 명세화할 수 있어야 한다. 컴퓨터 조립을 맡길때 메인보드, VGA 카드, 메모리 등 필요한 부품을 주문서에 작성하면, 조립자가 그에 맞게 부품을 조립해준다. 스프링은..
[Programmers/Java/Lv.0] 33.진료순서 정하기
·
👨‍💻 Coding Test/Java
문제 설명외과의사 머쓱이는 응급실에 온 환자의 응급도를 기준으로 진료 순서를 정하려고 합니다. 정수 배열 emergency가 매개변수로 주어질 때 응급도가 높은 순서대로 진료 순서를 정한 배열을 return하도록 solution 함수를 완성해주세요. 제한사항- 중복된 원소는 없습니다.- 1 ≤ emergency의 길이 ≤ 10- 1 ≤ emergency의 원소 ≤ 100 입출력 예emergencyresult[3, 76, 24][3, 1, 2][1, 2, 3, 4, 5, 6, 7][7, 6, 5, 4, 3, 2, 1][30, 10, 23, 6, 100][2, 4, 3, 5, 1]입출력 예 #1 : emergency가 [3, 76, 24]이므로 응급도의 크기 순서대로 번호를 매긴 [3, 1, 2]를 retu..
[Spring] 3.DI(Dependency Injection)
·
🖥️ Backend/Spring
스프링 프레임워크의 가장 기본적인 능력은 객체를 생성해 주고 객체들을 조립해 주는 능력을 얘기한다. 즉, DI(Dependency Injection)와 IoC 컨테이너를 통해 스프링은 객체를 생성하고, 객체 간의 의존성을 관리해준다. DI(Dependency Injection)는 '의존성 주입'이라고 번역된다. 처음에 의존성 주입이라고 들으면 난해하고 어렵게 생각될 수 있기 때문에 쉽게 DI는 부품을 조립하는 방식으로 생각하면 좋다. DI(Dependency Injection), IoC Container DI(Dependency Injection)의 의미를 알아보자. 우리가 객체지향으로 프로그램을 만들게 될 경우 프로그램은 객체들의 조립 관계를 통해서 만들어지게 된다. 아래 그림을 보면 A 클래스를 정의..
[Programmers/Java/Lv.0] 32.외계행성의 나이
·
👨‍💻 Coding Test/Java
문제 설명우주여행을 하던 머쓱이는 엔진 고장으로 PROGRAMMERS-962 행성에 불시착하게 됐습니다. 입국심사에서 나이를 말해야 하는데, PROGRAMMERS-962 행성에서는 나이를 알파벳으로 말하고 있습니다. a는 0, b는 1, c는 2, ..., j는 9입니다. 예를 들어 23살은 cd, 51살은 fb로 표현합니다. 나이 age가 매개변수로 주어질 때 PROGRAMMER-962식 나이를 return하도록 solution 함수를 완성해주세요. 제한사항- age는 자연수입니다.- age ≤ 1,000- PROGRAMMERS-962 행성은 알파벳 소문자만 사용합니다. 입출력 예ageresult23"cd"51"fb"100"baa"입출력 예 #1 : age가 23이므로 "cd"를 return합니다.입출..
[Spring] 2.느슨한 결합력과 인터페이스
·
🖥️ Backend/Spring
결합력이란 한 컴포넌트가 다른 컴포넌트에 얼마나 의존하는가를 나타내는 개념이다. 결합력이 강할수록 각 컴포넌트는 밀접하게 연결되고, 결합력이 약할수록 각 컴포넌트는 독립적으로 동작할 수 있다. 느슨한 결합은 객체들 간의 의존성을 최소화하는 것을 의미하며, 이를 통해 변경이 일어났을 때 하나의 객체만 수정하면 다른 객체들은 그대로 사용할 수 있게 된다.인터페이스는 느슨한 결합을 실현하는 주요 도구이다. 인터페이스는 구체적인 구현체와 상관없이 서로 다른 컴포넌트들이 통신할 수 있게 해준다. 이를 통해 변경에 유연하게 대처할 수 있는 구조를 제공한다.엔터프라이즈 애플리케이션은 기본적으로 서비스 레이어와 데이터 액세스 오브젝트(DAO) 레이어로 나누어진다. 서비스 레이어는 사용자의 비즈니스 요구에 맞는 서비스와..
[Programmers/Java/Lv.1] 1.폰켓몬
·
👨‍💻 Coding Test/Java
문제 설명당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다.홍 박사님 연구실의 폰켓몬은 종류에 따라 번호를 붙여 구분합니다. 따라서 같은 종류의 폰켓몬은 같은 번호를 가지고 있습니다. 예를 들어 연구실에 총 4마리의 폰켓몬이 있고, 각 폰켓몬의 종류 번호가 [3번, 1번, 2번, 3번]이라면 이는 3번 폰켓몬 두 마리, 1번 폰켓몬 한 마리, 2번 폰켓몬 한 마리가 있음을 나타냅니다. 이때, 4마리의 폰켓몬 중 2마리를 고르는 방법은 다음과 같이 6가지가 있습니다.첫 번째(3번), 두 번째(1번) 폰켓몬을 선택첫 번째(3번), 세 번째(2번) 폰켓몬을 선택첫 번째(3..
Developer Quarterly
DQ