목록전체 글 (431)
mojo's Blog
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cT0NmS/btrqAaj3zO2/9wywk2NvkbbUuAQ58BskHk/img.png)
회원 웹 기능 - 홈 화면 추가 1. controller 폴더 아래에 HomeController 클래스를 형성한 후에 다음과 같이 코드를 작성한다. package hello.hellospring.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @Controller public class HomeController { @GetMapping("/") public String home(){ return "home"; } } 2. [resources] -> [templates] 폴더 아래에 home.html 을 작성한 후 다음과 같이 코드를 작성..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/mpw5h/btrqAyKyaY0/DAk4MUgkXEradGKnRfb50k/img.png)
컴포넌트 스캔과 자동 의존관계 설정 1. controller 폴더 아래에 MemberController 클래스를 형성한다. 코드는 아래와 같이 작성한다. package hello.hellospring.controller; import hello.hellospring.service.MemberService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @Controller public class MemberController { private final MemberService memberService; @Autowired public MemberCo..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/UCAqJ/btrqnc9X8mX/aAt247Hz0NojKHJKTcS8VK/img.png)
비즈니스 요구사항 정리 데이터 : 회원ID, 이름 기능 : 회원 등록, 조회 아직 데이터 저장소가 선정되지 않음(가상의 시나리오) ※ 일반적인 웹 애플리케이션 계층 구조 컨트롤러 : 웹 MVC의 컨트롤러 역할 서비스 : 핵심 비즈니스 로직 구현 리포지토리 : 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 도메인 : 비즈니스 도메인 객체 ex) 회원, 주문, 쿠폰 등등 주로 데이터베이스에 저장하고 관리됨 ※ 클래스 의존관계 아직 데이터 저장소가 선정되지 않았기 때문에 인터페이스로 먼저 구현 클래스를 변경할 수 있도록 설계 데이터 저장소는 RDB, NoSQL 등등 다양한 저장소를 고민중인 상황으로 가정 개발 진행을 위해서 초기 개발 단계에서는 구현체로 가벼운 메모리 기반의 데이터 저장소를 사용 회..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/7GZjw/btrqu0fZgfU/GLpEZoMkxSQkuUamfeNCmK/img.png)
문제 링크 : 3197번: 백조의 호수 (acmicpc.net) 3197번: 백조의 호수 입력의 첫째 줄에는 R과 C가 주어진다. 단, 1 ≤ R, C ≤ 1500. 다음 R개의 줄에는 각각 길이 C의 문자열이 하나씩 주어진다. '.'은 물 공간, 'X'는 빙판 공간, 'L'은 백조가 있는 공간으로 나타낸다. www.acmicpc.net 문제 두 마리의 백조가 호수에서 살고 있었다. 그렇지만 두 마리는 호수를 덮고 있는 빙판으로 만나지 못한다. 호수는 행이 R개, 열이 C개인 직사각형 모양이다. 어떤 칸은 얼음으로 덮여있다. 호수는 차례로 녹는데, 매일 물 공간과 접촉한 모든 빙판 공간은 녹는다. 두 개의 공간이 접촉하려면 가로나 세로로 닿아 있는 것만 (대각선은 고려하지 않는다) 생각한다. 아래에는 세..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/crupom/btrqujmn1l9/DGBD53VOPUXhcOmoCUlEH0/img.png)
정적 컨텐츠 1. static 폴더 아래에 hello-static.html 파일을 만든다. 2. 아래와 같이 hello-static.html 파일에 코드를 작성한다. 정적 컨텐츠 입니다. 3. 실행시키고 크롬에 localhost:8080/hello-static.html 을 작성하면 다음과 같이 화면이 나타난다. 정적 컨텐츠의 원리 1. localhost:8080/hello-static 을 크롬에서 치면 내장 톰켓 서버가 요청을 받는다. 그 후에 요청 받은것을 스프링 컨테이너에 넘긴다. 컨트롤러 측에서는 hello-static이 존재하는지 찾는다. (하지만 존재하지 않음) 여기서 알 수 있는 점은 컨트롤러가 우선순위를 갖는다는 것을 알아두자. 2. 그렇다면 내부의 resources 안에 있는 static/..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/yqwSC/btrp8hjvIRA/g1CZCvNMZXRsKq9vxdOmNK/img.png)
프로젝트 생성 ※ 스프링 프로젝트 생성방법 1. https://start.spring.io 사이트에 들어간다. 2. Project, Language, Spring Boot, 그리고 Project Metadata 에 대한 선택이 필요하다. Project : Gradle Project 를 선택한다. Language : Java 를 선택한다. Spring Boot : 2.6.2 를 선택한다. (SNAPSHOT은 선택하지 않기) Project Metadata : 위와 같이 수정한다. 3. 오른쪽에 Dependencies 의 ADD DEPENDENCIES... 를 선택하여 아래와 같이 Spring Web, Thymeleaf 를 선택한다. 4. GENERATE 버튼을 클릭한다. 5. 아래와 같은 파일이 생성됨을 알..