React.js, 스프링 부트, AWS로 배우는 웹 개발 101

React.js, 스프링 부트, AWS로 배우는 웹 개발 101

[TIL] 25/05/12, @PathVariable 사용시, java.lang.IllegalArgumentException 예외 발생

1.문제@RestController@RequestMapping("test") // 리소스public class TestController { // 매개변수를 넘겨받는 방법 @GetMapping("/{id}") public String testControllerWithPathVariables(@PathVariable(required=false)int id) { return "Hello World! ID " + id; }}위와 같이 REST API Controller를 작성하고 요청을 보냈다. 요청은 1. http://localhost:8080/test/12342. http://localhost:8080/test 둘 다 보냈는데, 위는 500에러 아래는 404에러가 발생한다. 첫 번째, 부터 따져보면202..

React.js, 스프링 부트, AWS로 배우는 웹 개발 101

[TIL] 25/05/07, Gradle Wrapper가 뭘까?

1. Gradle Wrapper가 뭘까?Spring Boot initializer를 이용해서 project를 import할 때, 이 작업을 해야 하는 이유는 우리가 윈도우에 그래들을 설치하지 않았기 때문이다. 대신 Spring Initializr에서 프로젝트를 다운받을 때 gradlew라는 프로그램을 다운 받았는데 gradlew가 바로 그래들 래퍼 Gradle Wrapper다. 따로 그래들을 설치할 필요 없이 또는 이미 설치된 그래들 버전과의 호환 문제 방지를 위해 프로젝트 내의 그래들 래퍼를 사용한다. 위와 같은 이유로 Gradle distribution에서 Gradle wrapper를 선택하라고 했다. https://docs.gradle.org/current/userguide/gradle_wrapp..

React.js, 스프링 부트, AWS로 배우는 웹 개발 101

[TIL] 25/02/16, 서비스 개발 및 실습(2)

** 테스팅 Todo 아이템의 id만 보내도 된다. 2.3.2 Retrieve Todo 구현** 퍼시스턴스구현2.2.6절에서 작성한 TodoRepository를 사용한다. ** 서비스 구현리포지터리의 findByUserId() 메서드를 이용한다.// readpublic List retrieve(final String userId){ return repository.findByUserId(userId);} ** 컨트롤러 구현@GetMappingpublic ResponseEntity retrieveTodoList() { String temporaryUserId = "temporary-user"; // temporary user id. // (1) 서비스 메서드의 retrieve() 메서드를 ..

React.js, 스프링 부트, AWS로 배우는 웹 개발 101

[Error] JPQL 문법 오류

