주니 개발 도서관

Spring 18

[ 관점지향 프로그래밍 ] AOP ( xml설정 - JointPoint )

Advice 클래스를 더 꾸며보자 키워드 : JoinPoint | 바인드 변수 바인드 변수 = returnObj, exseptObj JoinPoint 객체를 이용하여 사용해보자 JoinPoint는 import가 필요함 - AOP관련 클래스인것을 알수있음 jp.getSignature().getName() >> 포인트컷(핵심로직)의 메서드명을 알수있음 jp.getArgs() >> 포인트컷(핵심로직)이 사용하는 인자들의 정보를 알수있음 여러개일수 있으므로 아웃풋은 Object [] 로 받는다 해당값을들 syso로 확인할 수 있게 된다 포인트컷 (핵심로직)의 리턴값을 이용하여 AfterReturning 과 AfterThrowing에서 사용해보자 1) AfterReturning 인자로 Object returnOb..

Spring 2022.09.16

[ 관전지향 프로그래밍 ] AOP (xml설정 )

[ 관점지향 프로그래밍 ] Aspect Oriented Programming 핵심로직 ( 비즈니스 메서드, CRUD ) + 공통로직 (횡단관심 = conn, pstmt, close, close) 객체지향(OOP)일 경우 안좋은점 DAO를 예로 conn, pstmt, sql, rs, close, close >> 객체가 수행하다보니 각각의 CRUD에 전부 넣어야하고 DAO마다 존재해야 했음 즉, 코드의 반복이 필수 ( JDBCUtil ) AOP의 목표 -> conn, pstmt, sql, rs, close, close중 횡단관심을 분리시키고 sql, rs 로직만 남기는 것이 목표 각각의 로직에 맞는 코드공간이 생기므로, 응집도가 높아짐 >> 유지보수 용이 AOP는 언제 쓰이는가? 핵심로직 (비즈니스 메서드,..

Spring 2022.09.15

[ 제어의 역행 ] 어노테이션을 이용한 Model 관리

어노테이션을 이용하여 Model 부분을 실무처럼 관리해 보자 패키지명의 의미 com.kim.biz.클래스명 = VO와 Interface를 넣는 패키지 com.kim.biz.클래스명.impl = DAO와 Serviceimlp를 넣는 패키지 com.kim.biz.common = JDACUtil을 넣는 패키지 ** biz = 비지니스 즉, 비지니스클래스를 뜻함 ** impl = Implementation의 줄임말로 "구현"을 뜻함 아래와 같이 관리한다 어노테이션을 사용하기위해선 스캔범위를 지정해 주어야하는데 아래와 같이 범위를 지정해 준다 ( applicationContext.xml ) com.kim.biz 경로아래로 지정되어있는 패키지는 모두 어노테이션을 사용할 수 있게 된다 어노테이션을 적용시켜 보자 ( ..

Spring 2022.09.14

[ 제어의 역행 ] IoC - 어노테이션

https://hongjuni.tistory.com/58 [ 제어의 역행 ] IoC - 생성자 인젝션 [ 제어의 역행 ] Inversion of Control 기존 MVC2 패턴에서 insert.do 요청 >> new InsertAction() (FC에서 작성됨) 를 실행하게 되었는데 new InsertAction(req,res); => 인자를 추가하는 순간 FC에서 오류.. hongjuni.tistory.com https://hongjuni.tistory.com/59 [ 제어의 역핵 ] IoC - Setter 인젝션 IoC의 기본적인 개념 및 흐름은 IoC 생성자 인젝션에서 확인! https://hongjuni.tistory.com/58 > new InsertAction() (FC에서 작성됨) 를 실행..

Spring 2022.09.14

[ 제어의 역핵 ] IoC - Setter 인젝션

IoC의 기본적인 개념 및 흐름은 IoC 생성자 인젝션에서 확인! https://hongjuni.tistory.com/58 [ 제어의 역행 ] IoC - 생성자 인젝션 [ 제어의 역행 ] Inversion of Control 기존 MVC2 패턴에서 insert.do 요청 >> new InsertAction() (FC에서 작성됨) 를 실행하게 되었는데 new InsertAction(req,res); => 인자를 추가하는 순간 FC에서 오류.. hongjuni.tistory.com Setter 인젝션 생성자 인젝션 보다 자주 사용할 인젝션이며 기본적으로 자바를 사용하며 클래스의 멤버변수를 이용할 때 자주 사용한 기억이 있을 것이다 마찬가지로 Setter인젝션은 자주 쓰일 인젝션인 것이다 생성자 인젝션에선 생..

Spring 2022.09.14

[ 제어의 역행 ] IoC - 생성자 인젝션

[ 제어의 역행 ] Inversion of Control 기존 MVC2 패턴에서 insert.do 요청 >> new InsertAction() (FC에서 작성됨) 를 실행하게 되었는데 new InsertAction(req,res); => 인자를 추가하는 순간 FC에서 오류발생 (기존의 인자가없는 것이 있기 때문) 개발자가 직접 new 객체화 하다보니 실수가 많다 + 결합도가 높다 -> 컨테이너에게 객체화를 담당시키자! 자바 코드로 new 하는것이 아니라, 컨테이너가 객체화 처리 소스 코드에 new가 없음 >> 결합도가 낮아짐 >> 유지보수가 용이 ( 소스코드에 new가 있다 >> 의존관계를 명시했다고 표현 ) 결합도를 낮추는 방법중 1) 인터페이스 객체지향 - 다형성을 사용하여 "설계"에서 낮춰볼 수 있..

Spring 2022.09.14

스프링 쓰는 이유 및 간단 개요

??? . xml 환경설정** 과 관련된 파일 web.xml FC와 같은 서블릿을 관리하는 서블릿 컨테이너** (톰캣, 웹 서버)에게 설정을 알려주는 파일 pom.xml 스프링 컨테이너에게 설정을 알려주는 파일 현재의 프로젝트가 가지고 있는 패키지 (클래스 파일) 참조 사항을 설정함 선임 : " 서블릿 컨테이너가 어떻게 설정되어잇나요? " 나 : " (web.xml 파일을 보여주며) 이렇게 설정되어 있습니다! " [ 프레임워크 ] 개발을 어떻게 해야하는지 아웃라인을 제공 ( 뼈대 = 틀을 벗어나지 않도록 ) Spring 프레임워크 관련 질문 ㅡ Spring 프레임워크 왜 쓸까요? 1. 프레임워크를 사용하기 때문에 개발시간 단축 2. 관리가 용이 == 유지보수 용이 3. ** 개발자들의 실력이 상향 평준화..

Spring 2022.09.13

스프링 설치 및 설정

이클립스 안에서 스프링을 다운 받아보자 Spring Tools 3 설치 완료 후에 Add-On 을 설치 하도록 하자 프로젝트를 생성 ( Spring Legacy Project ) 사용할 이름, 템플릿을 정한다 com.회사명.프로젝트명 으로 이름 설정후 Finish 생성한 프로젝트의 Properties ( 설정 ) 클릭 Project Facts > 자바 JDK 버전 및 Runtimes 사용중인 톰캣 체크 > 저장후 닫기 설정한 java jdk 버전으로 수정 4.2.4.RELEASE 으로 수정 (강사님이 확인한 높은 버전) 이후 저장시 이클립스 오른쪽 아래 구석에 설치 Bar가 생기는데 100%가 되면 그때부터 코드 작성하기 ( 오류 가능성이 높음 ) 설정이 잘 되었는지 체크 해당 폴더를 삭제 (필요가 없고..

Spring 2022.09.13