전체 글 275

Spring Container/Bean

스프링 컨테이너 ApplicationContext를 스프링 컨테이너라 한다. ApplicationContext는 인터페이스다. 스프링 컨테이너는 XML을 기반으로 만들 수 있고, 애노테이션 기반의 자바 설정 클래스로 만들 수 있다. 기존에 개발자가 AppConfig를 사용해서 직접 객체를 생성하고 DI를 했지만, 이제부터는 스플링 컨테이너를 통해서 사용한다. 스프링 컨테이너는 @Configuration 이 붙은 AppConfig를 설정(구성)정보로 사용한다. 여기서 @Bean 이라 적힌 메서드를 모두 호출해서 반환된 객체를 스프링 컨테이너에 등록한다. 스프링 빈 스프링 컨테이너에 등록된 객체를 스프링 빈이라 한다. 스프링 빈은 @Bean이 붙은 메서드의 명을 스프링 빈의 이름으로 사용한다. 이전에는 개발..

Study/Java&Spring 2021.07.19

Spring, IoC/DI 컨테이너

Spring Framework 란? 엔터프라이즈급 어플리케이션을 구축할 수 있는 가벼운 솔루션이자, 원스-스탑-숍(One-Stop-Shop) 원하는 부분만 가져다 사용할 수 있도록 모듈화가 잘 되어 있다. IoC 컨테이너다. 선언적으로 트랜잭션을 관리할 수 있따. 완전한 기능을 갖춘 MVC Framwork를 제공한다. AOP 지원한다. 도메인 논리 코드와 쉽게 분리될 수 있는 구조로 되어있다. IoC/DI 컨테이너 컨테이너(Container)란? 인스턴스의 생명주기를 관리한다. 생성된 인스턴스들에게 추가적인 기능을 제공한다. AppConfig 처럼 객체를 생성하고 관리하면서 의존관계를 연결해 주는 것 ex) Servlet을 실행해주는 WAS는 Servlet 컨테이너를 가지고 있다고 말한다. IoC(Inv..

Study/Java&Spring 2021.07.17

AppConfig

관심사의 분리 애플리케이션을 하나의 공연이라 생각해보자. 각각의 인터페이스를 배역이라 생각하자. 그런데 실제 배역 맞는 배우를 선택하는 것은 누가 하는가? 로미오와 줄리엣 공연을 하면 로미오 역할을 누가 할지 줄리엣 역할을 누가 할지는 배우들이 정하는게 아니다. 이전 코드는 마치 로미오 역할(인터페이스)을 하는 레오나르도 디카프리오(구현체, 배우)가 줄리엣 역할(인터페이스)을 하는 여자 주인공(구현체 배우)을 직접 초빙하는 것과 같다. 디카프리오는 공연도 해야하고 동시에 여자 주인공도 공연에 직접 초빙해야 하는 다양한 책임을 가지고 있다. 관심사를 분리하여 위의 문제를 해결한다. 배우는 본인의 역할인 배역을 수행하는 것에만 집중한다. 디카프리오(구현체)는 어떤 여자 주인공(구현체)이 선택되더라도 똑같이 ..

Study/Java&Spring 2021.07.17

객체 지향 프로그래밍

객체지향의 특징 추상화 캡슐화 상속 다형성 - 클라이언트(역할)를 바꾸지 않아도 기능(구현)을 바꿀 수 있는 것. 유연하고 변경이 용이하게 하는 것 객체지향 프로그래밍을 잘하려면? 역할과 구현을 잘 분리해야한다. 인터페이스를 안정적으로 잘 설계하는 것이 중요하다. 스프링에서의 객체지향 다형성이 가장 중요 다형성을 극대화해서 이용할 수 있게 도와준다. 스프링에서 이야기하는 제어의 역전(IoC), 의존관계 주입(DI)은 다형성을 활용해서 역할과 구현을 편리하게 다룰 수 있도록 지원한다. 스프링을 사용하면 마치 레고 블럭 조립하듯이, 공연 무대의 배우를 선택하듯이, 구현을 편리하게 변경할 수 있다. 다형성 자바언어의 다형서 오버라이딩 오버라이딩 된 메서드가 실행된다. 다형성으로 인터페이스를 구현한 객체를 실행..

Study/Java&Spring 2021.07.15

[프로그래머스] 가사검색

문제 [본 문제는 정확성과 효율성 테스트 각각 점수가 있는 문제입니다.] 친구들로부터 천재 프로그래머로 불리는 "프로도"는 음악을 하는 친구로부터 자신이 좋아하는 노래 가사에 사용된 단어들 중에 특정 키워드가 몇 개 포함되어 있는지 궁금하니 프로그램으로 개발해 달라는 제안을 받았습니다. 그 제안 사항 중, 키워드는 와일드카드 문자중 하나인 '?'가 포함된 패턴 형태의 문자열을 뜻합니다. 와일드카드 문자인 '?'는 글자 하나를 의미하며, 어떤 문자에도 매치된다고 가정합니다. 예를 들어 "fro??"는 "frodo", "front", "frost" 등에 매치되지만 "frame", "frozen"에는 매치되지 않습니다. 가사에 사용된 모든 단어들이 담긴 배열 words와 찾고자 하는 키워드가 담긴 배열 que..

[프로그래머스] 무지의 먹방 라이브

문제 * 효율성 테스트에 부분 점수가 있는 문제입니다. 평소 식욕이 왕성한 무지는 자신의 재능을 뽐내고 싶어 졌고 고민 끝에 카카오 TV 라이브로 방송을 하기로 마음먹었다. 그냥 먹방을 하면 다른 방송과 차별성이 없기 때문에 무지는 아래와 같이 독특한 방식을 생각해냈다. 회전판에 먹어야 할 N 개의 음식이 있다. 각 음식에는 1부터 N 까지 번호가 붙어있으며, 각 음식을 섭취하는데 일정 시간이 소요된다. 무지는 다음과 같은 방법으로 음식을 섭취한다. 무지는 1번 음식부터 먹기 시작하며, 회전판은 번호가 증가하는 순서대로 음식을 무지 앞으로 가져다 놓는다. 마지막 번호의 음식을 섭취한 후에는 회전판에 의해 다시 1번 음식이 무지 앞으로 온다. 무지는 음식 하나를 1초 동안 섭취한 후 남은 음식은 그대로 두..

[프로그래머스] 지형 이동 - MST알고리즘(크루스칼알고리즘 사용)

문제 N x N 크기인 정사각 격자 형태의 지형이 있습니다. 각 격자 칸은 1 x 1 크기이며, 숫자가 하나씩 적혀있습니다. 격자 칸에 적힌 숫자는 그 칸의 높이를 나타냅니다. 이 지형의 아무 칸에서나 출발해 모든 칸을 방문하는 탐험을 떠나려 합니다. 칸을 이동할 때는 상, 하, 좌, 우로 한 칸씩 이동할 수 있는데, 현재 칸과 이동하려는 칸의 높이 차가 height 이하여야 합니다. 높이 차가 height 보다 많이 나는 경우에는 사다리를 설치해서 이동할 수 있습니다. 이때, 사다리를 설치하는데 두 격자 칸의 높이차만큼 비용이 듭니다. 따라서, 최대한 적은 비용이 들도록 사다리를 설치해서 모든 칸으로 이동 가능하도록 해야 합니다. 설치할 수 있는 사다리 개수에 제한은 없으며, 설치한 사다리는 철거하지 ..

어노테이션(Annotation)

어노테이션(Annotation)이란? 사전적 의미로는 주석이라는 뜻이다. 코드 사이에 주석처럼 쓰여서 특별한 의미, 기능을 수행하도록 하는 기술이다. 컴파일, 런타임 시에 해석이 될 수 있다. 어노테이션을 적용할 때는 어노테이션이 어디에 적용되며 언제까지 어노테이션 소스가 유지될 것인지를 설정하여야 하는데 소스코드에는 다음과 같이 어노테이션을 정의해 주면 된다. @Target({ElementType.[적용대상]}) @Retention(RetentionPolicy.[정보유지되는 대상]) public @interface [어노테이션명]{ public 타입 elementName() [default 값] ... } @Target에는 어떠한 값(ex : 클래스, 필드, 메서드 ...)에 어노테이션을 적용할 것이지..

Study/Java&Spring 2021.06.28

Maven plug in error

Spring Maven 프로젝트 생성시 Could not get the value for parameter encoding for plugin execution default-resources 위와 같은 오류가 발생할 경우 아래와 같은 방법 대로 순차적으로 실행해 보길 바란다. 이클립스를 닫아 줍니다. User 폴더의 .m2 폴더를 찾습니다. (예를들어, "C:\Users\사용자이름\.m2") repository 폴더를 지웁니다. 이클립스를 다시 열어 줍니다. 실행 할 Maven 프로젝트의 "Project" --> "Clean" 을 시켜줍니다.(Project 메뉴는 이클립스 상단 메뉴에 있습니다.) 프로젝트를 오른쪽 클릭을 한뒤 "Maven" --> "Update Project" 를 눌러줍니다. 이클립스..

Study/Java&Spring 2021.06.24

[프로그래머스], [백준 9663 번] N-Queen - 백트래킹

문제 가로, 세로 길이가 n인 정사각형으로된 체스판이 있습니다. 체스판 위의 n개의 퀸이 서로를 공격할 수 없도록 배치하고 싶습니다. 예를 들어서 n이 4인경우 다음과 같이 퀸을 배치하면 n개의 퀸은 서로를 한번에 공격 할 수 없습니다. Q Q Q Q Q Q Q Q 체스판의 가로 세로의 세로의 길이 n이 매개변수로 주어질 때, n개의 퀸이 조건에 만족 하도록 배치할 수 있는 방법의 수를 return하는 solution함수를 완성해주세요. [제한사항] 퀸(Queen)은 가로, 세로, 대각선으로 이동할 수 있습니다. n은 12이하의 자연수 입니다. 풀이 DFS 방식으로 하나씩 대입하여 가능한 경우수를 판단하면 된다. 여기서 한개의 행에는 하나의 퀸만 있을 수 있다는 점을 생각하면 경우의 수를 줄일 수 있다...