1. 문제2025-02-17T20:33:21.451+09:00 WARN 2680 --- [demo] [main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'todoController': Unsatisfied dependency expressed through field 'service': Error creating bean with name 'todoSe..

React.js, 스프링 부트, AWS로 배우는 웹 개발 101

[TIL] 25/02/16, 서비스 개발 및 실습(1)

2.3 서비스 개발 및 실습Logger 설정HTTP POST를 이용하는 Create REST API 개발HTTP GET을 이용하는 Retrieve REST API 개발HTTP UPDATE를 이용하는 Update REST API 개발HTTP DELETE를 이용하는 Delete REST API 개발성해 보자. 2장에서 작성할 서비스는 생성Create, 검색 Retrieve, 수정Update, 삭제Delete 네가지 API다.구현 과정은 퍼시스턴스 → 서비스→ 커트롤러 순으로 한다.** 로그어노테이션서비스 구현에 앞서 디버깅을 위한 로그 설정에 대해 설명하고자 한다. 로그를 어떻게 남길 수 있을까? 가장 간단한 방법으로는 System.out.println을 하는 방법이 있다. 이 방법은 유용하지만 기능이 제한..

React.js, 스프링 부트, AWS로 배우는 웹 개발 101

[TIL] 25/01/29, 퍼시스턴스 레이어 : 스프링 데이터 JPA

2.2.6 퍼시스턴스 레이어 : 스프링 데이터 JPA애플리케이션에서 데이터베이스 작업(테이블 생성, 엔트리 추가, 수정, 삭제)을 웹 서비스의 일부로 동작하게 하려면, 먼저 JDBC 드라이버가 필요하다.JDBC 드라이버는 자바에서 데이터베이스에 연결할 수 있도록 도와주는 라이브러리로, 쉽게 말해 MySQL 클라이언트 같은 역할을 한다. 이를 통해 애플리케이션이 데이터베이스와 통신할 수 있다. MySQL 클라이언트도 내부에서 JDBC/ODBC 등의 드라이버를 사용한다. // 데이터베이스 호출 예제String sqlSelectAllTodos = "SELECT * FROM Todo WHERE USER_ID = " + request.getUserid();String connectionUrl = "jdbc:mys..

React.js, 스프링 부트, AWS로 배우는 웹 개발 101

[TIL] 25/01/28, Service Layer : Business Logic

2.2.5 서비스 레이어 : 비즈니스 로직서비스 레이어는 컨트롤러와 퍼시스턴스 사이에 비즈니스 로직을 수행하는 역할을 한다.서비스 레이어는 HTTP와 연관된 컨트롤러에서 분리돼 있고, 또 데이터 베이스와 연관된 퍼시스턴스와도 분리돼 있다. 따라서 서비스 레이어에서는 개발하고자 하는 로직에 집중할 수 있다. @Servicepublic class TodoService { public String testService() { return "Test Serivce"; }}@Service 어노테이션은 스테레오타입 어노테이션이다. @Service 내부에 @Component 어노테이션을 갖고 있는데 @Component 어노테이션과 비교했을 때 특별한 기능 차이는 없다. 단지 이 클래스는 스프링..

React.js, 스프링 부트, AWS로 배우는 웹 개발 101

[TIL] 25/01/27, REST API

2.2.3 REST APIREST는 Representational State Transfer의 약자로, 아키텍처 스타일을 의미한다.아키텍처 스타일: 반복되는 아키텍처 디자인.아키텍처 패턴: 반복되는 문제 상황 해결 도구와 차이가 있음.REST는 아키텍처 스타일은 6가지 제약조건으로 구성되며, 이를 따르는 API를 RESTful API라고 한다. REST 아키텍처 스타일의 6가지 제약조건:클라이언트-서버 (Client-Server)클라이언트와 서버의 역할을 분리하여 개발과 확장이 용이하도록 함. 클라이언트-서버 라는 것은 리소스를 관리하는 서버가 존재하고 다수의 클라이언트가 리소스를 소비하려고 네트워크를 통해 서버에 접근하는 구조이다.리소스란? REST API가 리턴할 수 있는 모든 것을 의미한다. 예를들..

React.js, 스프링 부트, AWS로 배우는 웹 개발 101

[TIL] 25/01/26, 백엔드 서비스 아키텍처

학습내용 • 레이어드 아키텍처 패턴 • REST 아키텍처 스타일 • 스프링 어노테이션 • JPA와 스프링 Data JPA 실습내용 • Model/Entity와 DTO 클래스 • Controller, Service, Persistence 클래스 • 테스팅용 REST API 레이어드 아키텍처 패턴은 스프링 프로젝트 내부에서 어떻게 코드를 적절히 분리하고 관리할 것이냐에 대한 것이다. 레이어드 아키텍처 패턴이 프로젝트 내부에서 어떻게 코드를 관리할 것인가에 대한 내용이라면, REST 아키텍처 스타일은 클라이언트(브라우저)가 우리 서비스를 이용하려면 어떤 형식으로 요청을 보내고 응답을 받는지에 대한 것이다. 클라이언트는 몇 개의 정해진 메서드로 우리 서비스를 이용할 예정이다. 이렇게 REST 아키텍처 스타일을 ..

React.js, 스프링 부트, AWS로 배우는 웹 개발 101

[TIL] 25/01/25, build.gradle 속성

2.1.7 빌드 자동화 툴 : Gradle과 라이브러리Gradle은 빌드 자동화 툴이다. 빌드 자동화 툴을 이용하면 컴파일, 라이브러리 다운로드, 패키징, 테스팅 등을 자동화 할 수 있다. 빌드 자동화 툴이 없으면 라이브러리 사용을 위해 라이브러리 사이트에서 jar 파일을 다운로드 받아야한다. 1. pluginsgradle 공식 웹사이트에 따르면 gradle 자체는 많은 기능을 제공하지 않는다. 대신 플러그인을 통해 gradle을 확장해서 사용할 수 있다. 대표적인 예가 java이다. 자바를 컴파일 하려면 gardle java 플러그인이 필요하다. 이때, id 'java'는 자바이고 이는 빌드를 위해 자바 플러그인을 사용하는 것을 명시한다. org.springframework.boot나 io.spri..

돌맹이떼굴떼굴
'React.js, 스프링 부트, AWS로 배우는 웹 개발 101' 카테고리의 글 목록