1. Constructor Injection 스프링 컨테이너는 bean 객체 생성시 Default 생성자를 호출하여 객체를 생성한다. 이때 기본 생성자가 아닌 매개변수를 가지는 생성자를 통해 호출하도록 할 수 있는데 이 기능을 사용하여 Construction Injection을 처리할 수 있다. 먼저 아래와 같이 Car, Engine, Main 클래스가 있다고 하자. # Engine 클래스 public class Engine { public Engine() { System.out.println("Engine 생성"); } public void sound() { System.out.println("Brrrrrrr!!!"); } } # Car 클래스 public class Car { private Engin..
분류 전체보기
1. IoC (Inversion of Control) IoC는 Inversion of Control의 약자로 "제어의 역전"이라는 뜻이다. 일반적인 프로그래밍은 프로그래머가 코드로 직접 객체를 생성하고 호출하는 과정을 거친다. 이러한 제어 시스템이 역전되어 메서드나 객체의 호출을 개발자가 결정하는 것이 아니라 외부에서 결정되는 것을 제어의 역전이라고 한다. IoC의 장점으로는 다음과 같은 것이 존재한다. 객체간 결합도를 낮춘다. 가독성이 증진된다 코드 중복을 방지한다 유지 보수가 용이하다. 이러한 IoC의 핵심 원리는 스프링 프레임워크가 객체의 생성과 의존관계를 컨테이너가 자동으로 관리한다는 것이다. 이때 스프링은 IoC를 Dependency Lookup(DL), Dependency Injection(D..
1. 태그 Intellij에서 spring의 xml파일을 생성하면 아래와 같은 코드가 자동으로 생성된다. 위와 같이 스르링 설정 파일은 엘리먼트를 루트 엘리먼트로 사용한다. 이때 beans에는 bean이 사용할 라이브러리들을 정의할 수 있다. 는 , , , 등의 자식 태그를 가지며 주로 사용되는 것은 과 이다. 2. 태그 스프링 기반의 애플리케이션은 bean 객체 등록뿐만 아니라 트랜잭션 관리, 다국어 처리 등 여러 설정이 필요하다. 따라서 이런 설정들을 처리하는 경우 여러 파일로 나눠 설정하는데 이들을 하나로 통합할 때 를 사용한다. 사용법은 아래와 같다. 3. 태그 태그를 사용하면 스프링 설정 파일에 클래스를 등록할 수 있다. 이때 id와 class 속성을 부여하는데 id는 생략 가능하며, class..
1. 클래스 생성 먼저 아래와 같이 bean으로 등록할 클래스를 선언하자. package Exam1; public class SamTV implements TV{ public SamTV() { System.out.println("Create SamTV Object"); } @Override public void turnOn() { System.out.println("Turn on SamTV"); } @Override public void turnOff() { System.out.println("Turn off SamTV"); } @Override public void volumeUp() { System.out.println("Volume up SamTV"); } @Override public void v..
1. xml 파일 생성의 이유 IoC 컨테이너는 각 컨테이너에서 관리할 객체들을 위한 별도의 설정 파일이 있다. 예를 들어, Servlet 컨테이너의 경우 web.xml 파일을 통해 관리한다. 스프링 프레임워크도 다른 컨테이너와 동일하게 자신이 관리할 클래스들이 등록된 xml파일이 필요하다. 이 xml 파일이 바로 "applicationContext.xml" 파일이다. 2. Intellij 에서 설정 파일 생성 Intellij에서 먼저 maven project를 만들고 spring 관련 설정을 해주자. 그리고 /main/resources 파일을 생성하고 해당 파일을 우클릭하면 아래와 같은 창이 발생한다. 위와 같이 Spring Config를 선택하고 파일을 만들어주자. 그러면 아래와 같이 파일이 잘 생성..
1. Tomcat 설치 Apache Tomcat 다운 및 설치 우리가 word 파일을 열어서 내용을 확인하기 위해서는 ms office의 word 프로그램이나 viewer가 필요하다. 웹 어플리케이션 역시 실행을 위해서 필요한 것이 있는데 그것이 바로 WAS(Web Application Server)이 ngp9440.tistory.com 2. Tomcat 연결 Intellij의 우측 상단을 보면 Add Configuration이라는 곳이 있다. 해당 부분을 클릭하면 아래와 같은 창이 발생한다. 좌측 상단의 +키를 누르거나 "Add new run configuration"을 클릭하자. 그리고 아래와 같이 [tomcat server]→[local]을 찾아 선택하자. 그러면 위와 같은 창이 뜨는데, Name ..
SQL은 테이블 혹은 열을 as를 통해 다른 이름으로 사용할 수 있다. 쿼리 예시는 다음과 같다. SELECT deptno as number, name as departName FROM department; 위 sql은 기존의 deptno와 name 이라는 열을 각각 number, departName으로 변경한 테이블을 요청하는 쿼리다. 결과는 다음과 같다.
우리는 ROCK이라는 단어를 찾고, 그 단어를 포함한 여러 단어에 대한 경우의 수를 구해햐 한다. 이를 위해서는 주어진 문자열을 처음부터 조사하는 것이 아니라 뒤에서부터 살펴봐야 한다. 이때 dp에는 발견한 K, CK, OCK, ROCK의 개수를 dp에 저장하기로 했다. 아래 코드에서 사용한 dp는 입력된 문자열의 길이 n만큼의 길이를 가지며 각 원소는 길이가 5인 리스트로 선언했다. 각 인덱스는 발견한 (0)K, (1)CK, (2)OCK, (3)ROCK의 개수를 저장하고 마지막 인덱스(4)의 칸에는 ROCK을 포함하고 있는 문자열의 개수를 저장했다. 단, ROCK을 포함하고 있는 문자열 중 "ROCK"은 인덱스(3)에 저장되어 있으므로 해당 문자열을 제외한 개수를 저장했다. 즉, "NROCK"이나 "R..