goosegoose.DRAM
article thumbnail
[김영한::스프링 입문] 회원 관리 예제 - 웹 MVC 개발
Spring/스프링 입문 2023. 2. 19. 23:01

회원 웹 기능 - 조회 회원 웹 기능 - 홈 화면 추가 홈 컨트롤러 추가 controller(package) - HeomController(class 추가) template(폴더) - home.html(파일생성) Hello Spring 회원 기능 회원 가입 회원 목록 http://localhost:8080을 실행하면 아래처럼 잘 나온다. 그런데 저번 실습에선 실행 후 welcome page로 간다며 index.html로 간다고 설명했다. 사실 이들 간에도 우선순위가 있다. 먼저, 요청이 오면 스프링 컨테이너를 뒤져 관련 컨트롤러를 찾는다. 만약 없을 경우 index.html 파일을 찾아 보여주지만, 위 실습에선, mapping 된 관련 컨트롤러가 존재하기에 무사히 로드된 것이다. 회원 웹 기능 - 등록 ..

article thumbnail
[김영한::스프링 입문] 스프링 빈과 의존관계 - 컴포넌트 스캔과 자동 의존관계 설정
Spring/스프링 입문 2023. 2. 17. 12:40

스프링 빈을 등록하고, 의존관계 설정하기 컨포넌트 스캔과 자동 의존관계 설정 자바 코드로 직접 스프링 빈 등록하기 컴포넌트 스캔과 자동 의존 관계 설정 회원 컨트롤러가 회원 서비스와 회원 레포지토리를 사용할 수 있게 의존관계를 준비하자. 회원 컨트롤러에 의존관계 추가 생성자에 @Autosired가 있으면 스프링이 연관된 객체를 스프링 컨테이너에서 찾아 넣어준다. 이렇게 객체 의존 관계를 외부에서 넣어주는 것을 DI(Dependency Injection) 의존성 주입이라고 한다. 이전 테스트에서는 개발자가 직접 주입했지만 이번 실습에선 @Autosired에 의해 스프링을 주입했다. 오류발생 위 코드를 실행해 보니 MemberService를 찾을 수 없다는 에러가 발생했다. MemberService가 스프링..

article thumbnail
[김영한::스프링 입문] 회원 관리 예제 2
Spring/스프링 입문 2023. 2. 14. 17:45

기능이 원하는 대로 동작하는지 알아보기 위해 검증을 해야 한다. 이럴 때 테스트 케이스를 사용한다. 회원 리포지토리 테스트 케이스 작성 개발한 기능을 실행해서 테스트 할 때 자바의 main 메서드를 통해서 실행하거나, 웹 애플리케이션의 컨트롤러를 통해서 해당 기능을 실행한다. 이러한 방법은 준비하고 실행하는데 오래 걸리고, 반복 실행하기 어렵기 때문에 여러 테스트를 한 번에 실행하기 어렵다.(단점) 자바는 JUnit 이라는 프레임워크로 테스트를 실행해서 이러한 문제를 해결했다. test - java - hello.hellospring(package) - repository(package) - MemoryMemberRepositoryTest(calss)를 하나 만들었다. class MemoryMemberR..

article thumbnail
[김영한::스프링 입문] 회원 관리 예제 1
Spring/스프링 입문 2023. 2. 11. 20:17

비즈니스 요구사항 정리 데이터 : 회원ID, 이름 기능 : 회원 등록, 조회 아직 데이터 저장소가 선정되지 않음 (가정) 일반적인 웹 어플리케이션 계층 구조 컨트롤러 : 웹 MVC읭 컨트롤러 역할 서비스 : 핵심 비즈니스 로직 구현 리포지토리 : 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 도메인 : 비즈니스 도메인 객체, ex) 회원, 주문, 쿠폰 등등 주로 데이터베이스에 저장하고 관리됌. 클래스 의존 관계 아직 데이터 저장소가 선정되지 않아서 우선 인터페이스로 구현 클래스를 변경할 수 있도록 설계 데이터 저장소는 RDB, NoSQL, 등등 다양한 저장소를 고민중인 상황으로 가정 개발을 진행하기 위해서 초기 개발 단계에서는 구현체로 가벼운 메모리 기반의 데이터 저장소 사용. 회원 도메인과 ..

article thumbnail
[김영한::스프링 입문] 스프링 웹 개발 기초
Spring/스프링 입문 2023. 2. 10. 21:46

정적 컨텐츠 그냥 파일을 웹 브라우저에 올려주는것. https://docs.spring.io/spring-boot/docs/2.3.1.RELEASE/reference/html/spring-boot-features.html#boot-features-spring-mvc-static-content Spring Boot Features Graceful shutdown is supported with all four embedded web servers (Jetty, Reactor Netty, Tomcat, and Undertow) and with both reactive and Servlet-based web applications. It occurs as part of closing the applicatio..

article thumbnail
[김영한::스프링 입문] View 환경설정
Spring/스프링 입문 2023. 2. 9. 22:54

Welcome Page 만들기 "resources/static/index.html" 이 경로에 index.html 이라고 넣어두면 스프링 부트에서 이를 welcome Page로 인식한다. (welcome page는 도메인을 누르고 들어왔을 때 보이는 첫화면.) static 아래에 index.html 파일을 만들고 첫 페이지! 잘 떴답니당 아래의 내용을 적은 뒤 다시 실행시키면 스프링 부트는 스프링 생태계 자체를 감싸, 스프링의 거대한 기능들을 편리하게 사용할 수 있도록 해준다. 그러나 스프링은 너무나 크기 때문에 전부를 공부한다는 건 어려운 일이다. 그래서 필요한 걸 찾아 사용할 줄 아는 능력이 중요하다 궁금한 게 생겼을 땐 아래 사이트에 들어간다. https://spring.io/ Spring | Ho..

article thumbnail
[김영한::스프링 입문] 프로젝트 생성
Spring/스프링 입문 2023. 2. 9. 21:19

H2 프로젝트 생성 사전 준비물 : Java11 설치, IDE(InteliJ 또는 Eclipse) Spring Project 생성 스프링 부트 스타터 사이트로 이동하여 Spring Project를 생성할 수 있다. https://start.spring.io/ Project (필요한 라이브러리를 가져오고, 빌드하는 Life Cycle까지 관리해 주는 툴) Maven : 과거에 자주 씀 Gradle : 요즘 자주 쓰는 추세. Language Java : 선택 Kotlin Groovy Spring Boot : 버전 선택 SNAPSHOT : 아직 만들고 있다는 의미. M1 : 정식버전이 아니라는 의미 ( 처음 들어갔을 때, 그대로 프로젝트를 생성해도 될 것 같다.) Project Metadata Group : ..