목록전체 글 (214)
열심히 끝까지

[오전 내용] - 디바이스 융합 자바(Java) day67(1) 참고(https://programming-studyroom.tistory.com/201) >> .xml에 AOP 설정 : 하찮은 로그만 찍어봄 >> 좀더 로그다운 것을 찍으려면 >> 어떤 포인트컷과 연결되었는지를 확인하는 것이 좋음 => joinpoint를 이용해 받아옴 >> 유용한 로그 찍는 것이 가능해짐 >> around pjp를 인자로 받아서 포인트컷 연결 >> business 메서드에 return값이 존재하기도 하는데 바인드 변수를 이용해 받을 수 있음 >> xml에서 return 및 throw값을 받을 수 있음 [오후 내용] ※ 바인드 변수 == 바인드는 바인딩과 비슷 Object returnObj : 설정을 해준다면, 비즈니스 메..

[ 지난 수업 ] Spring 프레임워크 : 유지보수를 위해 사용 - IoC와 AOP를 지원하는 경량의 프레임워크 덕분 > 제어의 역행(IoC) : 의존관계 - 어떤 객체가 특성메서드를 수행할 때에 다른 객체를 사용하는 것(멤버변수) ex ) 캐릭터 - 무기, 폰 - 워치, C(Service) - DAO, .... : 의존성주입(DI) - new 결합도를 높히는 코드 - 결합도를 낮추기 위해 컨테이너에게 부탁함 .xml @ @Component 생성자인젝션 @Autowired setter인젝션 > 관점지향 프로그래밍 우선 두 개로 분리 - CRUD(비즈니스메서드, 핵심로직) - 횡단관심(공통로직) : 어떤 핵심로직 + 횡단관심을 엮을지를 스프링 컨테이너에게 알려주어야 함! : .xml, @으로 설정 가능 ..

AOP 용어정리 - Advice : 횡단관심 ex ) LogAdvice : 로그 횡단관심 어디있나? - pointcut : 횡단관심을 적용할 핵심 로직 aPointcut == 모든 핵심 로직(부를 이름) bPointcut == ? 핵심 로직 expression(표현식)에 어떤 핵심 로직인지 알려줘야함 execution(메서드 시그니처) [*] [com.kim.biz..*Impl.*] [(..)] 1번째 괄호 [타입 상관없이 모든 로직에 대해서] 2번째 괄호 [패키지 이름 Impl로 끝나는 것의 모든 메서드에 대해서] 3번째 괄호 [모든 인자를 의미] ex ) aPointcut - 임의로 정해준 이름(회사마다 달라짐) - aspect : "결합" 그 자체 횡단관심 + 포인트컷(핵심로직) 결합된 것 결합시기..

[ 9/14 과제 해설 ] - 어제 과제 9/14와 동일(추가된 거는 update delete뿐) 바꿀 것 없음 - 구글링을 해보니 com.회사명.dao | com.회사명.vo 라고 하는 곳을 봤음 >> 회사 내부의 규칙으로 어떤 것이 옳고 그르다는 것은 없음 : 각 회사의 "스타일" >> 실제로 작업하는 MemberDAO는 public void insertMember(MemberVO vo){ } 의 반복 MemberDAO에 의존성 주입 @Component >> 메모리에 해당 객체만 존재하면 됨 돌아가긴 함 >>> 메모리에 적재는 되지만 이름을 모르기 때문에 메모리 낭비 >> 모델꺼라고 알려주기 위해서 Repository(상속받음 Component로부터) 이름을 지정해줌 -> 뒤에 이름을 써주지 않아도 ..

Member 테이블 이용해서 회원가입 로그인 성공/실패 ------------------com.ryo.biz.member : MemberVO, MemberService package com.ryo.biz.member; public class MemberVO { private String mid; private String mpw; private String name; private String role; public String getMid() { return mid; } public void setMid(String mid) { this.mid = mid; } public String getMpw() { return mpw; } public void setMpw(String mpw) { this.mpw..
> xml에게는 치명적인 단점 존재 -> 너무 복잡함 >> 어떤 객체와 어떤 객체가 의존관계를 갖는다는 사실을 xml 보고는 쉽게 파악하기 힘듦 > 하나의 클래스 내부에 여러 개의 객체 멤버 변수 존재 : 이름 명확하게 존재하지 않을 수 있고 bean(등록된 객체)의 수가 엄청 많을 수도 있음 : xml 길이 늘어나고, 누가 누구랑 의존관계인지 파악하기 힘들어짐 >> 그래서 유명한 책, 혹은 괜찮은 강의에서는 "xml은 설정이 과도하다." 라고도 언급 >> 개발자들은, Java 코드와 함께 의존관계를 파악하는 것을 선호 : 그러니 "JAVA 코드에 xml 설정"을 추가해보자!! 하고 나온 것이 어노테이션(@) ※ 어노테이션 사용 방법 1 ) context를 namespace에 추가 [ xmlns:cont..
[어제 나온 질문의 답변] - new를 코드에 작성하면, 설정변화에 따라 코드가 변경될 수 밖에 없음! >> 결합도가 높다!!! 스프링 프레임워크 "IoC와 AOP 지원하는 경량의 프레임워크" 제어의 역행 IoC : new를 내가 안하는 것 : 컨테이너가 하는 것 == new 스프링 설정 파일 보여주세요! == applicationContext 보여주세요! 객체가 멤버로 객체를 갖는다? == 의존관계가 생김 == 의존성을 주입시켜주어야 함(=의존성 주입(DI)) - 생성자 인젝션(galaxy, iphone 워치 및 폰 생성(day64(2) 참고) - Setter 인젝션 >> 객체화를 하고 싶다.. - 멤버변수가 2개 있음 - 멤버 변수를 초기화하는 방법 1. 기본생성자 + setter 2. 생성자 >> ..
== Watch 인터페이스를 만들어서 대입해라! -----------------Phone.java[Phone 인터페이스] package test; public interface Phone { public void powerOn(); public void powerOff(); public void volumeUp(); public void volumeDown(); } -----------------Watch.java[Watch 인터페이스] package test; public interface Watch { public void volumeUp(); public void volumeDown(); } -----------------AppleWatch.java package test; public class ..