💡 본 게시글은 김영한님의 인프런(Inflearn) 강의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술에 대한 수강 기록용으로 작성되었습니다. 1. 비즈니스 요구사항 정리 ❗ 아직 데이터 저장소가 선정되지 않았다는 전제하에 MemberRepository를 인터페이스(interface)로 만들 것이다. 향후에 JDBC, MyBatis, JPA 등으로 바꿔 끼울 수 있도록 인터페이스(interface)로 설정해두자. 컨트롤러(controller): API 생성 시 쓰이는 등 웹 MVC 컨트롤러 역할 서비스(service): 핵심 비즈니스 로직 구현 리포지토리(repository): 데이터베이스에 접근하여 도메인 객체를 DB에 저장 및 관리 도메인(domain): 회원,주문,쿠폰 등..
💡 본 게시글은 김영한님의 인프런(Inflearn) 강의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술에 대한 수강 기록용으로 작성되었습니다. 1. 정적 컨텐츠 파일을 웹 브라우저에 그대로 내려주는 것을 말한다. 웹 브라우저에서 hello-static.html을 요청하면 → 내장 톰캣 서버에서 스프링 컨테이너로 요청을 넘기게 된다. 이때 "hello-static" 관련 컨트롤러(controller)를 찾아보는 것이 1순위이나, 존재하지 않을 경우 resources/static 폴더 하위에서 해당 파일을 찾아 전달한다. 2. MVC와 템플릿 엔진 2-1. 동적 컨텐츠 JSP, PHP와 같은 템플릿 엔진들은 HTML을 서버에서 프로그래밍해 동적으로 바꿔 내려주는 역할을 한다. 2-..
💡 본 게시글은 김영한님의 인프런(Inflearn) 강의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술에 대한 수강 기록용으로 작성되었습니다. 1. 프로젝트 생성 1-1. 스프링 부트(Spring Boot) 버전 'SNAPSHOT'은 아직 개발 중인 버전이다. 'M(Milestone)'은 정식 릴리즈 전 사용자 테스트 버전을 말한다. 별도 표기 없는 것이 바로 정식 릴리즈 된 버전으로, 안정성 높은 스프링 라이브러리를 제공한다. 1-2. 프로젝트 메타데이터 Group은 com.reminder와 같이 대개는 기업의 도메인 주소를 작성하는 란이다. Artifact는 빌드돼 나오는 프로젝트 결과물의 이름을 지칭한다. 2. 라이브러리 살펴보기 ❗ 그레이들(Gradle)은 의존관계에 있..
1. 오류 > Could not resolve all files for configuration ':classpath'. > Could not resolve org.springframework.boot:spring-boot-gradle-plugin:3.1.3. Required by: ... 인텔리제이(IntelliJ) 환경에서 프로젝트를 실행하자마자 만난 오류였다. 2. 원인 ❗ 스프링 이니셜라이저(Spring Initializr): https://start.spring.io ❗ 스프링부트(Spring Boot) 3.0 이상 버전에서는 Java 17을 필요로 한다. 스프링 이니셜라이저(Spring Initializr)에서 선택했던 Spring Boot/Java 버전간 호환성의 문제였다. 3. 해결 3-1..
javax.mail.AuthenticationFailedException: 535-5.7.8 Username and Password not accepted 구글(Google)은 지난 2022년 5월 30일부터 '보안 수준이 낮은 앱'을 더 이상 지원하지 않는다: https://support.google.com/accounts/answer/6010255 기존에는 메일 발송을 치르기 위해 '보안 수준이 낮은 앱의 액세스'만 기본값 '사용 안 함'에서 '사용함'으로 바꿨다면, 이제는 해당 설정을 대신할 방법이 필요해진 것이다. 방법은 다음과 같다. 예외메시지. 535-5.7.8 Username and Password not accepted ✅ 해결방법: 발송 주체가 되는 계정으로 로그인한 후 ①'Google ..
데스크탑에서 작업한 프로젝트를 랩탑에서 실행시켜 보고자 했으나, @Slf4j 어노테이션 통해 전역에 활용했던 log에서 몇 백 개의 에러를 만났다. 구글링하던 과정에서 Maven Dependencies 목록 중 lombok-1.18.xx.jar 파일을 찾아 우클릭 → Run as → Java Application 선택하여 프로세스를 진행하라는 해결 사례들을 찾을 수 있었지만, 인스톨러 창으로 넘어가지 못한 채 'Selection does not contain a main type'이라는 에러메시지 하나를 더 마주할 뿐이었다. 이에 아래와 같은 방법으로 각각의 에러를 해결하게 됐다. 에러메시지1. Selection does not contain a main type ✅ 해결방법: 깃(Git) 레포지토리를 ..