본문 바로가기
반응형

전체 글183

Spring Boot 스프링 빈 등록방법1 - 직접 등록 @Configuration + @Bean 직접 스프링 빈으로 등록한 객체는 스프링이 관리하지 않는다. 구성 정보(XML or Config.class)를 넣어서 스프링 컨테이너(ApplicationContext) 생성 스프링 빈 등록 : 스프링 컨테이너는 파라미터로 넘어온 설정 클래스 정보를 사용해서 스프링 빈을 등록한다 빈 이름은 대개 메소드 이름을 사용한다. 스프링 빈 등록 방법2 - 자동 등록 @Component (@Repository, @Service, @Controller) + @Autowired 구성 정보 없이 컴포넌트 스캔만을 이용하여 빈을 등록하는 방법 @Component가 포함되어있는 어노테이션을 이용해 스프링 빈으로 등록함 의존 관계 주입을 위해 @Au.. 2023. 5. 22.
MyBatis 마이바티스란?관계형 데이터베이스 프로그래밍을 쉽게 도와주는 프레임 워크리포지토리 영역(DAO)을 마이바티스가 관리함관리 영역 - sql관리, 파라미터 대입, 실행, 결과 매핑하여 서비스 영역으로 돌려줌개발자가 쿼리를 직접 실행하지 않고 설정만 해주면됨XML 파일로 작성함 마이바티스 시작configurationDB 연결정보 관리 (DBOpen 클래스 역할), mapper xml 파일(DAO 클래스) 등록 mapper쿼리문 관리 (DAO 클래스 역할)대체적으로 mapper의 namespace 이름은 테이블명과 같게 한다종결문자(;) 생략하여 쿼리문 작성파라미터 바인딩 표기법 - #{property} : 물음표를 사용하지 않고 parameterType 객체의 멤버 변수를 바로 적용함resultMap : DB .. 2023. 5. 16.
예습) 스프링 입문 ApplicationContext 스프링 컨테이너라 한다 → 정확히는 스프링 컨테이너를 BeanFactory, ApplicationContext로 구분하여 불러야 하지만, BeanFactory를 직접 사용하는 경우는 거의 없으므로 ApplicationContext를 스프링 컨테이너라 한다. ApplicationContext 객체를 생성할 때 매개값으로 Java 코드로 된 설정 정보를 넘긴다. ApplicationContext 에 정의한 @Bean 설정 정보를 읽어와 Greeter 객체를 생성, 초기화한다. AnnotationConfigApplicationContext 는 ApplicationContext 인터페이스의 구현체이다 ApplicationContext applicationContext = new.. 2023. 5. 11.
예습)스프링 입문 application 사용하기 파일 등록하기 프레임워크 vs 라이브러리 프레임워크가 내가 작성한 코드를 제어하고, 대신 실행하면 그것은 프레임워크가 맞다. (JUnit) 반면에 내가 작성한 코드가 직접 제어의 흐름을 담당한다면 그것은 프레임워크가 아니라 라이브러리다 정적 클래스 의존관계 실행해보지 않고도 의존관계를 쉽게 판단할 수 있다 클래스 다이어그램 (화살표 방향으로 의존) 동적 클래스 의존관계 실행해봐야만 알 수 있다 객체 다이어그램 (화살표 방향으로 의존) @Configuration Bean을 등록할 때 싱글톤이 되도록 보장해준다 스프링 컨테이너에서 Bean을 관리할 수 있게 한다 스프링에서 CGLIB라는 바이트코드 조작 라이브러리를 사용해서 AppConfig를 상속받은 임의의 클래스를 통해서 싱.. 2023. 5. 11.
예습) 스프링 입문 @Transactional 테스트 케이스에 이 어노테이션이 있으면, 테스트 시작 전에 트랜잭션을 시작하고, 테스트 완료 후에 항상 롤백한다. 이렇게 하면 DB에 데이터가 남지 않으므로 다음 테스트에 영향을 주지 않는다. @SpringBootTest 스프링 컨테이너와 테스트를 함께 실행한다. @Autowired 키워드 생략가능 조건 생성자가 하나일때는 생략 가능 JdbcTemplate 클래스 JdbcTemplate은 JDBC 코어 패키지의 중앙 클래스로 JDBC의 사용을 단순화하고 일반적인 오류를 방지하는데 도움이 된다. 개발자가 JDBC를 직접 사용할 때 발생하는 다음과 같은 반복 작업을 대신 처리해준다. 커넥션 획득 statement를 준비하고 실행 결과를 반복하도록 루프를 실행 커넥션 종료, stat.. 2023. 5. 3.
Amazon EC2를 이용한 MVC1 패턴 프로젝트 배포 미니 프로젝트 'My Universe' - 나만의 홈페이지 만들기 - 작업기간 2023.04.12 ~ 2023.05.02 - MVC1 패턴으로 구현 [홈화면] - 학원 javascript 공부 시간에 배웠던 사진 스크롤 이용하여 하단부 장식 - moment.js 사용하여 화면 중앙부에 현재 시간 보여주기 - 상단 오른쪽 로그인 버튼 부분 → 로그인 상태일 때 로그아웃으로, 로그아웃 상태일 때 로그인으로 화면 출력 [답글형 게시판] - rownum 이용하여 글 번호 출력 - 메인 글에 달린 댓글 갯수 출력 - 오늘 날짜의 게시글이 있을 경우 해당 게시글 제목 옆에 new 이미지 출력 - 일정 조회수 이상 조회된 게시글일 경우 게시글 제목 옆에 hot 이미지 출력 - 페이징 작업 - 검색 기능 [공지사항 게.. 2023. 4. 30.
예습) 스프링 기초 @AfterEach@AfterEach를 사용하면 각 테스트가 종료될 때 마다 이 기능을 실행한다. @BeforeEach각 테스트 실행 전에 호출됨 테스트가 서로 영향이 없도록 항상 새로운 객체를 생성하고, 의존관계도 새로 맺어줌 OptionalNullPointerException을 방지할 수 있음 null이 올 수 있는 T타입의 객체의 값을 감싸는 Wrapper클래스 복잡한 조건문 없이도 null값으로 인해 발생하는 예외처리를 할 수 있음 of() 메소드나 ofNullable() 메소드를 사용하여 객체를 생성할 수 있음 명시된 값이 null이면 비어있는 Optional객체를 반환함 Streams의 findAny()메소드와 findFirst()메소드의 차이findFirst() : 병렬 처리시 가장 먼저 찾.. 2023. 4. 27.
예습) 스프링 기초 Welcome page(index.html)static 폴더에 index.html을 올려두면 Welcome page 기능을 제공함 static 폴더에 index.html이 없는경우 templates폴더에서 index.html 을 찾음 컨트롤러에서 리턴값으로 문자를 반환하면 뷰 리졸버(’viewResolver’)가 resources:templates 폴더에 가서 화면을 찾아 처리함 스프링 웹 개발 기초정적 컨텐츠 (resources : static)요청하면 서비스 없이 그대로 내려줌요청한 url의 관련 컨트롤러(자바파일의 컨트롤러)를 우선으로 찾고, 컨트롤러가 없으면 static 폴더에 가서 찾음 MVC와 템플릿 엔진 (resources : templates) 요청하면 서버에서 원하는 요청값을 만들어서 내.. 2023. 4. 25.
예습) 스프링 입문을 위한 자바 객체 지향의 원리와 이해 IoC/DI (Inversion of Control - 제어의 역전 / Dependency Injection - 의존성 주입) 프로그래밍에서 의존관계는 new로 표현된다 의존하는 객체(전체)와 의존되는 객체(부분) 사이에 집합관계와 구성관계로 구분할 수 있음 집합 관계 예 : 집 - 냉장고 → 부분이 전체와 다른 생명 주기를 갖는다 구성 관계 예 : 사람 - 심장 → 부분은 전체와 같은 생명 주기를 갖는다 의존 관계Tire 객체를 직접 생성함Tire타입 객체의 종류를 정확히 알아야지만 그에 해당하는 객체를 생성할 수 있음public class Car() { Tire tire; public Car() { tire = new Tire(); } } 의존성 주입1 - 생성자를 통한 의존성 주입Car객체를 생성할.. 2023. 4. 23.
반응형