Spring DI, AOP 14

14. DAO의 작성과 적용(1) - 패스트캠퍼스 백엔드 부트캠프 3기

1. DAO(Data Access Object)란?데이터(data)에 접근(access)하기 위한 객체(object)Database에 저장된 데이터를 읽기, 쓰기, 삭제, 변경을 수행DB테이블당 하나의 DAO를 작성 2. 계층(layer)의 분리컨트롤러가 직접 데이터베이스에 접근하면 메서드의 중복이 일어난다.중간에 UserDao를 통해 간접적으로 DB에 접근분리 - 관심사, 변하는것과 변하지 않는것의 분리, 중복UserDao 클래스public class UserDao { @Autowired DataSource ds; final int FAIL = 0; public int deleteUser(String id) { int rowCnt = FAIL; // insert, d..

Spring DI, AOP 2025.02.26

13. Spring으로 DB다루기/TDD - 패스트캠퍼스 백엔드 부트캠프 3기

1. 데이터베이스에 저장하고 읽어오기User 클래스@ToString@Getter@Setter@EqualsAndHashCodepublic class User { private String id; private String pwd; private String name; private String email; private Date birth; private String sns; private Date reg_date; public User(){} public User(String id, String pwd, String name, String email, Date birth, String sns, Date reg_date) { this.id..

Spring DI, AOP 2025.02.26

12. Spring으로 DB연결하기 - 패스트캠퍼스 백엔드 부트캠프 3기

1. DBConnectionTest1public class DBConnectionTest { public static void main(String[] args) throws Exception { // 스키마의 이름(springbasic)이 다른 경우 알맞게 변경해야 함 String DB_URL = "jdbc:mysql://localhost:3306?useUnicode=true&characterEncoding=utf8"; // DB의 userid와 pwd를 알맞게 변경해야 함 String DB_USER = "root"; String DB_PASSWORD = "4862"; Connection conn = DriverManage..

Spring DI, AOP 2025.02.26

11. 데이터 모델링이란 - 패스트캠퍼스 백엔드 부트캠프 3기

1. 데이터 모델링 용어모델링 : 실제 대상을 추상화하여 단순하게 표현하는 것데이터 모델링 : 실제 업무에 맞게 데이터의 특성과 구조를 만드는 것ER모델 : 개체(Entity)와 개체간의 관계(Relationship)로 표현하는 모델ERD : ER모델을 그림(Diagram)으로 표현한 것 2. 기본키(PK)와 참조 키(FK)행(row) : 인스턴스 객체키본 키(Primary key) : 테이블 내의 한 행을 식별(구별)해주는 컬럼 - 순서X,유일성(중복X), 자주변경X참조 키(Foreign Key) : 다른 테이블에서 참조하는 컬럼 3. ER모델의 구성 요소엔티티(Entity) : 실존하는 개체 또는 개념(ex. 고객, 제품, 주문) -> 테이블관계(Relationship) : 엔티티 간의 규치고가 관계..

Spring DI, AOP 2025.02.25

10. AOP의 원리와 용어 - 패스트캠퍼스 백엔드 부트캠프 3기

1. AOP(Aspect Oriented Programming)란?관점 지향 프로그래밍, 횡단 관심사, cross-cutting-concerns부가 기능(advice)을 동적으로 추가해주는 기술 메서드의 시작 또는 끝에 자동으로 코드(advice) 를 추가 2. 공통 코드의 분리여러 메서드에 공통 코드를 추가해야  한다면?public class AopMain { public static void main(String[] args) throws Exception { Class myClass = Class.forName("com.fastcampus.ch3.aop.MyClass"); Object o = myClass.newInstance(); MyAdvice myAd..

Spring DI, AOP 2025.02.24

9. 외부 설정 사용하기 - 패스트캠퍼스 백엔드 부트캠프 3기

1. 외부 설정 파일 - application.properties애플리케이션 속성의 기본 값을 바꿀 수 있는 설정 파일.@Configuration@Import({Config1.class, Config2.class})//@Import(MyImportSelector.class)//@EnableMyAutoConfiguration("test2")class MainConfig{ @Bean Car car() {return new Car();} }class Config1 { @Bean Car sportsCar() {return new SportsCar();} }class Config2 { @Bean Car sportsCar() {return new SportsCar2();} }이름이 같은 @Bean sportsCar..

Spring DI, AOP 2025.02.24

8. @Import와 @Conditional - 패스트캠퍼스 백엔드 부트캠프 3기

1. Condition과 @Conditional조건에 따라 빈의 등록 여부를 결정. @Bean, @Conponent와 같이 사용Condition의 matches()를 구현한 클래스를 @Conditional로 지정조건부 빈 등록개별 빈 : @Bean + @Component + @Conditional빈 여러개(그룹) : @Configuration + @Import + ImportSelector(조건부 결정)Starter : 의존 라이브러리 자동관리AutoConfiguration : 빈 등록 자동관리그 외의 애너테이션 2. @Import와 ImportSelector 조건에 따라 다른 Configuration(자바설정 : 빈 여러개 정의)을 적용할 때 사용ImportSelector를 구현하고 이를 @Import..

Spring DI, AOP 2025.02.24

7. 의존성 관리와 설정의 자동화(2) - 패스트캠퍼스 백엔드 부트캠프 3기

1. @SpringBootApplicationSpring Boot Application의 시작 클래스에 붙인다.@SpringBootApplication = @Configuration + @EnableAutoConfiguration + @ComponentScan//@SpringBootApplication // 은 아래의 3개 애너테이션을 붙인것과 동일@SpringBootConfiguration // @Configuration하고 동일@EnableAutoConfiguration@ComponentScanpublic class Main { public static void main(String[] args) { ApplicationContext ac = SpringApplicatio..

Spring DI, AOP 2025.02.24

6. 의존성 관리와 설정의 자동화(1) - 패스트캠퍼스 백엔드 부트캠프 3기

1. 스타터(starter)란?여러 관련 라이브러리를 묶어서 패키지로 제공start만 pom.xml에 추가하면, 관련 라이브러리가 자동으로 추가됨[pom.xml] org.springframework.boot spring-boot-starter-web[pom.xml]의 폼안에 추가 해준뒤...Sync Project(Reload Project)를 해주면...자동으로 관련 라이브러리가 다운로드가 된다.관련된 라이브러리들이 다운로드된 모습...2. pom.xml이란?Maven기반 프로젝트의 설정 파일프로젝트 기본 설정 정보, 의존 라이브러리, 설정 상속 정보를 지정(Maven만 가능) 3. pom파일의 상속로 pom.xml파일 간의 상속이 가능하며, 자손에서 덮어쓰기 가능 4. 자동 의존성 변경하기..

Spring DI, AOP 2025.02.24

5. Spring 애너테이션 - 패스트캠퍼스 백엔드 부트캠프 3기

1. @ComponentScan과 @Component@ConponentScan으로 @Component를 자동 검색해서 빈으로 등록@Configuration이 붙은 자바 설정 클래스에 붙일 수 있다.@Configuration// @ComponentScan("com.fastcampus.ch3") - 패키지 지정// @ComponentScan(basePackage = {"com.fastcampus.ch3"}) - 패키지 지정(다중)// @ComponentScan(basePackageClasses = AppConfig.class) - 클래스 지정@ConponentSCan // 이 애너테이션이 붙은 클래스의 패키지를 자동스캔public class AppConfig { ...}// @Bean(name="sup..

Spring DI, AOP 2025.02.24