본문 바로가기
반응형

공부378

REST, REST API, RESTful 이해하기 # REST(Representational State Transfer)란? ​ 자원을 이름으로 구분해 자원의 상태를 주고 받는 것 ​ 자원이란? 해당 소프트웨어가 관리하는 모든 것 ​ 자원의 표현이란? 이름을 명시적으로 정하는 것. 예를들면 고객을 customer 등으로 정의 ​ 상태란? 자원의 상태(정보)를 전달하는 것. 주로 JSON과 XML을 통해 주고받는다.(TEXT, RSS 등도 가능) ​ ​ REST는 웹 기술인 HTTP프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일이다. ​ HTTP URI를 통해 자원을 명시하고 HTTP 메소드(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미 ​ 웹 사이.. 2020. 4. 23.
[aws,ec2,wordpress] 한달에 10달러로 워드프레스 설치하고 나만의 블로그 만들기 글을 읽기에 앞서 두가지 유의점이 있다. 1) AWS에 가입이 되어있어야 진행이 가능하다 2) AWS와 일반 리눅스서버에 설치할 때 명령어가 조금 다르므로 일반 리눅스에 설치한다면 이 글은 별 도움이 되지 않을것이다. 여기선 AWS EC2에서 제공하는 무료티어인 t2.micro 를 기준으로 설치했다. 신규가입일 경우 1년동안 무료로 사용할 수 있다. AWS 콘솔에 로그인 한 후(혹은 회원가입 한 후) EC2 => 인스턴스 메뉴로 들어간다. EC2에 들어가서 인스턴스 시작을 클릭한다. 클릭하면 아래와같은 화면이 나오는데, 그중 Amazon Linux 2 AMI (HVM), SSD Volumn Type 으로 선택한다. 티어는 t2.micro로 생성한다. 새로 생성한 계정이라면 1년간 무료로 사용할 수 있다... 2020. 4. 14.
[springboot] ControllerAdvice 응용해 return 꾸미기(HttpStatus 지정 포함) WEB으로 구성한 서버에서 Exception을 활용해서 에러코드를 핸들링하는 경우가 있는데, 이럴때 ControllerAdvice를 쓴다. 예를들어 Exception을 날리면 ControllerAdvice에서 캐치하고, 데이터를 가공해 리턴하는 것이다. 다음과 같이 설정을 해보자 @RestController public class TestController { @GetMapping("/test/get") public String testGet(@RequestParam(value = "text") String text) { System.out.println("/test/get text = " + text); return "testGet"; } } GET방식으로 /test/get 을 호출하게 했고, text.. 2020. 4. 11.
[mysql] REPEATABLE-READ에서 dead lock이 걸린 이유 Mysql은 기본 isolation이 REPEATABLE-READ으로, Oracle은 COMMIT-READ으로 되어있다. 둘의 차이점은 무엇일까? 그리고 종종 Mysql에서는 Dead lock이 걸리는데 그 이유가 무엇일까? ERROR 1213 (40001): Deadlock found when trying to get lock; try restarting transaction MySQL의 InnoDB에는 lock에는 종류가 있다. - Row -level lock - Record lock - Gap lock 하나씩 알아보자 1) Row-level lock 가장 기본적인 lock으로서 테이블의 row마다 걸리는 단위다. 여기서는 2가지 종류가 있다. - Shared lock (S) - Exclusive l.. 2020. 4. 9.
JPA, 정말 최선일까 최근 일련의 사건이 있어 해결해야 할 일이 있었는데, 그 과정에서 JPA을 도입하는 게 최선일까라는 질문을 하게 되었다. ​ 정확히 이 질문을 하는 시기는 이미 레거시 시스템에 Mybatis로 운영되고 있는 와중에 내 생각(이라 쓰고 고집이라 읽는)으로 JPA를 하는 게 좋겠다 생각하여 프레임워크를 추가하였고, 아직 모든 코드를 JPA로 전환한 것은 아니지만 새로 만드는 것은 JPA를, 그리고 기존 것에서 리팩토링하게 되면 JPA로 바꾸는 중인데, 최근 어떤 계기로 인해 이걸 하는 게 정말 옳은가 생각하게 되었다. ​ ​ - Mybatis에선 당연했던 게 JPA에는 없었다 Mybatis는 기본 Query(쿼리) 베이스다. 쿼리를 잘 만들지 못하면 문제가 발생한다. 하지만 쿼리를 잘 다룰 줄 알면 별문제가.. 2020. 4. 8.
[spring oauth2 ResourceServer] oauth2 에서 CORS 설정 테스트 CORS란? 교차 출처 리소스 공유(Cross-Origin Resource Sharing) 이라 불리며 다른 사이트에서 우리쪽 서버에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제다. 대표적으로 모바일과 서버(back-end)가 그렇고, 요즘 Front-end 쪽에도 독립적으로 서버를 구성하는 경우가 있어 Oauth2를 사용한다면 반드시 알아두어야 할 점이다. 서비스를 구축하는 과정에서 cors 에러가 발생했고, 관련하여 정리하는 글이다. 아래는 브라우저에서 호출할 때 발생한 에러다 서버측 로그는 다음과 같다. org.springframework.security.access.AccessDeniedException: Access is denied at org.springframework.sec.. 2020. 4. 4.
반응형