본문 바로가기
반응형

Back-End/Spring Boot24

타임리프 기본 표현식 / 리팩토링 - 타임리프 표현식 수정 간단한 표현 변수 표현식: ${...} 선택 변수 표현식: *{...} 메시지 표현식: #{...} 링크 URL 표현식: @{...} 조각 표현식: ~{...} 리터럴 텍스트: 'one text', 'Another one!',… 숫자: 0, 34, 3.0, 12.3,… 불린: true, false 널: null 리터럴 토큰: one, sometext, main,… 문자 연산 문자 합치기: + 리터럴 대체: |The name is ${name}| 산술 연산 Binary operators: +, -, *, /, % Minus sign (unary operator): - 불린 연산 Binary operators: and, or Boolean negation (unary operator): !, not 비교와 .. 2023. 8. 14.
취업 준비, 스프링 부트 강의 강의 스프링 MVC 프레임 워크 만들기 v1 - 프론트 컨트롤러 v2 - view 분리 (View.render) v3 - 서블릿 종속성 제거 (ModelAndView) , 뷰 이름 중복 제거 (viewResolver) v4 - 단순, 실용적 (Model), 뷰의 논리 이름 반환, 모델이 파라미터로 들어오기 때문에 직접 생성하지 않아도 됨 v5 - 어댑터 패턴 적용하여 프론트 컨트롤러가 여러가지 컨트롤러 처리 가능 (HandlerAdapter, Handler) 서블릿 종속성을 제거하기 위해 model 사용 application.properties ⇒ logging.level.org.apache.coyote.http11=debug DispatcherServlet = FrontController MVC 프레임.. 2023. 7. 31.
Spring Boot 스프링 빈 등록방법1 - 직접 등록 @Configuration + @Bean 직접 스프링 빈으로 등록한 객체는 스프링이 관리하지 않는다. 구성 정보(XML or Config.class)를 넣어서 스프링 컨테이너(ApplicationContext) 생성 스프링 빈 등록 : 스프링 컨테이너는 파라미터로 넘어온 설정 클래스 정보를 사용해서 스프링 빈을 등록한다 빈 이름은 대개 메소드 이름을 사용한다. 스프링 빈 등록 방법2 - 자동 등록 @Component (@Repository, @Service, @Controller) + @Autowired 구성 정보 없이 컴포넌트 스캔만을 이용하여 빈을 등록하는 방법 @Component가 포함되어있는 어노테이션을 이용해 스프링 빈으로 등록함 의존 관계 주입을 위해 @Au.. 2023. 5. 22.
예습) 스프링 입문 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.
예습) 스프링 기초 @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.
반응형