본문 바로가기

백앤드 개발/Java & Spring

(18)
[Spring boot] 자주 쓰는 어노테이션 어노테이션(Annotation) 이란? 자바 소스 코드에 메타 데이터 (유용한 정보) 를 추가할 때 사용되는 키워드로 다음 역할 수행 컴파일러를 통한 문법 체크 빌드 시 코드 필요한 코드 자동 생성 런타임 시, 특정 기능 실행하도록 정보 제공 Config @Configuration: 해당 클래스가 스프링의 설정 클래스임을 명시. @Bean 어노테이션이 적용된 메서드를 포함. @Bean: Spring Container 의 Bean 으로 등록할 때 사용. Bean 이름은 메서드명으로 등록됨. @Configuration 과 함께 사용. @Component: 해당 클래스를 Bean 으로 등록. 반환된 객체를 Bean으로 등록하는 @Bean과 달리 클래스를 Bean 으로 등록. @Service, @Reposito..
[Spring boot] JPA 칼럼명과 언더바 1. JPA 언더바 자동변경 JPA 는 카멜 표기법 또는 파스칼 표기법을 사용하는 테이블명, 칼럼명을 언더바로 연결된 이름으로 자동 매핑한다. 엔티티의 칼럼명을 myColumn 또는 MyColumn 으로 작성할 경우 my_column 으로 매핑을 시도한다. 2. 해결방법 1) 프로퍼티 설정에서 언더바 자동변경 관련 설정 추가 // application.properties // 언더바 자동변경 방지 spring.jpa.hibernate.naming.implicit-strategy=org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl spring.jpa.hibernate.naming.physical-strategy=org.hibernate...
[Spring boot] 로그인, 로그아웃 구현 by 스프링 시큐리티 1. 스프링 시큐리티란? 스프링의 보안 관련 기능 (인증과 권한) 을 담당하는 스프링 하위 프레임워크 필터 기반으로 동작 기본적으로 세션 기반 인증 제공 2. 스프링 시큐리티 인증 처리 과정 1. 사용자 인증 요청 보통 로그인 폼을 통해 자격 증명 정보를 제출 2. UsernamePasswordAuthenticationFilter 동작 제출 정보를 토대로 AuthenticationManager 인증 수행 3. AuthenticationProvider 커스텀 AuthenticationProvider 를 통해 인증 로직을 구현하고 인증 결과 (성공 or 실패) 반환 4. SecurityContextHolder 에 인증정보 저장 인증 성공시 SecurityContextHolder 에 SecurityContex..
[Spring boot] 타임리프 1) 타임리프란(Thymleaf) ? 타임리프(Thymeleaf)는 서버 사이드 Java 템플릿 엔진 서버 측에서 데이터를 표시하고 HTML 템플릿을 생성하는데 특화 주로 스프링 프레임워크와 사용 2) 특징 th: xxx 가 붙은 부분은 서버 사이드에서 렌더링 되고 기존의 것을 대체하고 없으면 기존 html 속성 사용 스프링의 많은 기능과 함께 사용 반복, 조건, 국제화 등의 다양한 기능 지원 3) 타임리프 사용 선언 4) th:href 속성 변경 HTML을 그대로 볼 때는 href 속성 사용 서버 사이드와 연동 될때는 th:href 의 값이 href 로 대체되어 데이터 바인딩 th:href="@{/css/bootstrap.min.css}" : 타임리프는 URL 링크 사용시 @{...} 를 사용 5) t..
[Spring boot] 스프링 MVC 구조 이해 1. DispatcherServlet 구조와 동작 순서 DispatcherServlet 은 스프링 웹 어플리케이션의 핵심 컴포넌트 클라이언트로부터 HTTP 요청을 받아 URL과 HTTP 매서드에 매핑되는 핸들러 조회 및 응답 반환 http 헤더 정보, 컨텐츠 타입 등의 정보를 활용하기도 함 // org.springframework.web.servlet.DispatcherServlet protected void doDispatch(HttpServletRequest request, HttpServletResponse response) throws Exception { HttpServletRequest processedRequest = request; HandlerExecutionChain mappedHand..
[Spring boot] 서블릿, JSP을 활용한 MVC 패턴 *** 프론트 컨트롤러 패턴 *** 지금까진 서블릿을 컨트롤러로 하고 jsp 를 뷰로하는 mvc 패턴을 사용했다 이번 시간엔 프론트 컨트롤러 패턴을 도입해 다음 공통 기능을 처리한다. FrontController 패턴 특징 프론트 컨트롤러 서블릿 하나로 클라이언트의 요청 받음 프론트 컨트롤러가 요청에 맞는 컨트롤러를 찾아 호출 httpservlet request 상속, 어노테이션 등 공통된 기능해 처리함 따라서 프론트 컨트롤러를 제외한 나머지는 서블릿을 사용할 필요가 없음 스프링 웹 MVC의 핵심도 바로 FrontController *** v1 프론트 컨트롤러 도입 *** 목표: url 이 진입하고 요청 별로 맞는 컨트롤러를 호출하는 프론트 컨트롤러를 구현 개발순서: 1. interface Control..
[Java] 참조형 변수 1. 참조형 변수 참조형변수는 객체의 주소를 저장 배열, 열거, 클래스, 인터페이스 타입 등이 있음 package lec01; import java.util.Date; public class DataType03 { public static void main(String[] args) { // new Date를 통해 객체를 생성하고 생성된 객체를 today라 명명 Date today = new Date(); } } 2. 메모리 사용 영역 1) 힙 영역 객체, 참조형 변수는 힙 영역에 생성된다. 힙 영역은 JVM 스택 영역을 참조한다. 사용하지 않는 객체는 가비지콜렉터에 의해 자동으로 제거된다. 2) 스택 영역 기본 변수는 스택 영역에 생성된다. 변수는 선언된 블록 안에서만 존재하고 블록을 벗어나면 스택에서..
[Spring boot] 회원, 주문 프로젝트 - 스프링으로 전환 1. AppConfig 변경 @Configuration 을 붙여 스프링 컨테이너에 등록 각 메서드마다 @Bean 을 붙여 스프링 빈으로 등록 ... import ... @Configuration public class AppConfig { @Bean public MemberService memberService() { return new MemberServiceImpl(memberRepository()); } @Bean public OrderService orderService() { return new OrderServiceImpl(memberRepository(), discountPolicy()); } @Bean public MemberRepository memberRepository() { retu..