반응형

전체 글 194

트랜잭션 ACID

트랜잭션은 ACID(http://en.wikipedia.org/wiki/ACID)라 하는 원자성(Atomicity), 일관성 (Consistency), 격리성(Isolation), 지속성(Durability)을 보장해야 한다. ACID 원자성 트랜잭션 내에서 실행한 작업들은 마치 하나의 작업인 것처럼 모두 성공 하거나 모두 실패해야 한다. 일관성 모든 트랜잭션은 일관성 있는 데이터베이스 상태를 유지해야 한다. 예를 들어 데이터베이스에서 정한 무결성 제약 조건을 항상 만족해야 한다. 격리성 동시에 실행되는 트랜잭션들이 서로에게 영향을 미치지 않도록 격리한다. 예를 들어 동시에 같은 데이터를 수정하지 못하도록 해야 한다. 격리성은 동시성과 관련된 성능 이슈로 인해 트랜잭션 격리 수준 (Isolation le..

SQL 2022.12.04

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.

에러 발생 Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 에러 발생을 해결하는 방법은 아래와 같다. 에러 해결 방법 1) Run 메뉴에서 Edit Configurations 선택 2) 위와 선택하면 아래와 같이 나오게 된다. 오른쪽에 보면 Modify options이 보이는데 클릭한다. 3) Modify options에는 'Enable debug output'을 체크해주면 된다. 위 과정을 거치면 해당 에러가 해결되는 것을 확인할 수 있다. 정상실행 결과

Back-end/Spring 2022.11.18

[Spring] HTTP 요청 데이터 - GET 쿼리 파라미터 조회 sevlet 예제

http에서 쿼리 파라미터를 조회하는 3가지 예제를 알아보자 1. 전체 파라 조회 2. 단일 파라 조회 3. 복수 파라 조회 먼저 @WebServlet 어노테이션으로 url를 만들어준다. @WebServlet(name = "requestParamServlet",urlPatterns = "/request-param") public class RequestParamServlet extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("[전체 파라 조회]"); r..

Back-end/Spring 2022.11.16

[HTTP] HTTP 요청 방법 3가지

1. GET - 쿼리 파라미터 /url?username=hello&age=20 메시지 바디 없이, URL의 쿼리 파라미터에 데이터를 포함해서 전달 예) 검색, 필터, 페이징등에서 많이 사용하는 방식 2. POST - HTML Form content-type: application/x-www-form-urlencoded 메시지 바디에 쿼리 파리미터 형식으로 전달 username=hello&age=20 예) 회원 가입, 상품 주문, HTML Form 사용 3. HTTP message body에 데이터를 직접 담아서 요청 HTTP API에서 주로 사용, JSON, XML, TEXT 데이터 형식은 주로 JSON 사용 POST, PUT, PATCH

Back-end/HTTP 2022.11.15

[Spring] 컴포넌트 스캔 @ComponentScan

컴포넌트 스캔(@ComponentScan)을 사용하면 @Component 어노테이션이 붙은 클래스를 다 인식해서 스프링 컨테이너에 등록한다. AppConfig에서 컴포넌트 스캔 어노테이션을 달게되면, 해당 패키지와 그 하위 패키지 까지의 범위를 스캔하게된다. 컴포넌트 스캔이 스캔하는 어노테이션 종류 @Component : 컴포넌트 스캔에서 사용 @Controlller : 스프링 MVC 컨트롤러에서 사용 @Service : 스프링 비즈니스 로직에서 사용 @Repository : 스프링 데이터 접근 계층에서 사용 @Configuration : 스프링 설정 정보에서 사용

Back-end/Spring 2022.11.07

[Spring] Java Persistence API 사용

Java Persistence API의 개요 JPA를 사용을 위한 Dependency 추가와 설정 pom.xml 에 아래와 같이 추가한다. (h2는 버전이 1.4.197 이하로 했을 때 진행 됐었다. —>1.3.176) org.springframework.boot spring-boot-starter-data-jpa com.h2database h2 runtime 1.3.176 위처럼 pom.xml을 설정하고 http://localhost:8088/h2-console로 접속하면 아래와 같이 로그인 화면이 나온다.(기존에 설정한 유저와 패스워드를 입력하면된다.) 하지만, 이전 시간에 적용한 security 때문에 접속이 안된다. 그래서 SecurityConfig.java 에서 아래와 같은 오버라이드 메서드로 ..

Back-end/Spring 2022.11.06

[Spring] Spring Boot API 사용

REST API Level3을 위한 HATEOAS 설정 버전별 차이가 있음 스프링 2.2 이상의 버전이기 때문에, 아래와 같이 소스코드 작성했다. @GetMapping("/users/{id}") public EntityModel retrieveUser(@PathVariable int id) { //알아서 인티저로 변경해서 사용하려면 형을 정확하게 입력해ㅝ야함 User user = service.findOne(id); if (user == null) { throw new UserNotFoundException(String.format("ID[%s] not found",id)); } // HATEOAS EntityModel model = EntityModel.of(user); WebMvcLinkBuilder..

Back-end/Spring 2022.11.06

[Spring] RESTful Service 기능 확장

Validation Controller에는 아래와 같이 @Valid 어노테이션 사용해야함 @PostMapping("/users") // 체크하는 순서는 Post인지 먼저 체크하고, uri를 체크해서 이쪽으로 오게됨 public ResponseEntity createUser(**@Valid** @RequestBody User user) { //오브젝트 형식의 데이터를 전달하려면 @RequestBody가 필요함 User savedUser = service.save(user); URI location = ServletUriComponentsBuilder.fromCurrentRequest() .path("/{id}") .buildAndExpand(savedUser.getId()) .toUri(); return ..

Back-end/Spring 2022.11.06

[Spring] User Service API 추가

유저에 관한 서비스 정의 내용 파일 구조 User Domain 생성 User.java package com.example.restfulwebservice.user; import lombok.AllArgsConstructor; import lombok.Data; import java.util.Date; @Data @AllArgsConstructor public class User { //lombok으로 프로퍼티만 만들어도 됨 private Integer id; private String name; private Date joinDate; } GET 사용방법 UserController.java package com.example.restfulwebservice.user; import org.springfra..

Back-end/Spring 2022.11.06

[Spring] Spring Boot로 개발하는 RESTful Service

Spring Boot 개요 스프링 프레임 워크에 필요한 많은 API를 쉽게 사용할 수 있음 다양한 설정 기능도 쉽게 사용할 수 있음 내장형 톰캣 제티 등이 있기 때문에 별도의 어플리케이션을 설치할 필요 없음 http://start.spring.io 에서 스프링 부트 시작할 수 있음 REST API 설계 Spring Boot Project 생성, 실행 IntelliJ IDEA Ultimate Postman http://start.spring.io에서 아래와 같이 프로젝트 생성한다. ‘GENERATE’를 선택하면 zip 파일이 생성 된다. 압축을 풀고 인텔리제이로 해당 폴더를 오픈하면 된다. HelloWorld Controller 추가 HelloWorld Bean 추가 DispatcherServlet, 프로..

Back-end/Spring 2022.11.06
반응형