전체 글 154

스프링 객체조립기(assembler), 백준 11725번 문제를 풀며 든 인접리스트에 대한 생각. [최범균 스프링 5] 2021-05-26

객체 조립기는 이전 포스트에서 내가 DI가 필요한 이유에 대해서 설명할 때, 객체생성에 사용할 클래스를 변경하기 위해(의존을 하는 클래스는 변경하지 않고) 객체를 주입하는 코드 한 곳 만 변경하는것이 DI의 장점이라고 하였다. 그렇다면 이 '한 곳'에 실제 객체를 생성하는 곳이 필요한데 그것이 바로 객체조립기이다. 백준 11725번. 그래프 구현 방법중 인접리스트의 각 배열에 저장된 리스트 요소들의 정렬에 대한 고찰. ->일단 순서를 생각한다는 것 자체가 넌센스이다. 왜냐? 인접리스트와 인접행렬 이라는 방법을 자체가 [루트노드]가 주어진 그래프를 나타내는 방법이 아니라, 단지 [노드]와 [노드]사이의 연결관계를 표현한 것이기 때문이다. ->즉, 리스트배열에 저장된 리스트요소들의 정렬순서는, dfs나 bf..

스프링 DI 공부 및 내가 실수했던 것들[최범균의 스프링5 책](2021-05-26)

DI(DIpendency Ingection)란 '의존주입' 이라고 불린다. 여기서 의존에 대한 정의를 알아야 하는데 의존은 클래스 안에서 다른 클래스를 실행할 때, 이를 의존한다고 표현한다. 다시 정확하게 설명하자면, 의존은 한 클래스의 변경에의해 필연적으로 영향을 받는 관계를 의미한다. 즉, 의존의 대상이되는 코드의 변경이 이루어졌을때, 의존하는 메서드에 기능적, 프로그래밍적 영향을 미치면, 그건 두 클래스가 의존관계에 있다고 말할수 있다. 스프링은 이런 클래스들간의 의존관계를 관리해주는 기능을 제공한다. 대표적으로 DI 이다. 스프링의 DI없이 의존관계를 주입하려면, 어떤 클래스가 다른 클래스를 의존할때, 의존이 필요한 클래스 안에서 의존의 대상이 되는 클래스의 객체를 생성하는 방법으로 클래스간 의존..

메이븐 프로젝트 POM.XML설정 및 코딩 오답.(최범균 스프링 5 프로그래밍 Chaptor 02, 2021,05,25)

우선, 스프링 프로젝트를 시작하기 위해서는 스프링의 객체를 생성해주고, 초기화해주는 종합적인 관리도구가 필요한데, 대표적으로, 메이븐,그레이들,엔트가 있다. 이 책에서는 메이븐으로 프로젝트를 시작하는 것을 다루고 있다. 우선 메이븐이나 그레이들이나 모두 동일한 폴더 구조를 사용한다. C:\spring5fs\sp5-chap02\src\main\java 구조로 이루어져 있음. 메이븐 으로 프로젝트를 만들기 위해서는 POM.XML이라는 파일을 프로젝트의 루트폴더에 두어야 한다. 이유는 모든 메이븐 프로젝트는 프로젝트의 루트폴더에 POM.XML 파일을 가지는데, 프로젝트에서 필요한 설정정보(그룹ID,스프링 버전)등을 마크업 언어로 작성한다. 그레이들은 build.gradle이라는 설정파일을 루트파일에 두어야한다..