목록분류 전체보기 (103)
노승현
@Controller 인터페이스가 아니므로, 메서드 시그니처 강제성이 사라짐 과거에는 req,res 를 인자로 가지므로, 완전한 POJO는 아니었음 사용자가 입력한 값들을 보관하는 역할의 req 바로 DTO로 받아올 수 있다 Command 객체 == Spring 컨테이너가 관리해주는 객체 Spring 컨테이너 1) DTO(Command 객체) 를 new 2) req 에 저장된 정보중이 DTO 멤버변수와 같은 파라미터명이 있다면 해당 값 자동 추출 3) 추출한 값을 DTO 멤버변수에 set 가능 : setter 활용 DAO, MAV->Model, JSP 내장객체(Session)도 Command 객체가 될 수 있음 * DAO -> DAO2 버전업해주세요 인자를 전부 변경해야함 -> 결합도가 높은 코드 결합도..
우리 손에 JdbcTemplate 파일이 없다면 어노테이션 사용을 못한다. DBCP DB Connection Pool MemerDAO02 with 템플릿 패턴 RowMapper 클래스 작성 템플릿 의존주입을 위한 템플릿 new => Util 역할의 dataSource 가 필요 이 과정에서 pom.xml. jar 추가 기존 DAO -> DAO02 로 Repository 변경 Impl 멤버변수 타입 변경 사용하지 않는 임포트는 지워라 Destroy-method=“close” 자동 close 해주는 역할이지만 속도가 따라오지 못한다면 지워줘라 외부에서 가져오는 클래스이기때문에 따로 설정할 수가 없다. 개발자가 만든것 Advisor ==aspect == 위빙처리해달라 == 결합 설정으로 만든 것 FC 중요 .x..
Spring 에서의 MVC 패턴 구조 기업에서 Spring Boot 만 사용하는 곳은 없기때문에 처음보는 프레임 워크를 만나게 되는 순간이 생긴다. Spring 에서의 MVC 패턴 구조에 대한 매커니즘을 이해 할 수 있다면, 처음보는 프레임 워크의 구조도 이해할 수 있기때문에 배우는 것이다. 한 번쯤은 처음 보는 프레임워크를 만나게 된다 1. 클래스 타입(자료형) 중심 VS 2. 기능 중심 패키지 관리는 현재 기능 중심으로 나눠놓았지만 중간 프로젝트 때처럼 DTO, DAO, Controller, Action,.. 처럼 클래스 타입(자료형) 중심으로 나눠도 괜찮음 대체적으론 ‘클래스 타입(자료형) 중심’으로 작업하는 편이다. ✅ Point 면접 시 관리 방법에 대한 이유를 묻는다면 팀 회의를 통해 과반수가..
IoC new 를 컨테이너가 대신 해준다 서블릿(FrontController)을 new == 서블릿 컨테이너(톰캣,웹 서버) POJO(DAO,Action, …) 를 new == 스프링 컨테이너 컨테이너 -> .xml(설정파일) DI(의존 주입) 를 통한 낮은 결합도 보장 AOP C : 인증 로깅 C 트랜잭션 예외처리 R : 로깅 R U : 인증 로깅 보안 U 트랜잭션 예외처리 D : 인증 로깅 보안 D 트랜잭션 예외처리 공통 로직 횡단 관심 비즈니스 메서드(비즈니스 로직, 핵심 관심, CRUD)에서 횡단 관심(공통 로직)을 분리 관심 분리(Separation of Concern) : AOP 의 시작 로직(관심)들끼리 코드를 관리 -> 높은 응집도 보장 항상 찍는 로그는 공통 로직이네? Advice 클래스..
스프링 파일 생성 Type Maven Packaging War Java Version 17 Language Java Group 프로젝트명을 주로 쓴다 Package 뒤에 프로젝트명 붙이기 스프링 프레임워크를 넘어오고나서는 컨테이너 1 톰캣 : 서블릿 컨텐이너, 웹 서버 내장되어 있음 Servlet 클래스를 new 해줌 FrontController 등 -> web.xml 2 스프링 컨테이너 : POJO 클래스를 new 해줌 DAO, DTO, Action(Controller) 등 * 코드내에서 new 역할을 담당하는 컨테이너 -> applicationContext.xml 3 루트(최상위) 컨테이너 : .jar(라이브러리)를 관리해줌 얘도 스프링 컨테이너라고도 부름,,, * 설정 관련 컨테이너 -> pom.x..
팩토리 패턴 != 싱글톤 패턴 싱글톤을 유지하기 위해 사용하는 것이 팩토리 패턴 예시 코드에서, 싱글톤 유지가 안된게 맞다. 코드에 new 가 작성되어있다면 틀릴 위험이 있다. 중프 코드에서는, 싱글톤 유지 o applicationContext.xml // 사용자마다 핸드폰을 주고 싶다면 ------------------------------------------------------------------------------------------------ [IoC 를 배울 때 함께 알아야 하는 개념] (1) DI 란? Dependency Injection 의존 주입 개발자 -> 스프링 컨테이너(Spring 프레임 워크) 1. 객체를 생성(new) 및 관리(호출 시 해당 객체 메서드 수행) 2. 의존 ..
Spring 을 기반으로 한 웹 프레임 워크 회사 내 자체 개발한 프레임 워크 => Spring 기반 Spring 프레임 워크가 뭔가요? IoC 와 AOP 를 지원하는 경량의 프레임 워크 낮은 결합도와 높은 응집도를 가지는 코드 : 제어의 역행 즉, new 를 개발자가 하지않고 컨테이너가 수행하는 기능과 관점 지향 프로그래밍 즉, 공통로직을 별도의 클래스로 모듈화하여 올바른 시기에 호출하는 기능을 수행하는, 경량의 POJO 를 다루는 컨테이너를 제공하는 프레임 워크 IoC 가 뭔가요? : 코드에서 new 를 제거 하는 것 Inversion of Control 제어의 역행 제어를 중간 프로젝트까지 개발자가 담당함 HM Spring 컨테이너 POJO 일반 (자바객체 생성 가능) DTO, DAO, Action..
joinAction.java 페이지의 해당 코드가 MemberDTO의 자료형과 충돌하는 오류 발생 memberDTO.setBirth(request.getParameter("birth")); 여러가지 로직을 고민해본 결과 자료형의 강제 변환이 가장 최소화 되는 방법을 사용하기로 결정하여 Model 쪽에서 쿼리문을 수정하여 해당 오류를 해결하기로 결정 private String birth; private static final String INSERT_JOIN = "INSERT INTO MEMBER(MEMBERNUM,ID,PW,NAME,NICKNAME,BIRTH,PH,PROFILE,GRADE)" + "VALUES((SELECT NVL(MAX(MEMBERNUM),0)+1 FROM MEMBER),?,?,?,?,..