전체 글 133

[스프링 입문] 섹션 3.3 회원 관리 예제 (회원 리포지토리 테스트케이스 작성)

3.3.0 개발한 기능 test 하는 방법 1) main 메소드 실행 (ex. save가 정상 동작 하는지) 2) 웹 애플리케이션 컨트롤러 사용 위의 2가지 방법은 다음과 같은 단점이 있다. 1) 반복적으로 test 하기 어려움 2) 여러 test case를 한번에 실행하기 어려움 자바에서는 junit 프레임 워크로 test code를 만들고, test code 를 실행하여 위의 문제를 해결한다! 3.3.1 테스트 케이스 작성하기 앞서 섹션 3.2 에서 작성한 repository 클래스가 실제로 동작하는지 검증하기 위한 테스트 케이스를 작성해보고자 한다. test > java > hello.hellospring 에 repository 패키지 만든다. (대부분 같은 이름으로 만듦) repository 패키..

[스프링 입문] 섹션 3.2 회원 관리 예제 (회원 도메인과 리포지토리 만들기)

3.2.1 회원 도메인 만들기 앞선 섹션 3.1의 비즈니스 요구사항을 바탕으로, 회원 도메인과 리포지토리를 만들어보고자 한다. src > main > java > hello.hellospring 에 domain 패키지를 만든다. domain 패키지에 Member 클래스를 생성한다. 먼저, 2가지 데이터 요구사항이었던 ID / 이름 필드를 작성한다. private Long id; private String name; - id : 고객이 정하는 id 가 아니라, 데이터를 구분하기 위해 시스템이 임의로 정하는 값 - name : 사용자가 등록하는 이름 다음으로, Getter and Setter 로 메소드를 생성한다. public Long getId(){ return id; } public void setId(..

[스프링 입문] 섹션 3.1 회원 관리 예제 (비즈니스 요구사항 정리)

3.1.0 회원 관리 예제 - 백엔드 개발 순서 1) 비즈니스 요구사항 정리 2) 회원 도메인 / 리포지토리 생성 (회원 객체 저장소) 3) 리포지토리 동작 test case 만들기 4) 회원 서비스 개발 5) junit 테스트 프레임 워크로 회원 서비스 test 3.1.1 회원 관리 예제 - 비즈니스 요구사항 - 데이터 : 회원 ID / 이름 - 기능 : 회원 등록 / 회원 조회 - 가상 시나리오 : data 저장소가 결정되지 않은 상황 / RDB, NoSQL 등 고민중인 상황 ( 어떠한 database로 할지 선정되지 않았지만, 개발을 해야 함) 3.1.2 웹 애플리케이션 계층 구조 1) 컨트롤러 - 웹 MVC 컨트롤러 역할 - API 만들 때, 컨트롤러 역할 2) 서비스 - 핵심 비즈니스 로직이 들..

[스프링 입문] 섹션 2.3 스프링 웹 개발 기초 (API)

2.3.1 API 방식 ( 문자 전달 ) Spring 에서의 API 방식 코드를 작성해보자. main > java > controller 패키지 > HelloController.java 에 다음과 같은 코드를 추가하였다. @GetMapping("hello-string") @ResponseBody public String helloString(@RequestParam("name") String name){ return "hello " + name; } @ResponseBody API 방식에서는 상단에 @ResponseBody 를 작성해야 한다. - HTTP BODY 에 데이터 직접 반환 ( html body tag 의미하지 않음) - View Resolver 대신, HttpMessageConverter 동..

[스프링 입문] 섹션 2.2 스프링 웹 개발 기초 (MVC와 템플릿 엔진)

2.2.1 MVC 란 ? MVC 는 Model View Controller 를 의미한다. 과거에는 View와 Controller가 통합되어 있어, View에서 모두 접근하였지만 (Model1 방식), View 파일이 너무 거대해진다는 단점이 있다. 따라서 다음과 같이 작업을 나누어 수행하도록 하였다. - View : 화면에 관련된 작업만 수행 - Controller / Model : 내부적인 것을 처리하거나, 비즈니스 모델 관련 작업 수행 최근에는 이러한 MVC 컨셉을 주로 사용한다. 섹션 2.1 의 정적 컨텐츠에서는 서버에서의 변형이 불가능했지만, MVC 와 템플릿 엔진을 사용하면, html을 동적으로 바꿀 수 있다. 2.2.2 HelloController.java 작성하기 앞서 섹션 1.3에서 작성한..

