본문 바로가기

프로그래밍/Spring

(17)
[SPRING] 스프링 웹 개발 기초 1.정적 컨텐츠 서버에서 하는 것 없이 서버에서 파일을 그냥 내려주는 것 스프링 부트는 정적 컨텐츠 기능을 기본으로 제공한다. 1) 웹 브라우저에서 URL을 보냄 2) 스프링부트 내장 톰켓 서버가 요청을 받음 3) 스프링 컨테이너 쪽에서 컨트로러가 있는지 확인 4) 없으면 외부에 있는 resource에 있는 정적 파일을 찾음 2.MVC와 템플릿 엔진 JSP, PHP 같은 것들이 템플릿 엔진이다. HTML을 그냥 주는게 아니라 서버에서 동적으로 바꿔서 내려주는 것 MVC: Model, View, Controller 과거에는 Controller와 View가 나눠져 있지 않았다.(Model One 방식) View는 화면을 그리는데 모든 역량을 집중해야 된다. Controller는 내부적인 것을 처리하는 데에 ..
[SPRING] 프로젝트 환경설정 스프링 부트 스타터 사이트로 이동해서 스프링 프로젝트 생성 https://start.spring.io Project Project를 Maven으로 구성할지 Gradle로 구성할지 선택하는 것이다. 과거 Maven이 필요한 라이브러리를 끌어서 오고 빌드하는 라이프사이클까지 관리해주는 툴이였지만 요즘은 거의 Gradele을 쓴다. 심지어 Gradle이 스프링 라이프사이클 관리까지 한다. Language 원하는 언어 선택 Spring Boot 버전을 선택하는 것이다(SNAPSHOT/M1은 아직 만들어 진게 아님) Project Metadata Group (보통 기업이름) Artifact (빌드 된 결과물 - 프로젝트 명 같은것) Dependencies 어떤 라이브러리를 다운받아서 쓸 것인지 정하는 것 Spri..
[Spring] AOP(Aspect Oriented Programming) AOP AOP는 Aspect Oriente Programming의 약자로, 여러 객체에 공통으로 적용할 수 있는 기능을 분리해서 재사용성을 높여주는 프로그래밍 기법이다. AOP는 핵심 기능과 공통 기능의 구현을 분리함으로써 핵심 기능을 구현한 코드의 수정 없이 공통 기능을 적영 할 수 있게 만들어준다. AOP의 기본 개념은 핵심 기능에 공통 기능을 삽입하는 것이다. 즉 핵심 기능의 코드를 수정하지 않으면서 공통 기능의 구현을 추가하는 것이 AOP이다. 핵심 기능에 공통 기능을 삽입하는 방법에는 다음 세 가지가 있다. 컴파일 시점에 코드에 공통 기능을 삽입하는 방법 클래스 로딩 시점에 바이트 코드에 공통 기능을 삽입하는 방법 런타임에 프록시 객체를 생성해서 공통 기능을 삽입하는 방법 첫 번째 방법은 AOP..
[spring] 빈 라이프사이클과 범위 요약 스프링 컨테이너는 초기화와 종료라는 라이프사이클을 갖는다. 이를 이해하고 라이프사이클의 범위에 대해 설명한다. //컨테이너 초기화 AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(AppContext.class); //컨테이너에서 빈 객체를 구해서 사용 Greeter g = ctx.getBean("greeter", Greeter.class); String msg = g.greet("스프링); System.out.println(msg); //컨테이너 종료 ctx.close(); 컨테이너 초기화 → 반 객체의 생성, 의존 주입, 초기화 컨테이너 종료 → 빈 객체의 소멸 스프링 빈 객체의 라이프사이클 스프링 컨테..
[spring] 컴포넌트 스캔 Overview 요약 스프링이 직접 크래스를 검색해서 빈으로 등록해주는 기능 정의 자동 주입과 함께 사용하는 추가 기능이 컴포넌트 스캔이다. 컴포넌트 스캔은 스프링이 직접 클래스를 검색해서 빈으로 등록해주는 기능이다. 설정 클래스에 빈으로 등록하지 않아도 원하는 클래스를 빈으로 등록할 수 있으므로 컴포넌트 스캔 기능을 사용하면 설정 코드가 크게 줄어든다. @Component 애노테이션으로 스캔 대상 지정 스프링이 검색해서 빈으로 등록할 수 있으려면 클래스에 @Component 애노테이션을 붙여야 한다. @Component 애노테이션은 해당 클래스를 스킨 대상으로 표시한다. import org.springframework //애노테이션 값을 주지 않으면 첫글자를 소문자로 바꾼 이름을 빈으로 사용(memne..
[spring] 의존 자동 주입 Overview 목적 의존 자동 주입에 대해 요약 설명 할 수 있어야 한다. 의존 자동 주입이란? 의존 대사을 설정 코드에서 직접 주입하지 않고 스프링이 자동으로 의존하는 빈 객체를 주입하는 것 스프링에서 의존 자동 주입을 설정하려면 @Autowired, @Resource, @Inject 애노테이션을 사용 @Autowired 애노태이션을 이용한 의존 자동 주입 자동 주입 기능을 사용하면 스프링이 알아서 의존 객체를 찾아서 주입한다. 예를 들어 자동 주입을 사용하면 아래 코드 처럼 설정에 의존 객체를 명시하지 않아도 스프링이 필요한 의존 빈 객체를 찾아서 주입한다 의존 자동 주입 전 @Bean public MemberDao memberDao{ return new MemberDao(); } @Bean pub..
[spring] 의존 주입 DI 보호되어 있는 글입니다.
[spring] 깃허브(GitHub) 연동 1.깃허브 (GitHub) 연동 새로운 Repositories를 생성합니다. Repository name 입력 -> Create Repository 클릭 https://github.com/사용자계정/저장소명.git으로 된 URL이 생성 됩니다. 스프링 우측 상단에 있는 Opne Perspective 버튼을 클릭 -> Git 클릭 Clone a Git repository 클릭 URI: 깃허브 저장소의 주소 입력 -> Host, Repository path가 자동으로 입력 -> 깃허브 아이디와 비밀번호를 입력 아직 브랜치가 없으므로 Next 버튼 클릭 Next 버튼 클릭 저장소가 생성이 됩니다 Ctrl + F8 -> 퍼스펙티브(Perspective)를 스프링으로 이동 프로젝트를 우 클릭 -> Team -> ..