
1. 홈 화면 추가 - localhost:8080 을 입력하면 나타나는 홈 화면을 만들 것이다. - 기존에 localhost:8080 를 입력하면 resources > static > index.html 을 보여줬다. - 하지만 Controller에 해당 주소("/")를 매핑하면 우선순위가 Controller > static 이므로 home.html로 이동한다. 이전글(https://laugh4mile.tistory.com/186?category=919488) 참고. 2. 등록 - MemberController에 메소드 생성 + 관련 html 작성. - MemberForm 클래스 생성. 이때 반드시 html의 input name="name"과 setter가 매칭되어야 한다. - ex) name - set..

1. DI 란? - 생성자에 @Autowired 가 있으면 스프링이 연관된 객체를 스프링 컨테이너에서 찾아서 넣어준다. - 이렇게 객체 의존관계를 외부에서 넣어주는 것을 DI (Dependency Injection), 의존성 주입이라 한다. - DI에는 필드 주입, setter 주입, 생성자 주입 이렇게 3가지 방법이 있다. 의존관계가 실행중에 동적으로 변하는 경우는 거의 없으므로 생성자 주입을 권장한다. Question 생성자 주입을 권장하는 이유는 무엇인가요? Answer 1. 순환 참조 방지 필드 주입이나 수정자 주입으로 DI할 경우 참조순환이 발생할 수 있다. 이는 실제로 메소드를 실행하기 전까지는 에러가 나는지 알 수 없다. 하지만, 생성자 주입을 통하여 DI할 경우 어플리케이션 실행단계에서 순..

1. 비즈니스 요구사항 정리 - 매우매우 간단히 진행할 거임. 데이터 : 회원 ID, 이름 기능 : 회원 등록, 조회 DB는 아직 정해지지 않음 - 일반적인 웹 애플리케이션 계층 구조 컨트롤러 : 웹 MVC의 컨트롤러 역할 서비스 : 핵심 비즈니스 로직 구현 (ex. ID 중복검사) 레포지토리 : DB 접근, 도메인 객체를 DB에 저장하고 관리 도메인 : 비즈니스 도메인 객체 (ex. 회원, 주문, 쿠폰 등등 주로 DB에 저장하고 관리됨) - 클래스 의존관계 DB가 정해지지 않았기 때문에, 우선 인터페이스로 구현 클래스를 변경할 수 있도록 설계. 향후에 RDB로 할지, JPA로 할지 구체적인 기술이 선정되면 바꿔끼울것임. 따라서 인터페이스를 정의하는것. 개발을 진행하기 위해서 초기 개발 단계에서는 구현체..

1. 정적 컨텐츠 - static 폴더에 html 파일 작성하면 끝. (ex. hello-static.html) - 해당 주소를 입력하면 Tomcat은 Controller에 관련 컨트롤러가 존재하는지 찾아본다. -> 없다. - 관련 컨트롤러가 존재하지 않으면 static/hello-static.html을 찾는다. 있으면 반환한다. 2. MVC와 템플릿 엔진 - MVC 란 : Model, View, Controller - controller에 메서드 작성 + template에 매핑되는 html 작성 - 해당 주소를 입력하면(@RequestParam() 이 있다면 쿼리스트링을 통해 넘겨줘야함) Tomcat은 Controller에 관련 컨트롤러가 존재하는지 찾아본다. -> 있다. - 모델에 정보를 담아 Vie..

0. IntelliJ 설치, Java 11 설치 1. h2 데이터베이스 1.4.200 버전 설치 https://www.h2database.com/html/download.html Downloads Downloads Version 2.0.202 (2021-11-25) Windows Installer (SHA1 checksum: f6f6f91c67075a41ce05bdfc4499ee987dacb02e) Platform-Independent Zip (SHA1 checksum: e4a6c2e54332304cb4acbe48b55f9421c7f4b870) Version 1.4.200 (2019-10-14), Last Stable Windows Installe www.h2database.com - 설치 후 윈도우는 ..

response 는 Data(MessageConverter) 와 HTML(ViewResolover) 가 있다. ViewResolver html파일을 응답할지 Data를 응답할지 결정해야 하는데 html 파일(우리가 쓰는건 jsp파일)을 응답하게 되면 ViewResolver가 관여하게 된다. 예를들어 설명하자면 DispatcherServlet이 컴포넌트를 스캔하다 A라는 클래스가 떴다. A 클래스는 hello() 라는 함수가 있다. hello()함수는 String "hello" 를 리턴한다. 이제 요청한 쪽으로 "hello"라는 메시지가 reponse 될것이다. 근데 "hello"라는 메시지가 아니라 hello 라는 파일을 받고 싶으면 어떡해? 이때 ViewResolver가 관여를 하여 hello의 앞에 ..

ApplicationContext DispatchServlet이 컴포넌트(src 폴더)를 스캔할 때 수 많은 객체들이 ApplicationContext에 등록된다. 이것을 IoC 라고 한다. 개발자가 직접 new 를 통해 객체를 생성하게 되면 해당 객체를 가르키는 레퍼런스 변수를 관리하기 어렵다. 따라서 (특정 어노테이션을 붙여서) 스프링이 직접 해당 객체를 관리한다. 이때 우리는 주소를 몰라도 된다. 왜냐하면 필요할 때 DI하면 되기 때문이다. 이제 필요한 곳에서 ApplicationContext에 접근하여 필요한 객체를 가져올 수 있다. ApplicationContext는 싱글톤으로 관리되므로 어디에서 접근하든 동일한 객체임을 보장한다. ApplicationContext의 종류는 2가지이다. serv..

FrontController 패턴 이전 포스트에서 작성한 web.xml의 Servlet/JSP 정의 및 매핑처리에 있어서 너무 많은 처리를 하게 되는것을 막기위해 Request 요청을 FrontController에 넘겨준다. 먼저, 특정 주소가(ex) .do) 들어오면 FrontController로 보내기로 약속한다. 웹서버에 들어오는 요청이 URI 나 Java파일이라면 바로 자원에 접근하지 못한다. 따라서 톰켓으로 보낸다. 톰켓으로 오는 순간 request 객체와 response 객체가 자동으로 생성된다. request 객체에는 요청한 사람의 정보가 담긴다. 이전포스트 (https://laugh4mile.tistory.com/177) 에서 설명했듯이 통신이 들어올때 맨 처음은 BufferedWriter..
- Total
- Today
- Yesterday
- laugh4mile
- Spring Boot
- 우선순위큐
- 문자열
- 객체지향
- map
- 백준
- 백트래킹
- g4
- DFS
- 구현
- PriorityQueue
- 다익스트라
- react
- Spring
- 알고리즘
- 그리디
- S3
- BFS
- 현꾸라지
- G5
- 자바
- react native
- java
- 리액트 네이티브
- 코딩새내기
- 리액트
- SWEA
- 시뮬레이션
- S2
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |