![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cAyPzo/btsEAb3aDJR/triasH5LX1TZBr3JILx6J0/img.png)
회원 객체 회원 리포지토리 인터페이스 회원 리포지토리 메모리 구현체 회원 리포지토리 테스트 케이스 작성 개발한 기능을 실행해서 테스트 할 때 자바의 main 메서드를 통해서 실행하거나, 웹 애플리케이션의 컨트롤러를 통해서 해당 기능을 실행한다. 이러한 방법은 준비하고 실행하는데 오래 걸리고, 반복 실행하기 어렵고 여러 테스트를 한번에 실행하기 어렵다는 단점이 있다. 자바는 JUnit이라는 프레임워크로 테스트를 실행해서 이러한 문제를 해결한다. 테스트 케이스 작성은 다음 글에서 확인할수 있습니다. -> 회원 리포지토리 테스트 케이스 작성
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/ccKZ6p/btsEBpfi8yP/dby2ESRVk3iIQMaqGAkmek/img.png)
비즈니스 요구사항 정리 회원 도메인과 리포지토리 생성 회원 리포지토리 테스트 케이스 작성 회원 서비스 개발 회원 서비스 테스트 비즈니스 요구사항 정리 데이터 : 회원ID, 이름 기능 : 회원 등록, 조회 아직 데이터 저장소가 선정되지 않음(가상의 시나리오) 컨트롤러 : 웹 MVC의 컨트롤러 역할 서비스 : 핵심 비즈니스 로직 구현 리포지토리 : 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 도메인 : 비즈니스 도메인 객체, 예) 회원, 주문, 쿠폰 등등 주로 데이터베이스에 저장하고 관리됨 아직 데이터 저장소가 선정되지 않아서, 우선 인터페이스로 구현 클래스를 변경할 수 있도록 설계 데이터 저장소는 RDB, NoSQL 등등 다양한 저장소를 고민중인 상황으로 가정 개발을 진행하기 위해서 초기 개발..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/KsylL/btsEy52sR8p/fyYEULgNyDWlQQALYBRSDK/img.png)
API API는 "Application Programming Interface"의 약자로, 두 개의 소프트웨어 애플리케이션이 서로 상호 작용하기 위한 인터페이스를 제공하는 방법이나 규약을 가리킵니다. 이는 두 애플리케이션이 서로 통신할 수 있도록 데이터 및 기능을 공유하고 사용할 수 있게 해줍니다. @ResponseBody 문자 반환 @ResponseBody 를 사용하면 뷰 리졸버(viewResolver)를 사용하지 않음. (MVC 동작시 사용) 대신에 HTTP의 BODY에 문자 내용을 직접 반환(HTML BODY TAG를 말하는 것이 아님) @ResponseBody 객체 반환 @ResponseBody를 사용하고, 객체를 반환하면 객체가 JSON으로 변환됨 @ResponseBody 사용 원리
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/T7D9e/btsEAjscrDA/MrQOH8yC6VXPU537KY7UQ0/img.png)
MVC MVC는 "Model-View-Controller"의 약자로, 소프트웨어 아키텍처 패턴 중 하나입니다. 이 패턴은 소프트웨어를 세 가지 주요 구성 요소로 나누어 개발하는 방법을 제공하여 애플리케이션의 유지 보수성과 확장성을 향상시킵니다. 여기서 각 요소는 특정한 역할을 수행합니다: Model 애플리케이션의 데이터와 비즈니스 로직을 나타냅니다. 모델은 데이터의 상태를 관리하고, 데이터의 변경 및 조작을 담당합니다. 이러한 데이터 변경은 뷰 및 컨트롤러에게 통보됩니다. Controlloer 사용자 입력을 처리하고 그에 따라 모델과 뷰를 업데이트하는 역할을 합니다. 컨트롤러는 사용자의 요청을 받아 모델에게 전달하고, 모델의 데이터 변경을 감지하여 뷰를 업데이트합니다. View 사용자 인터페이스(UI)를..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bwYX3G/btsEuQSIAiK/6mmtQUtKvbnGOFOqs1Ln11/img.png)
정적 컨텐츠 MVC의 템플릿 엔진 API 정적 컨텐츠 정적컨텐츠는 웹페이지나 앱 내에서 동적으로 생성되거나 변경되지 않고 고정된 형태로 제공되는 콘텐츠를 말합니다. 이러한 콘텐츠는 사용자의 상호작용에 따라 변경되지 않으며, 한 번 생성된 후에는 주로 서버에서 클라이언트로 직접 제공됩니다. 대표적인 예로는 HTML 문서, 이미지 파일, CSS 파일, JavaScript 파일 등이 있습니다. 웹 브라우저에서 hello-static.html 호출시 내장 톰캣 서버가 스프링으로 전달하고, 1. 우선순위로 매핑된 컨트롤러가 있는지 찾는다. 없으면 2. resorces 내부에 있는 hello-static.html을 찾고 있으면 웹브라우저로 바로 반환을 해준다.
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/b9FN7R/btsElh4rK8b/FqP067MgK8FdSzTxCJ0EjK/img.png)
윈도우 운영체제에서 gradle로 빌드하고, 빌드된 jar 파일을 실행하는 방법을 알아보도록 하자. 1. 빌드 방법 1) 스프링 부트로 만들어 놓은 gradlew 파일을 찾는다. 2) cmd, intellij terminal로 해당 결로로 이동 3) 'gradlew build' 명령어를 입력하면, 빌드가 진행됩니다. 2. jar 실행 방법 1) 위 과정을 거치면, \build\libs 폴더 내에 jar 파일이 생성됩니다. 2) build\libs 경로로 이동 후 java -jar 명령어로 실행합니다. 3) 종료 Ctrl + C ▷ Ctrl + C 종료 안먹힐 때 [SpringBoot] 윈도우에서 실행중인 jar 종료 스프링부트로 앱을 실행하고 종료가 안돼서 8080 포트가 계속 살아있었다. 1) 해당 포..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/beIxqu/btsEiWr8VeK/l7OKPUMEZH32ux6VhEMYbK/img.png)
인텔리제이 IDE를 통해 공부 중인 개발자로서 Github에 공부기록을 남기기 위해 인텔리지에와 Github를 연동하려고 한다. 1. IntelliJ Github 연동 설정 1) 깃 실행 설정 - File > Settings 클릭 - 설치 했었던 Git의 실행파일 경로를 지정 2) 깃허브 계정 연동 - 깃허브와 인텔리제이 연동을 위해 기존에 생성하였던 깃허브 계정을 등록 한다. 2. IntelliJ Github 연동 프로젝트 명으로 자동으로 레포 생성하여 깃허브 연동 - VCS > Enable Version Control Integration 3. Commit 및 원격 레포지토리 Share
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/031cG/btsEmNUE4CS/EUOJrXUVfEaFpJU1tQvRxK/img.jpg)
IntelliJ(인텔리제이) Spring Boot DevTools 적용하기 Spring Boot DevTools는 소스 변경이 발생할 때마다 빠르게 자동 빌드해줘서 바로바로 반영 결과를 확인할 수 있도록 도와주는 유용한 툴입니다. STS에서는 Dependency만 추가하면 잘 동작하던 DevTools가 인텔리제이 (IntelliJ)에서는 최초 약간의 설정을 해줘야 정상 동작을 합니다. 그 설정은 아래와 같습니다. 1. 의존성(Dependency) 추가 먼저 Spring Boot DevTools의 의존성을 추가를 해야 합니다. Gradle 프로젝트는 build.gradle 파일에 아래와 같이 dependecies 아래 developmentOnly 'org.springframework.boot:spirng-..
- Total
- Today
- Yesterday
- 엑셀 파일 추출
- 렌더링 과정
- replaceAll
- 배열 만들기3
- 콜백 큐
- 블록스코프
- nodelist
- rep;ㅁce
- 마진과 패딩의 차이점
- 신입개발자 면접 준비
- 대소문자 변환
- 브라우저의 기본 구조
- SQL 개발자
- StringBuilder
- 배열만들기1
- 스코프
- startsWith()
- 호이스팅
- useeffet
- Java
- 문자열 반복하기
- 중첩스코프
- 프로그래머스
- Object.clone()
- fsd 아키텍처
- replace와 replaceAll의 차이점
- SQLD
- Replace
- n 번째 원소부터
- fsd 구조
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |