Web Dev 39

Spring Framework - 5(AOP)

Aspect Oriented Programming : 관점지향프로그램 OOP의 단점을 보완하기 위해 생겼음. 모듈을 분리하는 것이 관건! 횡단관심 : 공통된(중복) 모듈 핵심관심 : 핵심 Proxy(AspectJ) : 두 모듈을 실행 필요한시점(Point cut)에 원하는 위치(Joinpoint)에서 합치는 것 회원가입의 예) 정보를 입력해서 DB 저장 : 핵심코드 DB에 정상적으로 저장되었다는 것을 기록하고 싶다 : 횡단 관심 → (핵심가치는 아님) AspectJ의 AOP 기능 JVM이 실행할 대 컴파일러가 AspectJ라는 특별한 컴파일러를 통해 Weaving작업을 통해 합쳐짐(핵심 관심 모듈 사이사이에 Aspect 형태로 만들어진 횡단 관심 코드를 삽입해서 Aspect가 적용된 결과를 만듬.) 핵심..

Web Dev 2022.03.08

Spring Framework - 4(DI & Annotation)

Spring Annotation Context namespace component-scan : Spring Annotation을 Spring Container에서 인식되어 처리되도록 설정하는 엘리먼트 ⇒ context 네임스페이스의 spring-context.xsd 파일에서 제공하는 엘리먼트 base-package 속성 : Spring Container가 Spring Annotation을 사용한 클래스를 검색하기 위한 패키지를 속성값으로 설정 Configuration : Spring Container가 관리하기 위한 클래스를 Spring Bean으로 등록하기 기능을 제공하는 환경설정 클래스를 구현하기 위한 어노테이션 ⇒ Bean Configuration File의 Bean 엘리먼트와 유사한 기능을 제공하..

Web Dev 2022.03.07

Spring Framework - 3(Ioc)

IoC Inversion of Control : 제어의 역행 ⇒ 제어를 프로그램이 아닌 다른 곳에서 해줌!! 장점 : Container 기능을 제공하여 객체간의 결합도를 떨어뜨릴수 있음. 결합도 : 소프트위에 코드의 한 요소가 다른것과 얼마나 강력하게 연결되어 있는지를 나타냄 ⇒ 한 객체 안에서 다른 객체의 메소드를 호출하거나 멤버 변수에 접근할 때 두 객체가 연결되어 있다는 것 OOP : 관계-관계를 통한 프로그램 작성 Ioc Container 어떤 객체를 생성부터 소멸까지 Life Cycle을 관리 Container에서 어떤 Service를 제공해주는 역할 객체를 누군가가(Container)가 대신 생성해줘 결합을 줄여줌으로써 이용하고자 하는 곳에서 실제 이용 클래스와의 결합을 없앰 Factory C..

Web Dev 2022.03.07

Spring Framework - 2(Logging)

Logging : 프로그램에는 기록되는 행위가 중요하다. log4j가 기록하고 slf4j가 기록을 출력해준다. log4j : 장치에 메세지를 기록하는 로그 구현 프로그램 ⇒ log4j.xml 파일에 기록관련 정보를 설정 appender 엘리먼트 : 로그 전달 방식을(로그매체)과 로그 형식을 설정하는 엘리먼트 name 속성 : appender 엘리먼트를 구분하기 위한 식별자 속성값으로 설정 class 속성 : Appender 인터페이스를 상속받은 클래스를 속성값으로 설정 ConsoleAppender : Console을 이용해 로그 서버에 파일로 기록함 (Socket, File 등 여러 appender가 있다.) ⇒ ConsoleAppender가 객체화되서 전달 param 엘리먼트 : Appender 인스턴..

Web Dev 2022.03.07

Spring Framework - 1(환경설정)

Framework : 개발을 더 쉽게 하기 위한 환경(아키텍처)를 제공하는 것. 장점 : 프로그램을 만드는 환경이 동일하기 때문에 관리가 쉽고 유지보수가 용이함 프로그램을 만들 때 효율적인 디자인패턴 및 알고리즘을 사용하기 때문에 보다 쉽게 만들수 있다. 디자인패턴이 최적화 되어 있음. Spring은 엔터프라이즈 애플리케이션 프레임워크!! 화이트박스 Framework 통합 Framework ⇒ web용 디자인 패턴 : 싱글톤, MVC 개발방법론 : 현재는 폭포수 개발방법론으로 하고 있음.. 테이블 구성시 정규화 - 중복제거(PK, FK) 무결성 - 설계 방법 Business Framework : DI, IOC, AOP WEB이 아닐땐 hibernate를 사용하는게 좋다! 스프링 이전의 Framework는..

