분류 전체보기
-
1주차 프로젝트 회고부트캠프/항해99 2022. 1. 16. 18:46
기간 : 01/10 (월) ~ 01/13 (목) 이번 주차의 주제: 적응, 배운 기능 적용, 함께 일하고 싶은 사람되기 배운점 몰입의 중요성.. 항해 시스템에 적응하자 100시간을 하며 임계점을 넘어보자 팀으로 프로젝트를 진행하면서 협업의 중요성에 대해 알게 되었다. 협업툴로 깃헙을 사용했는데 병합하는 과정에서 충돌이 많았고 메인브랜치의 부재, 깃헙 로그인 문제 등에서 시간을 뺏겼다. 충돌을 해결하는 과정은 조금 익숙해진 것 같다. 깃헙의 협업 플로우에 대해 조금 경험할 수 있었다. 서버는 Flask로 사용, 템플릿 엔진으로 Jinja2를 사용하면서 서버사이드렌더링에 대해 더 알게 되었다. SSR과 CSR의 차이점, 장단점을 정리해야겠다. 프로젝트를 진행할 때 앞단의 중요성, API 설계, DB 모델링,..
-
[Spring] 예외처리(Exception Handling) 정리프로그래밍/Spring 2022. 1. 5. 18:27
@ExceptionHandler와 @ControllerAdvice 예외처리를 위한 메서드를 작성하고 @ExceptionHandler를 붙인다. 전역 예외 처리 클래스를 작성할 때는 @ControllerAdvice를 붙인다. (패키지 지정 가능) -> 모든 컨트롤러에서 예외처리 적용 클래스 내에서 예외처리 @Controller public class ExceptionController { @ExceptionHandler(Exception.class) public String cather(Exception e) { return "error"; } @ExceptionHandler(NullPointerException.class) public String cather2(Exception e) { return "..
-
[Spring] 쿠키(Cookie)와 세션(Session)에 대해 알아보자프로그래밍/Spring 2022. 1. 4. 12:41
HTTP 프로토콜의 특징 HTTP의 특성을 알아보고 쿠키와 세션이 필요한 이유에 대해 알아보자 1. 무상태 프로토콜(Stateless) 통신이 끝나면 상태를 유지하지 않는 특징 클라이언트의 요청과 그에 따른 서버의 응답이 끝나면 통신이 끝나며 해당 상태 정보는 유지되지 않는다. 2. 비 연결성(Connectionless) 클라이언트가 요청을 한 후 응답을 받으면 그 연결을 끊어 버리는 특징 비 연결성을 가지는 HTTP에서는 실제로 요청을 주고 받을 때만 연결을 유지하고 응답을 주고나면 TCP/IP 연결을 끊는다. 이를 통해 최소한의 자원으로 서버 유지를 가능하게 한다. 쿠키와 세션은 위의 두 가지 특징을 해결하기 위해 사용한다. 쿠키(Cookie)란? 클라이언트를 식별할 때 사용. 클라이언트(브라우저) ..
-
[Spring] Redirect와 Forward에 대해 알아보자프로그래밍/Spring 2022. 1. 2. 16:45
JSP에서 Redirect와 Forard 처리 과정 Redirect - 위와 같이 Redirect는 요청이 2번이며, 각 요청은 서로 다른 객체(request)이다. - 첫 번째 요청을 GET으로 하던 POST로 하던 Redirect로 인해서 두 번째 요청을 보낼 때는 자동으로 GET으로 요청을 보낸다. 예시 1. 클라이언트가 /doc으로 요청을 보낸다. ( 1번째 요청: 수동 ) 2. 서버에서 응답 헤더를 통해 300번(Redirect)대의 상태코드와 메시지를 응답한다. (300번대는 Body정보가 없다.) 3. 클라이언트는 응답메시지를 보고 자동으로 다른 URL (/doc_new) 로 재요청을 한다. ( 2번째 요청: 자동 GET으로 ) 4. 서버는 요청에 대한 응답메시지를 클라이언트에 보낸다. 실생..
-
[Spring] @GetMapping과 @PostMapping프로그래밍/Spring 2021. 12. 31. 12:25
@GetMapping과 @PostMapping Spring 4.3 이후에 추가된 Get/Post 요청 전용 매핑 어노테이션으로 기존 @RequestMapping 대신 @GetMapping과 @PostMapping을 사용할 수 있다. @Controller public class RegisterController { //@RequestMapping(value="/register/add", method=RequestMethod.GET) @GetMapping("/register/add") public String registerForm() { return "registerForm"; } //@RequestMapping(value="/register/add", method=RequestMethod.POST) @P..
-
[Spring] @ModelAttribute와 WebDataBinder프로그래밍/Spring 2021. 12. 31. 12:16
@ModelAttribute 적용 대상을 Model의 속성으로 자동 추가해주는 어노테이션 (Model에 자동 저장) 반환 타입 또는 컨트롤러 메서드의 매개변수에 적용 가능하다. 예제 1 - 매개변수 기존에는 브라우저의 요청 값을 매개변수로 받아서 Model 객체를 통해서 매개변수를 저장했었다. @RequestMapping("/testMVC") public String main(User user, Model model) { // 매개변수로 받은 user 객체를 Model에 저장 model.addAttribute("user", user); // 작업 결과를 보여줄 뷰의 이름을 반환 return "userInfo"; } Model에 저장하고자 하는 매개변수 앞에 @ModelAttribute를 붙이면 model..
-
[Spring] @RequestParam에 대해 알아보자프로그래밍/Spring 2021. 12. 31. 11:00
@RequestParam 요청의 파라미터를 연결할 매개변수에 붙이는 어노테이션 예제 1 @RequestMapping("/requestParam") //public String main(@RequestParam(name = "year", required = false) String year) { public String main(String year) { // 위와 동일 System.out.println("년도 : " + year); return "yoil"; } 속성 name : 쿼리스트링 이름 required : 필수여부 (false면 필수 x) http://localhost/requestParam --> year = null http://localhost/requestParam?year --> yea..
-
[Spring] Servlet/JSP Filter에 대해 알아보자프로그래밍/Spring 2021. 12. 31. 10:50
Servlet Filter Client에서 Server로 요청이 들어오기 전에 서블릿을 거쳐서 먼저 필터링 하는 것을 서블릿 필터라고 한다. 서블릿마다 공통된 로직을 처리하기위해서 Filter를 사용한다. 공통적인 기능들을 서블릿이 호출되기 전에 수행(전처리)되게 하고 싶거나 서블릿이 호출 되고 난 뒤에 수행(후처리) 하고 싶으면 공통적인 기능들을 서블릿 필터로 구현하면 된다. Filter Chain 필터가 한개 이상 있을 때를 Filter Chain이라고 한다. Filter1의 전처리 -> Filter2의 전처리 -> Filter3의 전처리 -> 서블릿 호출 -> Filter3의 후처리 -> Filter2의 후처리 -> Filter1의 후처리 순으로 처리된다. 어떻게 쓰이나? 예제 - 수행시간 측정 /..