H2DB를 이용할 건데 이미 설치되어 있어서 등록부터 진행하겠다. test2라는 이름으로 데이터 베이스를 등록하고 이후 사용을 할 땐 충돌의 위험이 있으니 아래와 같이 url을 변경한 뒤 사용한다. (파일에 직접 접근하는 게 아닌 톰캣을 통해서 접근하게 됨) jdbc:h2:tcp://localhost/~/test2 member 테이블 생성 drop table if exists member CASCADE; create table member ( id bigint generated by default as identity, name varchar(255), primary key (id) ) drop table if exists member CASCADE; create table member ( id bigi..
인프런 강의/김영한 Spring
1. 홈 화면 추가 @Controller public class HomeController { @GetMapping("/") public String home() { return "home"; } } Hello Spring 회원 기능 회원 가입 회원 목록 스프링 컨테이너에서 관련 컨트롤러를 먼저 찾고 없으면 static contents로 넘어가게 된다. Controller가 우선순위이기 때문에 정적 컨텐츠가 아닌 localhost:8080/ url에 매치되는 컨트롤러를 탄다. 2. 회원 등록 화면 @Controller public class MemberController { private final MemberService service; @Autowired public MemberController(M..
스프링이 실행될 때 스프링 컨테이너라는 통이 생성된다. @Controller 어노테이션이 있으면 MemberController 객체를 생성해서 컨테이너에 넣어두고 스프링이 빈으로 관리한다. 스프링 빈 등록하는 2가지 방법 Component Scan @Component: 컨테이너에 스프링 빈으로 등록하는 어노테이션 @Service, @Controller, @Repository에 @Component가 포함되어 있다. @Autowired: 객체를 연결시키는 어노테이션 (연관관계 설정) 컴포넌트 스캔은 실행되는 Application과 같은 패키지 하위 내에서만 작동한다. 스프링은 컨테이너에 스프링 빈을 등록할 때, 기본으로 싱글톤으로 등록한다 -> 유일하게 하나만 만들어서 공유 자바 코드로 직접 스프링 빈 등록..
1. 비즈니스 요구사항 정리 2. 회원 도메인과 리파지토리 만들기 1. MemberRepository 인터페이스 생성 public interface MemberRepository { Member save(Member member); Optional findById(Long id); Optional findByName(String name); List findAll(); } 2. 인터페이스를 구현하는 MemoryMemberRepository 생성 public class MemoryMemberRepository implements MemberRepository { // key=id, value=Member 형식으로 저장 private static Map store = new HashMap(); private..
스프링의 기본기를 탄탄히 하기 위해 김영한의 Spring 강의를 듣기 시작했다. 원래 알던 내용이 많지만 동작 원리에 대해 더 심층적으로 이해하기 위해 공부하려고 한다. 정적 컨텐츠 (static) static 폴더에 hello-static.html 파일을 생성한다. static content http://localhost:8080/hello-static.html 경로를 치고 들어가면 해당 뷰로 연결된다. hello-static이라는 컨트롤러가 없기 때문에 static에 있는 hello-static이라는 이름의 html 파일을 찾음 템플릿 엔진 MVC: Model, View, Controller 템플릿 엔진: 동적으로 생성되는 웹 페이지나 문서의 구조와 내용을 분리하여 관리하는 도구 템플릿 파일과 데이터..