목록Records (45)
Keep going
- 스프링은 하나의 기능을 위해서 만들어진 프레임워크가 아니라 '코어'라고 할 수 있는 프레임워크에 여러 서브 프로젝트를 결함해서 다양한 상황에 대처할 수 있도록 개발되었다. - 서브 프로젝트라는 의미는 별도의 설정이 존재할 수 있다라는 개념이다. - Spring Legacy Project 로 생성한 프로젝트도 servlet-context.xml 과 root-context.xml로 설정 파일이 분리된 것을 볼 수 있다. - 스프링 MVC 가 서브 프로젝트이므로 구성 방식이나 설정 역시 조금 다르다고 볼 수 있다. 스프링 MVC 프로젝트의 내부 구조 - 스프링 MVC 프로젝트를 구성해서 사용한다는 의미는 1) 내부적으로 root-context.xml로 사용하는 일반 JAVA 영역(흔히 POJO)과 2) s..
MyBatis란? MyBatis는 'SQL 매핑 프레임워크'로 분류되는데 JDBC 코드의 복잡하고 지루한 작업을 피하는 용도로 많이 사용 전통적인 JDBC 프로그램 MyBatis - 직접 Connection을 맺고 마지막에 close() - PreparedStatement 직접 생성 및 처리 - PreparedStatement의 setXXX() 등에 대한 모든 작업을 개발자가 처리 - SELECT의 경우 직접 ResultSet 처리 - 자동으로 Connection close() 가능 - MyBatis 내부적으로 PreparedStatement 처리 - #{prop}와 같이 속성을 지정하면 내부적으로 자동 처리 - 리턴 타입을 지정하는 경우 자동으로 객체 생성 및 ResultSet 처리 ◆ MyBatis ..
오라클과 SQL DEVELOPER를 설치 완료했다고 가정하고 프로젝트와 JDBC 연결을 해보겠다. ◆ 프로젝트와 JDBC 연결 우선 JDBC 연결을 하려면 JDBC Driver가 필요하다. Oracle 데이터베이스의 JDBC Driver는 11g까지 공식적으로 Maven으로는 지원되지 않기 때문에, 직접 jar 파일을 프로젝트에 추가시켜야 한다. sqldeveloper>jdbc>lib 에 jar파일 존재 추가 할 프로젝트 선택 후 properties 들어가기 JDBC 드라이버가 정상적으로 추가되었고, 데이터베이스의 연결이 가능하다면 눈으로 확인하기 위해 테스트 코드를 작성한다. 테스트 코드는 Java와 JDBC 드라이버만으로 구현해서 먼저 테스트해야 한다. 데이터 베이스 연결이 가능하다면 데이터베이스가 ..
생성자 주입의 경우 객체 생성 시 의존성 주입이 필요하므로 좀 더 엄격하게 의존성 주입을 체크하는 장점이 있다. ◆ 주입할 클래스 ◆ 주입받을 클래스 Setter 를 이용한 주입과 다른점 생성자를 선언하고 Chef를 주입하도록 작성되었다. @Autowired 어노테이션 없이 처리되고 있다. SampleHotel 클래스에 @AllArgsConstructor 어노테이션을 사용하면 생성자 자동 주입과 Lombok이 결합되면서 생성자를 따로 작성해주지 않아도 된다. @AllArgsConstructor는 인스턴스 변수로 선언된 모든 것을 파라미터로 받는 생성자를 작성한다. 만약 여러 개의 인스턴스 변수들 중에서 특정한 변수에 대해서만 생성자를 작성하고 싶다면 @NonNull 과 @RequiredArgsConstr..
스프링에서는 생성자를 이용한 주입과 setter 메서드를 이용한 주입으로 의존성 주입을 구현한다. 설정 방식은 주로 XML이나 어노테이션을 이용해서 처리한다. ◆ porm.xml에 추가하거나 혹은 변경할 라이브러리들 org.projectlombok lombok 1.18.18 provided cs org.springframework spring-test ${org.springframework-version} Colored by Color Scripter cs 3. log4j 버전 1.2.17로 바꿔주기 (안 바꿀시, Lombok 에서 문제 생김) 4. junit 버전 4.12 로 바꿔주기 ◆ src/main/java에 클래스 생성 @Data : Lombok의 setter를 생성하는 기능과 생성자, toSt..
# 프로젝트 생성 방법 File > New > Spring Legacy Project 에서 Spring MVC Project를 이용하여 생성. 프로젝트를 최초로 생성하면 필요한 코드와 라이브러리를 다운로드 하게 된다. '.m2' 폴더 > repository 폴더 안에는 프로젝트 생성 시 다운로드된 파일들 추가되있다. 스프링 프로젝트 구조 src/main/java - 작성되는 코드의 경로 src/main/resources - 실행할 때 참고하는 기본 경로(주로 설정파일들을 넣는다.) src/test/java - 테스트 코드를 넣는 경로 str/test/resources - 테스트 관련 설정 파일 보관 경로 src/main/webapp/WEB-INF/spring/appservlet/servlet-contex..
프레임워크란 ? 뼈대나 근간을 이루는 코드들의 묶음 경량 프레임워크란? 90년대 말에 복잡한 구동 환경과 하드웨어적인 구성이 필요한 프레임워크의 반대되는 개념으로 등장 과거 J2EE 기술이 너무 복잡하고 방대 → 전체 이해하고 개발하기에 어려움이 있었다. 경량프레임워크 → 특정 기능을 위주로 간단한 jar 파일 등을 이용해서 모든 개발이 가능 스프링의 차별성 복잡함에 반기를 들어 만들어진 프레임워크 프로젝트의 전체 구조를 설계할 때 유용한 프레임워크 여러 종류의 프레임워크를 혼용해서 사용 가능 개발 생산성과 개발도구의 지원 스프링의 주요 특징 POJO 기반의 구성 의존정 주입을 통한 객체 간의 관계 구성 AOP 지원 편리한 MVC 구조 WAS의 종속적이지 않은 개발 환경 ◆ POJO (plain old ..
트리 관련 용어 트리를 구성하는 요소는 노드와 가지 각각의 노드는 가지를 통해 다른 노드와 연결되어 있다. 루트 트리의 가장 윗부분에 위치하는 노드를 루트라고 한다. 하나의 트리에는 하나의 루트가 있다. 리프 트리의 가장 아랫부분에 위치하는 노드를 리프라고 한다. (가장 아래에 위치한다 = 더 이상 뻗어나갈 수 없는 마지막에 노드가 위치한다.) 안쪽 노드 리프를 제외한 노드 자식 어떤 노드로부터 가지로 연결된 아래쪽 노드 부모 어떤 노드에서 가지로 연결된 위쪽 노드 형제 같은 부모를 가지는 노드 조상 어떤 노드에서 가지로 연결된 위쪽 노드 모두 자손 어떤 노드에서 가지로 연결된 아래쪽 노드 모두 레벨 루트로부터 얼마나 떨어져 있는지에 대한 값을 레벨이라고 한다. 루트의 레벨은 0, 가지가 하나씩 아래로 ..