일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 서브셋폰트
- 메모이제이션
- 디자인 패턴
- bfs
- npm
- 동적계획법
- netlify
- mock
- package
- DP
- github
- dfs
- dotenv
- PostgreSQL
- process.env
- 객체지향
- azure
- 다형성
- Secret
- 추상화
- 클라우드
- CSS
- MariaDB
- git
- GOF
- AOP
- 캡슐화
- Java
- Solid
- 상속
- Today
- Total
목록BE/Spring Boot (21)
이것저것 해보기🌼
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/SSwvW/btq8TSzuxga/hJD8HKDxYiYWgNy9bKIac1/img.png)
AOP를 활용하여 메소드 실행 전,후, 타입, 값, 수행시간 등 다양한 로그를 남길수 있다. 먼저 Dependencies에 aop를 추가해주어야한다. 1 implementation 'org.springframework.boot:spring-boot-starter-aop' cs 예를 들어 아래와 같은 메소드 Controller가 정의되어있다고 하자. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 package com.example.aop.controller; import com.example.aop.annotation.Decode; import com.example.aop..
스프링 프레임워크의 구성 : 약 20개 https://spring.io/projects/spring-framework 스프링 핵심기능 : DI, AOP, ... - AOP : 로깅, 트랜잭션 관리, 시큐리티에서의 적용 중점적으로 다루는 모듈 : 스프링 부트, 스프링 클라우드, 스프링 데이터, 스프링 배치, 스프링 시큐리티 스프링의 과제 테스트의 용이성, 느슨한 결합 1) IoC / DI 의존 관계 주입 IoC (Inversion of Control) : 일반적인 Java 객체를 new로 생성하여 관리하지 않고, Spring Container에 맡긴다. 즉, 객체관리의 권한이 개발자에서 프레임워크로 넘어간다. DI (Dependency Injection) : 의존성을 코드로부터 격리시켜 코드테스트에 용이하..
object 를 JSON과 같은 형태로 바꾸기 위해서는 Object Mapper 를 사용한다. var objectMapper = new ObjectMapper(); // object -> text // var user = new User("seohee", 26, "010-0000-0000"); var text = objectMapper.writeValueAsString(user); System.out.println(text); // text -> object // object mapper는 default 생성자가 필요하다. var objectUser = objectMapper.readValue(text, User.class); System.out.println(objectUser); 실행결과 {"name..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bkbQZe/btq8KcydYNQ/Q8NXSpyIdD6xP4g5KptBQk/img.png)
기본적인 JSON 형태로 응답 내려주는 방법 @RestController @RequestMapping("/api") public class ApiController { @GetMapping("/text") public String text(@RequestParam String account){ return account; } //JSON // req -> object mapper -> object -> method -> object -> object mapper -> json -> response @PostMapping("/json") public User json(@RequestBody User user){ return user; } //http status 코드와 User body Json 으로 내려..
DELETE는 GET과 비슷하다. package com.example.delete.controller; import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("/api") public class DeleteApiController { @DeleteMapping("/delete/{userid}") public void delete(@PathVariable String userid, @RequestParam String account){ System.out.println(userid); System.out.println(account); } }
PUT을 다루는 방법 (POST와 비슷하다) PUT은 항상 RequestBody가 인자로 들어가야한다. package com.example.put; import com.example.put.dto.PostRequestDto; import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("/api") public class PutApiController { /* JSON 형식 { "name" : "seohee", "age" : 26, "car_list" : [ { "name" : "Audi", "car_number" : "11가 1234" }, { "name" : "BMW", "car_number" : "22가 1234"..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/ou4aN/btq8qFoILVT/vk8v3Are1FdLSd7LuJG4H0/img.png)
POST 다루는 방법 import java.util.Map; @RestController @RequestMapping("/api") public class PostApiController { @PostMapping("/post") public void post(@RequestBody PostRequestDto requestData){ System.out.println(requestData); } } @RequestBody 를 Annotaion 해주어야하는 것을 주의 추가로, lombok을 사용하지 않고 따로 dto 라는 클래스를 만들어서 그 아래 PostRequest를 정의해주었다. package com.example.post.dto; import com.fasterxml.jackson.annotatio..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/breSVI/btq8rfcrjiO/Tvp1O4kzsUTNu2kPiuA7M1/img.png)
GET Method를 사용하는 여러 방법 package com.example.hello.controller; import com.example.hello.dto.UserRequest; import org.springframework.web.bind.annotation.*; import java.util.Map; @RestController @RequestMapping("/api/get") public class GetApiController { //1. 기본 GET 사용방법 @GetMapping(path = "/hello") //http://localhost:9090/api/hello public String getHello(){ return "get Hello"; } @RequestMapping(pat..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bdUQm0/btq8vgmYIaK/1oOKGclTBkKlLKf2spwpQk/img.png)
Web 이란 World Wide Web, WWW, W3 : 인터넷에 연결된 컴퓨터를 통해 사람들이 정보를 공유할수 있는 전세계적인 정보공간 1) Web site 2) API (*Web service) Kakao open API, Google Open API 3) User Interface Chrome WEB의 기본 3가지 요소 1) URI :리소스 식별자. 특정 사이트, 특정 쇼핑목록 2) HTTP : 어플리케이션 컨트롤 ex) GET, POST.. 3) HTMP : XML을 바탕으로한 범용 문서 포맷 이를 이용하여 Chrome, Safari 에서 사용자가 알아보기 쉬운 형태로 표현 REST (Representational State Transfer) 1. Client, Server : 클라이언트와 서버..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dTm1p0/btq8rgf11LO/v06UYMlYKa6Mh6C7zI0LZk/img.png)
지난 시간에 실행을 위한 준비까지 마쳤으니, 이제 main method를 실행해보았다. 정상적으로 실행되면 아래와 같이 Tomcat started on port(s) : 8080 메세지가 뜨게 된다. Postman에서 request를 날려보자. 아직 구현된것이 없으니 GET으로 날려도 반응은 없지만, READ ALL이 정상호출된것은 알수 있다. 이제 TodoController를 아래와 같이 세부 작성을 완료했다. package org.example.controller; import lombok.AllArgsConstructor; import org.example.model.TodoEntity; import org.example.model.TodoRequest; import org.example.model..