[스프링 입문] 섹션 2.1 스프링 웹 개발 기초 (정적 컨텐츠)

2.1.0 웹 개발 3가지 방법 웹을 사용하기 위한 3가지 방법이 있다. 먼저 간단히 개념을 정리한 후, 각각에 대해 자세히 살펴보자. 1) 정적 컨텐츠 서버에서 하는 일 없이, 단순히 파일을 웹 브라우저에 표시한다. ex) Welcome Page 2) MVC와 템플릿 엔진 템플릿 엔진(ex. JSP, PHP) 서버에서 프로그래밍을 하여, html을 동적으로 바꾼다. (정적 컨텐츠와의 차이는 서버에서 변형을 한다는 점!) 최근 가장 많이 사용하는 방식 3) API JSON 포맷으로 데이터를 클라이언트한테 전달한다. 서버끼리만 통신할 때는, 데이터만 전달하면 되므로 API방식이 주로 사용된다. 2.1.1 정적 컨텐츠 파일 작성 정적 컨텐츠에 대한 매뉴얼은 다음 사이트에서 확인 할 수 있다. https://..

[스프링 입문] 섹션 1.4 프로젝트 환경설정 (빌드하고 실행하기)

1.4.1 빌드하기 먼저, IntelliJ에서 서버가 실행되고 있다면 localhost:8080 포트를 2개 사용할 수 없으므로 오류가 뜨게 된다. 따라서 IntelliJ 서버를 끄고 시작한다. cmd 창에서 다음과 같이 명령어를 입력하여 빌드할 수 있다. cd C:\Users\유지민\OneDrive\바탕 화면\Spring_study 먼저, 실행할 파일의 폴더로 이동한다. Spring_study 폴더로 이동하고자 한다. cd hello-spring 다음으로, 실행할 파일의 위치로 이동한다. hello-spring 파일을 실행하고자 한다. gradlew.bat build 빌드를 실행하는 명령어이다. 해당 명렁어를 입력하면, 빌드에 필요한 파일들이 자동으로 다운로드 된다. build successful 이 ..

[스프링 입문] 섹션 1.3 프로젝트 환경설정 (View 환경설정)

1.3.0 Spring Boot 기능 찾기 Spring은 Java 웹 어플리케이션 개발과 관련된 대부분의 기능을 제공하므로, 방대한 기능을 적절히 사용하기 위해서는, 필요한 기능을 찾을 수 있는 능력이 요구된다. Spring Boot의 기능은 아래의 페이지에서 검색할 수 있다. https://spring.io/ 먼저, 페이지 상단의 Projects > Spring Boot 에 들어간다. 상단의 Learn > Spring Boot 버전 선택 > Reference Doc. 을 클릭한다. 해당 Reference Doc. 에서 적절한 카테고리를 선택하면 필요한 정보를 얻을 수 있다. 예를 들어 welcome page에 대한 정보를 찾는다면, Servlet Web Applications > Welcome Page..

[스프링 입문] 섹션 1.2 프로젝트 환경설정 (라이브러리 살펴보기)

1.2.1 라이브러리 살펴보기 build.gradle 파일의 dependencies를 보면, 프로젝트 생성시에 추가한 thymeleaf , web , test(기본으로 생성) 라이브러리가 사용되고 있음을 알 수 있다. dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' testImplementation 'org.springframework.boot:spring-boot-starter-test' } 하지만 External Libraries 를 살펴보면, 우리가 프로젝트를 생성할 때 추가하..

[스프링 입문] 섹션 1.1 프로젝트 환경설정 (프로젝트 생성)

1.1.1 프로젝트 생성 ( spring initializr 사이트 사용) JAVA 11 / IntelliJ (IDE) 사용 Spring 프레임 워크를 사용하는 프로젝트는 SpringBoot를 기반으로 간편하게 만들 수 있다. 아래의 spring initializr 사이트를 이용하면 보다 쉽게 스프링 부트 프로젝트를 생성할 수 있다. https://start.spring.io/ 사이트에 접속하면, 아래와 같은 화면이 뜬다. 프로젝트의 설정을 하나씩 지정해보자. 1) Project Java의 빌드 도구로서 Gradle / Maven을 선택 할 수 있다. - Gradle : Ant와 Maven을 보완한 빌드 도구로, 그루비 기반의 DSL을 사용한다. - Maven : Ant를 보완한 빌드 도구로, xml을 ..