import org.junit.jupiter.api.Test;import org.junit.jupiter.api.extension.ExtendWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;import org.springframework.test.context.junit.jupiter.SpringExtension;import org.springframework.test.web.servlet.MockMvc;import static org.springframework.test.web.servlet.reque..
스프링부트
저번 포스팅에는 회원 도메인과 리포지토리를 만들어 봤다. 오늘은 내가 작성한 소스 코드가 의도된 대로 정확히 작동하는지 검증하는 테스트 케이스를 작성해보자 * 테스트 케이스(Test case); 흔히 유닛 테스트 또는 단위 테스트라고 부르며, 하나의 모듈을 기준으로 독립적으로 진행되는 가장 작은 단위의 테스트이다. 여기서 모듈은 애플리케이션에서 작동하는 하나의 기능 또는 메소드로 이해할 수 있다. 회원 리포지토리 테스트 케이스 작성
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTzsoX%2FbtsrhHzqxU8%2FEcbn6PV6ozs8dvwJRucJC0%2Fimg.png)
비즈니스 요구사항 정리 이번 시간에는 비즈니스 요구사항을 정리할 건데, 가장 쉬운 예제로 진행할 거다. 이 강의 목표가 복잡한 비즈니스를 하는 강의가 아니라 단순한 예제를 가지고 스프링을 어떤 식으로 활용하여 개발을 하는지, 어떻게 동작하는지 알아보는 것이기 때문이다. [요구사항] 데이터 : 회원ID, 이름 기능 : 회원 등록, 조회 전제조건 : '아직 데이터 저장소가 선정되지 않았다'라는 가상 시나리오. 즉, 개발자가 개발을 해야 하는데 아직 DB 선정이 되지 않은 상황이다. [구조] 컨트롤러 : 웹 MVC에서 클라이언트의 요청을 처리하고 응답을 반환하는 역할이다. 서비스 : 핵심 비즈니스 로직을 구현하는 역할이다. 예를 들어, 회원가입 시 중복 여부를 확인하는 로직은 서비스에서 처리한다. 리포지토리 ..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb9l7g3%2Fbtskiy4xJGJ%2F8SSRkL1tN1ip7qHOaqMXbK%2Fimg.png)
이번 시간에는 스프링 웹 개발 기초에 대해서 알아보겠다. 웹을 개발하는 방법은 크게 정적 컨텐츠, MVC와 템플릿 엔진, API로 나눌 수 있다. 정적 컨텐츠 : 정적 파일(HTML, CSS, JavaScript)을 사용하여 웹 페이지를 구성하며, 서버에서 별도의 처리 없이 파일을 웹 브라우저에 전송 MVC와 템플릿 엔진 : MVC 패턴(Model-View-Controller)을 사용하여 웹 애플리케이션을 구성하며, 템플릿 엔진(Thymeleaf, Spring MVC)을 사용하여 동적 페이지를 구성 API : JSON, XML 등 데이터 포맷을 사용하여 데이터를 제공하는 방식 정적 컨텐츠 SpringBoot 레퍼런스 독에 접속하여 Static content에 대한 정보를 찾아보면, '기본적으로 Sprin..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRze2c%2FbtshBlTwgDG%2FKPowF1H27d7FKBLGTHirL0%2Fimg.png)
프로젝트 생성 강의를 시작하기 전에 Java 17 버전과 IntelliJ IDE가 설치되어 있어야 한다. 이 강의는 Java 11 버전을 기반으로 작성되었지만, 최근 Spring Initializr에서 Java 11 버전과 Spring Boot 2.x 버전을 지원하지 않기 때문에 Java 17 버전과 Spring Boot 3.0 이상 버전으로 진행해야 한다. *Spring Initializr란, 스프링 기반 프로젝트를 빠르게 시작할 수 있는 온라인 도구이다. 이 도구는 스프링 프레임워크와 관련된 의존성과 프로젝트 구조를 선택하여 초기 프로젝트를 쉽게 생성할 수 있으며, 이를 통해 개발자는 복잡한 설정과 의존성 관리에 시간을 낭비하지 않고 주요 비즈니스 로직에 집중할 수 있다. *스프링 부트 3.0을 선택..
본 강의에서는 프로젝트 생성부터 환경설정, 웹 MVC, DB 접근 기술같은 웹 개발 기초에 대한 커리큘럼을 제공한다. - 섹션 1 : 프로젝트 환경설정 - 섹션 2 : 스프링 웹 개발 기초 - 섹션 3 : 회원 관리 예제 - 백엔드 개발 - 섹션 4. 스프링 빈과 의존관계 - 섹션 5. 회원 관리 예제 - 웹 MVC 개발 - 섹션 6. 스프링 DB 접근 기술 - 섹션 7. AOP - 섹션 8. 다음으로
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbenxPs%2FbtshCdhZKPI%2FxncExDbpwpooV30keRWwJK%2Fimg.png)
❓ 수강 이유 21년 10월 1일 처음으로 개발자로 취직에 성공했다. 그리고 24년 3월 18일, 시간이 2년이 넘게 흘렀다. 그때랑 비교했을 때 난 많이 성장했을까? 속상하지만 아니다. 많은 프로젝트를 담당하며 빠르게 성장할 거라는 예상과는 달리, 2년 넘게 달팽이만 잡고 있었다. 사실 열심히 하지 않은 것은 내 탓이기 때문에 속상하다는 생각보단 내 스스로가 너무 미련하고 한심하게 다가왔다. 2년이라는 시간동안 뭘 했지? 하고 생각해보면 항상 '아직 괜찮아' , '아직 늦지 않았어' 라며 희망회로만 돌리며 아무것도 하지 않은 지난 날들의 과거들이 먼저 떠오른다. 2년이라는 시간이 결코 짧은 시간이 아니기 때문에 지난 날들이 너무 후회됐지만, 후회할 시간에 조금이라도 더 공부해야지..! 하는 마음가짐을 ..