반응형

Back-end 75

[Spring] 컨트롤러 Request, Response 간단한 예시

Request 받는 예시 자주 사용하는 1. 쿼리파라, 2.변수패스, 3. json 바디 예시를 작성했습니다. 1. 쿼리 파라미터 @RestController @RequestMapping("/api/books") public class BookController { @Autowired private BookService bookService; @GetMapping("/search") public List searchBooks(@RequestParam("keyword") String keyword) { return bookService.searchBooks(keyword); } } 위의 예제에서는 `@RequestParam` 어노테이션을 사용하여 `keyword`라는 이름의 쿼리 파라미터를 전달받습니다. ..

Back-end/Spring 2023.05.16

[Spring] @ResponseBody에서 객체를 JSON 반환(HttpMessageConverter)

결론은 @ResponseBody어노테이션을 사용해도, Getter 사용하지 않는 필드는 자동으로 JSON 변환이 안됩니다. (Getter를 사용해!) 롬복 @Data 어노테이션을 남발하다 보면, 기본적인 @ResponseBody가(이것도 물론 @RestController로 사용하긴 합니다.) 작동하는 최소의 조건을 잊고 살 수 있다. 토이 프로젝트를 진행하면서 최소한의 어노테이션으로 진행해보려고 하니 예전에 배웠던 것들도 다시 한번 정리하는 시간을 가지게 되었다. 하나둘 씩 정리해서 블로그에 올리려고 한다. 1. @ResponseBody - @ResponseBody 어노테이션은 컨트롤러 메서드에서 반환되는 객체를 HTTP 응답 본문에 직접 쓰기 위해 사용됩니다. - 반환 타입에 따라 적절한 HttpMes..

Back-end/Spring 2023.03.30

[Spring] 빈(Bean) 주입 받는 방법 가장 쉬운 예시

스프링에서 빈을 주입 받는 방법은 크게 3가지로 구분 됩니다. 1. 생성자 주입(Constructor Injection) - 권장 2.세터 주입(Setter Injection) 3.필드 주입(Field Injection) 위 3가지에 대한 가장 간단한 예시를 알아봅시다. 1. 생성자 주입 (권장) 생성자 주입은 스프링에서 가장 권장하는 주입 방법입니다. 생성자를 통해 의존성을 주입받기 때문에 객체가 생성될 때 필요한 의존성을 모두 주입받아 안전하게 사용할 수 있습니다. 주입 받을 객체를 생성자의 매개변수로 선언하면 됩니다. 예를 들어, 다음과 같이 생성자를 통해 의존성을 주입받을 수 있습니다. public class MyService { private final MyRepository myReposito..

Back-end/Spring 2023.03.15

[Spring] @Configuration과 @Component 사용법과 차이

스프링을 사용하면서 빈으로 클래스를 등록할 때, @Configuration과 @Component를 사용합니다. 이 둘의 차이를 구분하지 않고 사용하지 않도록 2가지 어노테이션에 대해서 알아보도록 합시다. 1. @Component @Component는 스프링의 컴포넌트 스캔 기능을 사용하여 빈으로 등록될 클래스에 적용할 수 있는 어노테이션입니다. @Component 어노테이션이 붙은 클래스는 스프링이 자동으로 빈으로 등록합니다. 이를 통해 코드 양을 줄이고 더 간결한 코드를 작성할 수 있습니다. @Component 어노테이션은 일반적으로 비즈니스 로직을 수행하는 클래스들에 많이 사용됩니다. @Component public class MyService { public void doSomething() { /..

Back-end/Spring 2023.03.15

[Spring] application.yml로 mysql DB 연동

library라는 테이블을 mysql로 만들고 난 뒤에 설정하는 상황입니다. 1. resources 밑에 application.yml 생성 2. 아래와 같이 설정 (mysql) spring: datasource: url: "jdbc:mysql://localhost/library" username: "root" password: "" driver-class-name: com.mysql.cj.jdbc.Driver "jdbc:mysql://"를 통해서 mysql의 localhost/library DB에 접근합니다.(테이블명을 적는게 아닙니다.) username, password를 설정하고, driver-class-name을 위와 같이 설정하면 됩니다.

Back-end/Spring 2023.03.15

HTTPie for Terminal 설치 방법 및 사용 방법(Mac)

0. HTTPie 사용 이유 포스트맨이나 웹 브라우저를 사용하는 것도 귀찮을 때가 있다. 우리가 사용하는 IDE 터미널에서 바로 요청하고 응답하는 메세지를 확인하고 싶을 때, HTTPie를 사용하면 엄청 간단하게 확인할 수 있다. 1. 설치 방법 1-1. 아래 사이트에 접속하면 상세하게 설명돼 있다. https://httpie.io/ HTTPie – API testing client that flows with you Making APIs simple and intuitive for those building the tools of our time. httpie.io 사이트에 접속 후 아무거나 바로 다운로드 하면안된다. 우리가 사용하는 것은 터미널 용이기 때문이다. 스크롤을 조금 내리면 HTTPie fo..

Back-end/HTTP 2023.03.14

[Spring] AOP 내부 메서드 호출 방법

AOP 내부 메서드 호출 방법 1. 문제 상황 프로젝트에서 AOP를 사용해서 메서드들을 로그로 남겨야 하는 상황이었습니다. 제가 로그로 남겨야 하는 메서드는 외부로 노출된 메서드가 아닌, 외부로 노출된 메서드가 호출하는 내부 메서드입니다. 하지만 AOP는 클래스의 외부함수만 호출됩니다. 1-1. 상황 재연 아래 소스와 같이 외부 메서드가 있고, 외부 메서드가 호출하는 내부 메서드가 있습니다. 저는 외부, 내부 메서드 모두 AOP를 사용해야 했습니다. 1-1-1. 서비스 클래스 @Slf4j @Service public class DeanService { public void externalMethod(String input) { log.info("외부 메서드 시작"); internalMethod(input..

Back-end/Spring 2023.03.12

[SOLID] 간단한 소스코드 예제 (객체 지향 설계 5가지 원칙)

예전에 올린 글이 있습니다. 거기에는 설명을 풀어서 했다면, 이번글은 소스코드를 보여주려고 작성했습니다. (예전 글 : https://shoney.tistory.com/entry/%EA%B0%9D%EC%B2%B4%EC%A7%80%ED%96%A5-%EC%96%B8%EC%96%B4-SOLID) SOLID 객체 지향 설계와 SOLID 원칙 객체 지향 설계(Object-Oriented Design)란, 객체(Object)를 중심으로 구성하는 소프트웨어 설계 방법을 뜻합니다. 객체는 데이터와 그 데이터를 처리하는 메소드로 이루어져 있으며, 이러한 객체들이 상호작용함으로써 소프트웨어를 구성합니다. 객체 지향 설계를 하는 과정에서 SOLID 원칙을 적용할 수 있습니다. SOLID 원칙은 객체 지향 설계의 다섯가지 원..

Back-end/Spring 2023.03.02

[H2] mac에서 h2 설치 및 실행방법 (spring 연결 예제 포함)

1. 아래 링크에서 h2를 먼저 다운로드 받는다. https://www.h2database.com H2 Database Engine (redirect) H2 Database Engine Welcome to H2, the free SQL database. The main feature of H2 are: It is free to use for everybody, source code is included Written in Java, but also available as native executable JDBC and (partial) ODBC API Embedded and client/server mo www.h2database.com 2. 터미널로 h2설치받은 경로까지 접근한다. 👇🏻 finder로 ..

Back-end/Spring 2023.01.29
반응형