본문 바로가기

Programming17

[Spring] - 데이터베이스 ORM(Object Relational Mapping) ▫ 뜻 : 자바와 같은 객체지향 언어에서 의미하는 객체와 RDB(Relational Database)의 테이블을 자동으로 매핑하는 방법 ⚠ 객체의 클래스와 데이터베이스의 테이블의 속성은 정확하게 일치하진 않는다. ➡️ ORM 이 이 둘의 불일치와 제약사항을 해결하는 역할을 해준다. ▫ ORM의 장점 데이터베이스 쿼리를 객체지향적으로 조작할 수 있다. 쿼리문을 작성하는 양이 줄어든다. 객체 지향적으로 DB에 접근할 수 있어 코드의 가독성이 높아진다. 재사용 및 유지 보수가 편리하다. 객체들은 각 클래스로 나누어져 있어 재사용 및 유지보수가 수월하다. 데이터베이스에 대한 종속성이 줄어든다. ORM을 통해 자동 생성된 SQL문은 객체를 기반으로 DB 테이.. 2024. 2. 13.
[Spring] - 스프링 (gradle) springdoc으로 Swagger3 추가하기 문서화 작업의 필요성 API를 개발하면 명세를 관리해야 한다. 명세란 해당 API가 어떤 로직을 수행하는지 설명하고 이 로직을 수행하기 위해서 어떤 값을 요청하며, 이에 따른 응답 값으로 무엇을 받을 수 있는지를 정리한 자료이다. 이번 글에서는 스프링 gradle 프로젝트에서 springfox가 아닌 springdoc으로 Swagger3를 추가하는 방법에 대해 작성하고자 한다. 기존 springfox로 추가할려고 시도해보니.. 버전 업된 swagger3를 적용하는데 있어, 기존과는 다른 방법을 써야함을 느꼈다.. 1. build.gradle에 아래의 의존성을 추가해준다. dependencies { implementation 'org.springdoc:springdoc-openapi-starter-webm.. 2024. 2. 6.
[Spring] - 스프링부트 API 작성 방법 : Post, Put, Delete Mapping Post API 역할 : 웹 애플리케이션을 통해 DB 등의 저장소에 리소스를 저장할 때 사용되는 API이다. 특징 : ▪ URL 경로 / Param에 변수를 넣어 요청을 보낸 GET API와 달리, HTTP body에 담아 서버에 전달한다. ▪ HTTP body에 담아 전달되는 데이터의 형태는 주로 JSON(JavaScript Object Notation) 형식으로 값을 주고 받는다. Post API 전달 방법 @RequestBody를 이용해서 구현 전송 데이터를 특정하기 어려울 때는 Map을, 데이터가 특정되어 있을 경우엔 DTO를 주로 사용한다. @PostMapping(value = "/member") public String postMember (@RequestBody Map postData){ S.. 2024. 2. 6.
[JAVA] 스레드 풀이란? ThreadPool 스레드(thread)란? 스레드(thread)란 프로세스(process) 내에서 실행되는 작은 작업 단위이다. 스레드의 동작에 대해 보기 위해 스프링 부트에서 다음과 같이 2개의 메서드를 작성하고 돌려보았다. @Scheduled(fixedDelay = 1000) public void test1() throws InterruptedException { Thread.sleep(10000); // 10초간 일시정지 System.out.println(Thread.currentThread().getName() + " -> 테스트 1 : " + LocalDateTime.now()); } @Scheduled(fixedDelay = 1000) public void test2() throws InterruptedExce.. 2024. 2. 5.
[Spring] - 스프링부트 API 작성 방법 : GetMapping controller 패키지 ▪ 클라이언트가 입력한 값에 대한 응답을 수행하는 코드들이 담기는 패키지 ▪ 모든 요청은 컨트롤러를 통해서 진행되어야 한다. 기본적인 controller 클래스 작성 방법 우선 스프링에게 해당 클래스가 Controller로 동작한다는 것을 인식하게끔 우리는 어노테이션"@"을 달아줘야 한다. ▪ @RestController 어노테이션을 클래스 상단에 작성해준다. ➡️ RestController가 궁금하다면..여기로 [Spring] - RestController란? ➡️ RestController란? ▪ @Controller에 @ResponseBody가 결합된 어노테이션이다. @Controller는 전통적인 스프링 MVC 컨트롤러를 정의할 때 사용된 것으로, 주로 뷰 템플릿을 반환.. 2024. 2. 4.
[Spring] - Controller vs RestController 컨트롤러란 컨트롤러의 역할 ▪ 비즈니스 로직과 클라이언트의 요청을 연결해준다. ▪ 클라이언트로부터 요청을 받고, 해당 요청에 대해 서비스 레이어에 구현된 적절한 메서드를 호출해서 결과값을 받는다. ▪ 요청과 응답을 전달하는 역할만 맡는다. ▪ (@Controller 사용시 주의..) "member/login"과 같은 경로를 접근할 때 Spring Boot는 가장 먼저 @Controller 또는 @RestController에서 매핑된 경로를 찾게 된다.! ➡️ Controller란? @Controller는 전통적인 스프링 MVC 컨트롤러를 정의할 때 사용된 것으로, 주로 뷰 템플릿을 반환하는 데 사용한다. 예를 들어, Thymeleaf나 JSP와 같은 뷰 템플릿을 렌더링하기 위해 사용한다. @Control.. 2024. 2. 4.