김영한 님의 spring 입문 강의를 듣고 배운 내용을 정리하려고 합니다. https://start.spring.io/위 사이트로 가서 프로젝트를 생성해줍니다. 설정은 다음과 같이 했습니다. 빌드 툴 같은 경우에는 Gradle로 설정하였습니다. 최근 Maven
static 파일에 index.html파일을 만들자서버를 실행시키면 다음과 같이 출력이 된다. spring에서는 static 폴더에 있는 index.html을 찾아 welcome page로 지정하기에 별 다른 설정 없이 해당 화면이 실행된 것을 확인할 수 있다. hel
static디렉토리에 hello-static.html을 만든다.서버를 실행시켜 http://localhost:8080/hello-static.html 에 접속해보면 다음과 같이 결과가 나온다. 말 그대로 정적 컨텐츠라서 안에 특별히 프로그래밍을 할 수 없다.
MVC: model, view, controller기존 model1 방식으로는 view에서 controller의 기능까지 다 구현했었다.(jsp)지금은 따로 분리해서 구현 (- 선택과 집중)HelloController에 다음 코드를 추가한다. template디렉토리에
클라이언트의 요청에 대한 response는 크게 2가지가 있다.1\. html2\. api앞에서는 html을 response하는 것에 대해 다뤄보았고 이번에는 api를 제공해 줄것이다. HelloController에 다음 내용을 추가하자페이지의 소스를 확인하면 다음과
비지니스 요구사항은 다음과 같다.데이터: 회원 ID, 이름기능: 회원등록, 조회DB: 아직 선정되지 않음(가상의 시나리오)웹 어플리케이션의 구조는 다음과 같다.클래스 의존관계는 다음과 같은데 DB가 선정되지 않았기에 인터페이스로 구현 클랫스를 변경할 수 있도록 설계하였
저번에 만든 레파지토리를 사용하여 회원 서비스를 만들기 위해 service 디렉토리를 생성하였다. 멤버 서비스는 다음과 같이 구현한다. 멤버 서비스의 기능은 간단하게 회원 가입 및 중복 회원 검출, 전체 회원 조회, id로 멤버 검색이다. 해당 서비스가 잘 돌아가는데
회원 컨트롤러가 회원 서비스와 레파지토리를 사용할 수 있게 의존 관계를 준비하자생성자에 @Autowired가 있으면 스프링이 연관된 객체를 스프링 컨테이너에서 찾아서 넣어준다(dipendency injection). 현재 위 코드에 @Controller가 있으므로 해당
먼저 home화면을 다음과 같이 예제 코드를 사용하여 구성하였다.home컨트롤러에 @GetMapping 추가하여 home.html을 연결하였다. 우선 순위 상 index.html보다 위에 있으므로 index.html이 아닌 home.html이 띄워지게 된다. http&
회원 등록, 회원 목록 페이지를 templates하위의 members 디렉토리를 만들어 관리한다. 해당 디렉토리에 createMemberForm.html을 만든다. 컨트롤러에 해당 페이지와 url을 연결시켜준다.코드를 보면 /members/new 주소로 들어가면(get
전체 서비스에 대한 테스트 코드를 작성해 보도록 하겠습니다. test/hello.hellospring/service 디렉토리에 MemberServiceIntegrationTest 파일을 생성합니다. 기존 테스트 코드를 복/붙 해줍니다. 앞에 @SpringBootTest
build.gradle에 h2와 jdbc를 추가합니다.스프링부트 데이터베이스 연결 설정을 추가합니다.resources/application.properties에 다음 코드를 추가합니다. 이제 jdbc를 사용한 멤버 레파지토리를 만들어 보겠습니다. repository 디
JDBC는 JDBC API에서 본 반복 코드를 대부분 제공해줍니다. 하지만 SQL문은 직접 작성해야 합니다. JdbcTemplateMemberRepository를 만들어줍니다. config 파일도 수정해 줍니다. 기존 jdbc memberrepository에서 jdbc
jdbc template을 사용하면 코드의 반복을 줄일 수 있지만 아직 sql을 직접 작성해야 하는 문제가 있습니다. 하지만 JPA를 사용하면 sql문을 작성하지 않아도 되고 객체 중심으로 설계를 생각할 수 있습니다. 고로 개발 생상선을 높일 수 있다는 장점이 있습니다
스프링 부트와 JPA만 사용해도 개발 생산성이 증가하지만 스프링 데이터 JPA를 사용하면 리포지토리 구현없이 인터페이스 만으로 개발이 가능합니다. 따라서 개발자는 핵심 비지니스 로직 개발에만 집중할 수 있습니다. 일단 SpringDataJpaRepository를 만듭니
회원가입, 회원 조회 기능에 시간 측정 기능은 핵심 관심 사항이 아닙니다. AOP: Aspect Oriented Programming공통 관심 사항(cross-cutting concern) vs 핵심 관심 사항(core concern) 분리hellospring하위 디렉