2.2.6 퍼시스턴스 레이어 : 스프링 데이터 JPA애플리케이션에서 데이터베이스 작업(테이블 생성, 엔트리 추가, 수정, 삭제)을 웹 서비스의 일부로 동작하게 하려면, 먼저 JDBC 드라이버가 필요하다.JDBC 드라이버는 자바에서 데이터베이스에 연결할 수 있도록 도와주는 라이브러리로, 쉽게 말해 MySQL 클라이언트 같은 역할을 한다. 이를 통해 애플리케이션이 데이터베이스와 통신할 수 있다. MySQL 클라이언트도 내부에서 JDBC/ODBC 등의 드라이버를 사용한다. // 데이터베이스 호출 예제String sqlSelectAllTodos = "SELECT * FROM Todo WHERE USER_ID = " + request.getUserid();String connectionUrl = "jdbc:mys..
2.2.5 서비스 레이어 : 비즈니스 로직서비스 레이어는 컨트롤러와 퍼시스턴스 사이에 비즈니스 로직을 수행하는 역할을 한다.서비스 레이어는 HTTP와 연관된 컨트롤러에서 분리돼 있고, 또 데이터 베이스와 연관된 퍼시스턴스와도 분리돼 있다. 따라서 서비스 레이어에서는 개발하고자 하는 로직에 집중할 수 있다. @Servicepublic class TodoService { public String testService() { return "Test Serivce"; }}@Service 어노테이션은 스테레오타입 어노테이션이다. @Service 내부에 @Component 어노테이션을 갖고 있는데 @Component 어노테이션과 비교했을 때 특별한 기능 차이는 없다. 단지 이 클래스는 스프링 컴포넌트이며 기능적..
2.2.3 REST APIREST는 Representational State Transfer의 약자로, 아키텍처 스타일을 의미한다.아키텍처 스타일: 반복되는 아키텍처 디자인.아키텍처 패턴: 반복되는 문제 상황 해결 도구와 차이가 있음.REST는 아키텍처 스타일은 6가지 제약조건으로 구성되며, 이를 따르는 API를 RESTful API라고 한다. REST 아키텍처 스타일의 6가지 제약조건:클라이언트-서버 (Client-Server)클라이언트와 서버의 역할을 분리하여 개발과 확장이 용이하도록 함. 클라이언트-서버 라는 것은 리소스를 관리하는 서버가 존재하고 다수의 클라이언트가 리소스를 소비하려고 네트워크를 통해 서버에 접근하는 구조이다.리소스란? REST API가 리턴할 수 있는 모든 것을 의미한다. 예를들..
학습내용 • 레이어드 아키텍처 패턴 • REST 아키텍처 스타일 • 스프링 어노테이션 • JPA와 스프링 Data JPA 실습내용 • Model/Entity와 DTO 클래스 • Controller, Service, Persistence 클래스 • 테스팅용 REST API 레이어드 아키텍처 패턴은 스프링 프로젝트 내부에서 어떻게 코드를 적절히 분리하고 관리할 것이냐에 대한 것이다. 레이어드 아키텍처 패턴이 프로젝트 내부에서 어떻게 코드를 관리할 것인가에 대한 내용이라면, REST 아키텍처 스타일은 클라이언트(브라우저)가 우리 서비스를 이용하려면 어떤 형식으로 요청을 보내고 응답을 받는지에 대한 것이다. 클라이언트는 몇 개의 정해진 메서드로 우리 서비스를 이용할 예정이다. 이렇게 REST 아키텍처 스타일을 ..
2.1.7 빌드 자동화 툴 : Gradle과 라이브러리Gradle은 빌드 자동화 툴이다. 빌드 자동화 툴을 이용하면 컴파일, 라이브러리 다운로드, 패키징, 테스팅 등을 자동화 할 수 있다. 빌드 자동화 툴이 없으면 라이브러리 사용을 위해 라이브러리 사이트에서 jar 파일을 다운로드 받아야한다. 1. pluginsgradle 공식 웹사이트에 따르면 gradle 자체는 많은 기능을 제공하지 않는다. 대신 플러그인을 통해 gradle을 확장해서 사용할 수 있다. 대표적인 예가 java이다. 자바를 컴파일 하려면 gardle java 플러그인이 필요하다. 이때, id 'java'는 자바이고 이는 빌드를 위해 자바 플러그인을 사용하는 것을 명시한다. org.springframework.boot나 io.spri..
1.2.3 서버란?서버는 프로그램이다. 이 프로그램은 지정된 포트, 8080포트에 소켓을 열어 클라이언트가 연결할 때까지 무한 대기하며 기다린다. 그러다가 클라이언트가 연결하면 해당 클라이언트 소켓에서 요청을 받아와 수행하고 응답을 작성해 전달한다. 서버에서 클라이언트의 요청을 읽어올 때 또는 응답을 작성할 때 파일을 주고 받으면 FTP File Transfer Protocol 서버가 되고, 하이퍼텍스트 트랜스퍼 프로토콜을 사용한다면 HTTP 서버가 되는 것이다. 1.2.4 정적 웹 서버Static Web Server란 HTTP 서버 중에서도 리소스 파일을 리턴하는 서버를 의미한다. 서버 호스트가 8080에서 실행하고 있는 로컬 호스트라고 가정하면, localhost:8080/file.html HTTP..
해당 글은 React.js, 스프링 부트, AWS로 배우는 웹 개발 101을 요약한 내용입니다. 1.1.1 Todo 웹 애플리케이션 기능- Todo 생성 : + 버튼을 클릭해 Todo 아이템을 생성할 수 있다.- Todo 리스트 : 생성된 아이템 목록을 화면에서 확인할 수 있다.- Todo 수정 : Todo 아이템을 체크하거나 내용을 수정할 수 있다.- Todo 삭제 : Todo 아이템을 삭제할 수 있다.- 회원가입 : 사용자는 애플리케이션에 회원가입하고 생성된 계정을 이용해 Todo 애플리케이션에 접근할 수 있다.- 로그인 : 계정을 생성한 사용자는 계정으로 로그인할 수 있다.- 로그아웃 : 로그인한 사용자는 로그아웃 할 수 있다. 1.1.2 Todo 웹 애플리케이션 아키텍처1. 프론트엔드와 백엔드 ..