목록전체 글 (40)
helloworld
전 글에서 404에러를 해보았다. 한 메서드에 대해서만 에러처리를 했었는데 이번엔 AOP를 활용하여 에러처리를 해볼것이다. //AOP -> 로깅, 로그인, 메시지추가 등의 비즈니스로직에서 //항상 실행시켜줘야하는 로직이 있다면 aop..? 우선 예외처리를 하기 위해 예외발생한 시간정보와, 예외가 발생한 메세지, 예외의 상세 정보를 볼 것이다. @Data @AllArgsConstructor //모든 매개변수가 있는 생성자 @NoArgsConstructor// 기본 생성자 public class ExceptionResponse { private Date timestamp; private String message; private String details; } 간단히 만들었다. 그 다음 컨트롤러를 만들어 @..
이전까지 get과 post로 데이터를 넣고 확인하고 해봤다. 내가 안썼던거 같은데 users/{id}라는 엔드포인트로 특정 유저번호로 유저에 대한 상세 정보를 보는 코드를 만들었었다. 하지만 users에 없는 id값을 넣게 되면 어떻게 될까.. 유저는 3번까지밖에 없는 상황인데 200 ok Status code를 받았다. 때문에 Exception 처리를 해볼 것이다. 우선 Http의 Status Code를 알아야 할 것 같다. 2XX - > Ok 4XX - > Client 5XX - > Server 200으로 시작되는 코드는 요청이 잘 됐다는 뜻이고 400으로 시작되는 코드는 클라이언트쪽 즉 요청을 잘못 했다는 뜻이고 500으로 시작되는 코드는 서버쪽에서 데이터 처리르 잘 못했다는 뜻이다. @GetMap..
전 글에서 post기능을 사용했다. 그 결과 200이라는 상태코드를 받았고, 정상처리 되었다. 이번엔 상태코드를 제어할 것이다. ServletUriComponentsBuilder 클래스를 사용하여 서버에서 전달하는 값을 ResponseEntity에 담아서 전달한다. 사용자추가 작업을 완료후에 어떤 uri를 들고 확인을 할 수 있는지 (상세정보 확인)까지 전달한다. 1. ServletUriComponentsBuilder.fromCurrentRequest() .path("/{id}") .buildAndExpand(savedUser.getId()) .toUri(); path에 가변변수를 넣은 후 buildAndExpand로 user의 getter를 이용하여 값을 지정한다. uri값으로 변환한다.. 2. URI..
전 글에서 rest에 대한 간단한 글과 get에 대해서 글을 적었다. HTTP method 중 post를 사용 할 때엔 @PostMapping을 사용한다. 신기한 점은 @GetMapping과 엔드포인트가 같아도 요청을 각자의 method가 다르기 때문에 에러가 나지 않는다. 아 참 form데이터가 아닌 json이나 xml 방식으로 데이터를 받을 때엔 파라미터를 그냥 적는것이 아니라 @RequestBody와 같이 적어야 한다 @GetMapping("/users") public List retrieveAllUsers() { return service.findAll(); } @PostMapping("/users") public void createUser(@RequestBody User user) { User..
글쓰는게 너무 어렵다 restful 에 대한 이해가 너무 부족한거 같아 인프런에서 강의를 끊고 보았다. 우선 rest란 내가 이해한 바로는 url 에서 도메인에 대한 이해를 바로 할 수있고 직관적으로 표현하여 사용자나 개발자가 봐도 이해할 수 있는 느낌인 것 같다. REST는 REpresentantional State Transfer 의 약자로 resource의 representantional에 의한 상태를 전달하고 HTTP 의 method를 통해 resource를 처리한다. -- 자원의 상태를 전달하기 위한 ~.. HTTP method는 GET,POST,PUT,DELETE가 있다. GET은 read 읽고 ex) localhost:8080/user/1 - > 유저목록의 1번 번호를 가져와라 POST는 c..
1. 오른쪽 코끼리에서 bootjar를 클릭하여 jar파일을 빌드한다. 참고) bootJar { enabled = true } jar { enabled = false } bootjar가 빌드가 안되서 찾아보니 jar의 빌드를 막고 bootjar만 빌드되게끔 해야한다고 했다. 2.aws사이트에서 인스턴스를 생성후, 프라이빗키와 ip주소를 받는다. ( 그전에 인바운드규칙을 하나 생성해서 포트번호를 열어준다) 3.git 배쉬에서 프라이빗키의 (아마도 ~~~.pem) 위치를 찾아서 나는 바탕화면에 넣어서 cd ~/desktop 이런식으로 들어갔다. 아무튼 위치를 찾은 후 chmod ~~~.pem 을 입력하여 권한?을 부여한다. 4. 아무런 에러가 안뜨면 성공.. 그런후 ssh -i ubuntu@~~~~~~~~~..
-Session / Cookie -사용 이유: HTTP프로토콜은 비연결 지향적으로 새로운 페이지를 요청할 때마다 새로운 접속이 이루어지며 이전 페이지와 현재 페이지 간의 관계가 지속되지 않는다. HTTP프로토콜을 사용하는 웹사이트에서는 웹페이지에 특정 방문자가 머무르고 있는 동안에 그 방문자 상태를 지속시키기 위해 쿠키와 세션을 이용. - Session - 일정 시간동안 같은 이용자로부터 들어오는 일련의 요구를 하나의 상태로 보고 그 상태를 일정하게 유지시키는 기술 - 특정 웹사이트에서 사용자가 머무르는 기간 또는 한 명의 사용자의 한 번의 방문을 의미. - Session에 관련된 데이터는 Server에 저장된다. - 웹브라우저의 캐시에 저장되어 브라우저가 닫히거나 서버에서 삭제시 사라진다. - Cook..
Servlet, JSP - Web Server - Web Client (웹 브라우저) 에게 컨텐츠를 제공하는 서버 - 정적인 HTML 이나 jpeg, gif 같은 이미지를 HTTP 프로토콜을 통해 웹 브라우저에게 전송하는 역할 - 웹 서버의 종류 : apache, IIS(Internet Information Services) 등 - WAS (Web Application Server) /** apache(웹 서버) + tomcat(WAS) **/ - Server단에서 Web Application이 동작할 수 있도록 지원함 /** 웹서버는 정적인 컨텐츠를 지원, WAS는 동적인 컨텐츠를 지원한다 **/ - Container(컨테이너) 라고도 하며 초창기에는 CGI(Common Gateway Interface..
-Wrapper Class - 기본자료형(Primitive type)의 데이터들에 대한 다양한 method를 제공하는 클래스 ex) 10진수를 2진수로 변환, String 을 숫자로 변환 등.. byte -> Byte double -> Double short -> Short char -> Character int -> Integer boolean -> Boolean long -> Long float -> Float - OOP (Object-Oriented Programming) - 객체지향 프로그래밍을 의미한다. 데이터를 객체로 취급하여 프로그램에 반영한 것. 순차적으로 프로그램이 동작하 는 절차지향적인 프로그래밍 / ex) C언어 / 과 다르게 객체와 객체의 상호작용을 통해 프로그램이 동작한다. - 코..
JAVA : 미국의 SunMicroSystem에서 개발한 "객체지향 프로그래밍 언어" - 자가 가상머신 JVM(Java Virticul Machine) 만 설치하면 컴퓨터 운영체제에 상관없이 작동할수 있다. 운영체제에 독립적이다. 참고 - JDK(Java Development Kit) : JVM과 JRE에 실행되고 구동되는 자바프로그램을 생성할 수 있게 한다. - JRE(Java Runtime Environment) JVM을 생성하는 디스크상의 부분이다. - 기본자료형을 제외한 모든 요소들이 객체로 표현된다. - 객체지향개념의 특징인 캡슐화, 상속, 다형성, 추상화가 잘 적용된 언어이다. -캡슐화 : 연관된 목적을 가지는 변수와 함수를 하나의 클래스로 묶는다. 외부에서 접근하지 못하도록 은닉한다. 중요한..