Web Dev 2022.03.07

Mybatis Framework - 4 (Join 구현)

3개의 테이블로 4번 JOIN 포함관계가 있는 DTO를 List로 필드값 설정한다. join을 할 경우는 중복된 컬럼명에 대한 이름이 자동으로 변경되어 사용할 수 없기 때문에select * xxxx이 아닌 직접 컬럼명을 다 적어주는 것이 정석이다. resultMap 으로 mapping시 Collection을 사용하는 필드의 DTO가 포함관계인 DTO일 경우 Collection안에 Association을 이용하여 mapping을 추가로 해준다. resultMap 엘리먼트 하위 엘리먼트 선언 순서 constructor > id > result > association > collection > discriminator association 엘리먼트로 mapping을 설정한 경우 내부적으로 selectOne(..

Web Dev 2022.02.28

JSP MVC2 + Mybatis

Mybatis 를 이용하여 DAO를 만들고, JSP MVC Model 2 방식 사용하여 간단한 웹프로그램 실습 [ 순서 ] 1. web.xml 환경설정 (filter 설정, controller 설정, model properties설정) 2. filter(utf-8) 설정 3. controller 제작 4. model.properties 제작(수정필요) 5. dto 제작(list 형태의 필드생성) 6. library 추가(Mybatis, ojdbc, jstl) + log4j.xml 환경설정하여 Mybatis logging 7. db.properties 작성 8. Mybatis 환경설정 (DB연결정보, dto typeAliase, mapper package) 9. AbstractSession 추상클래스 작성..

Web Dev 2022.02.27

MyBatis Framework - 3 (Join 구현)

> 1:1 관계의 조인 FK 제약조건 Join 방식 2 (기존 DTO를 재사용) POJO(Plain Old Java Object) 객체 사용 : 기존 클래스를 재사용하여 새로운 클래스를 쉽게 작성하여 생산성 증가 및 유지보수 효율성 증가 1. Join을 위한 DTO를 따로 생성 2. XML매퍼에 resultMap을 이용한 매핑 ⇒ DTO 클래스에서 필드가 포함관계로 작성된 경우 포함 관계의 필드에 인스턴스를 매핑하여 저장하기 위해서는 반드시 resultMap 엘리먼트를 사용하여 매핑 정보 제공 association 태그 : 1:1 관계의 테이블 조인 검색행의 컬럶값을 포함 관계의 인스턴스로 생성하여 DTO클래스의 필드에 매핑하여 저장하기 위한 엘리먼트 ⇒ association의 하위 엘리먼트(id 엘리먼..

Web Dev 2022.02.25

MyBatis Framework - 2 (Mapper Binding)

Interface 기반의 Mapper 파일 사용 XML mapper 장점 : 매핑 설정 기능과 동적 SQL 기능을 구현하기 편리 → 매핑 설정 중복 되지 않음 단점 : SqlSession 인스턴스로 SQL 명령을 사용하기 불편 Interface mapper 장점 : SqlSession 인스턴스로 SQL 명령을 XML 맵퍼보다 쉽게 제공받아 사용하기 편리 단점 : 매핑 설정 기능과 동적 SQL 기능을 구현하기 불편 → 매핑 설정 중복됨 1. 환경설정 파일에 mapper class 작성 class 속성 : Interface 기반의 맵퍼 파일의 경로를 속성값으로 설정 mybatis 프레임워크는 인터페이스를 이용하여 Mapper 설정 가능 ⇒ 추상메소드에 Mapper Annotation을 사용하여 SQL 명령 ..

Web Dev 2022.02.25

MyBatis Framework

MyBatis Framework Framework : 반 정도 완성된 프로그램! persistence framework 로써 DAO Class를 좀 더 쉽게 만드는 환경을 제공해주는 framework. Hivernate가 세계적으로 가장 많이 사용함. 그러나 우리나라는 MyBatis를 많이 사용함. WEB에서의 CRUD 작업만 놓고 보면 MyBatis 가 강력함. https://mybatis.org/mybatis-3/ko/getting-started.html POJO = VO 또는 DTO 3.0 ver 이전까지는 iBatis 이후 버전은 Google이 인수해서 MyBatis 1. lib build ojdbc : DBConnection 관련 log4j : 내부적으로 작성된 프로그램이 실행되는지 확인하기 위..

Web Dev 2022.02.24