서론 리다이렉트는 무엇이고, 포워드와 차이점은 무엇인지에 대해서 알아보자. 리다이렉트 (Redirect) 어원은 Re(다시) + direct(요청하다/지시하다) 구체적으로는 클라이언트 (웹 브라우저)가 웹 서버에 어떤 URL을 요청했을 때, 서버가 리다이렉트를 지시하는 특정 HTTP 응답을 통해 웹 브라우저로 하여금 지정된 다른 URL로 재요청하라고 지시하는 것을 말한다. 예를 들어, 로그인 되지 않은 상태에서 메일함 접근을 시도하면, 권한을 먼저 얻으라고 로그인 창으로 리다이렉트를 해주는 것 동작방식 1. 클라이언트가 요청 2. 서버가 응답 응답 코드 3xx는 리다이렉트 메시지라고 했었다. 여기서 리다이렉트 응답은 바디는 없고 응답 헤더만 존재한다. 3. 클라이언트가 리다이렉트 (브라우저가 자동으로 수..
서론 백준 문제를 풀며, Arrays.sort(), Collections.sort()를 사용하며 그냥 오름차순, 내림차순등으로 정렬해주는 것이라고만 알고 있었는데, 정렬 단계 문제를 풀며, 조건을 줄 수 있으며 이는 Comparable, Comparator와 연관이 있음을 알게되었다. 따라서 이번에 Comparable과 Comparator에 대해서 알아보고자 한다. 사용 이유 두 객체를 비교하기 위해서 사용한다. 기본 자료형의 경우 비교에 문제가 없지만, 사용자가 직접 정의한 클래스에서 비교 기준을 어떻게 잡을 것인지? 이러한 기준을 잡아 주기 위해서 사용한다고 한다. 인터페이스 코드 비교 java.lang.Comparable public interface Comparable { public int co..
서론 컨트롤러의 매개변수에 붙을 수 있는 어노테이션 2가지에 대해서 알아보자. @RequestParam 요청의 파라미터를 연결할 매개변수에 붙이는 어노테이션 사용방법 1. (어노테이션만 붙이는 경우) public static void main(@RequestParam int year) calc(year); } 아무옵션도 사용하지 않았다면, 어노테이션이 붙은 변수명을 쿼리스트링에 사용하게 된다. localhost:8080/spring/test?year=2023 Option 1. (name, value) public static void main(@RequestParam(name = "year") int y) calc(y); } public static void main(@RequestParam(value ..
서론 이번에는 JSP의 기본객체와 유효범위에 대해서 알아보자 JSP 기본 객체 기본 객체 타입 설명 request javax.servlet.http.HttpServletRequest 요청 정보가 담겨있는 객체 response javax.servlet.http.HttpServletResponse 요청에 응답을 작성할 때 사용 session javax.servlet.http.HttpSession HTTP session을 구현한 객체, 세션 정보 저장에 사용 application javax.servlet.ServletContext Web Application 전체에서 공유하는 객체 config javax.servlet.ServletConfig JSP 페이지에 대한 설정 정보가 담긴 객체 page java.la..
서론 저번 시간에 관심사 분리를 하는 과정에서 Model을 사용하였다. 여기서 모델은 무엇이며, MVC 패턴은 어떤 것이지 간단하게 알아보고, MVC 패턴을 지켜서 코딩하기 위해서는 어떠한 규칙들을 지켜야 하는지에 대한 좋은 영상 자료가 있어서 이를 정리해보았다. MVC 패턴 (Model - View - Controller) MVC 패턴 : 애플리케이션을 모델, 뷰, 컨트롤러 세가지로 분리하는 패턴이다. 모델 (Model) : 데이터와 관련된 부분 뷰 (View) : 사용자에게 보여지는 부분 컨트롤러 (Controller) : 모델과 뷰를 이어주는 부분 MVC 동작 방식 위의 그림을 보면, 아주 간단하게 어떤식으로 동작하는지를 알아볼 수 있다. 하지만 실제 스프링 MVC에서는 이보다 더 복잡하게 동작한다..
서론 관심사 분리와 객체지향 설계 원칙 SOLID에 대해서 알아보자 객체 지향 설계 원칙 (SOLID) 객체 지향 설계 원칙은 정보처리기사 자격증을 준비한 사람이라면 다들 익숙할 것이다. 이는 객체 지향 프로그래밍 및 설계에 대한 5가지 원칙을 말하는데, 5가지 원칙은 다음과 같다. 단일 책임의 원칙 : SRP (Single Responsibility Principle) : 하나의 클래스는 하나의 목적을 위해서 생성되며, 클래스가 제공하는 모든 서비스는 하나의 책임을 수행하는 데 집중되어 있어야 한다는 원칙 개방 폐쇄의 원칙 : OCP (Open Close Principle) : 소프트웨어 구성요소는 확장에는 열려있고, 변경에는 닫혀 있어야 한다는 원칙 리스코프 치환의 원칙 : LSP (Liskov su..
서론 스프링을 공부하며, HTTP 프로토콜과 이와 관련된 객체들, 상태코드 등에 대해 더 자세하게 알아보고자 이번 포스팅을 시작하게 되었다!. 정보처리 기사를 공부하며 이론적인 내용은 어느정도 알고 있지만, 실제 프로그래밍에서 어떤식으로 사용되는지 알아보자 1. HTTP HTTP(Hyper Text Transfer Protocol)은 웹 클라이언트와 웹 서버가 통신하는 방법과 웹 서버에서 웹 클라이언트로 데이터 정보를 전송하는 방법을 정의하는 표준 프로토콜이다. http://로 시작하는 URL을 입력하면 웹 서버의 데이터 정보를 획득 할 수 있다. (http:// 는 인터넷 통신을 위한 프로토콜로 HTTP를 사용함을 의미한다.) 1) HTTP 특징 1-1) 클라이언트 서버 구조 클라이언트가 서버에 요청 ..
서론 이번에는 노트북을 포맷하고, 환경 설정을 하던 중 예전에 보았던, 톰캣 오류를 다시 보게되어 이를 해결하는 방법을 작성해두기로 하였다. 오류 위와 같은 오류가 나왔다!. 하나 이상의 포트가 잘못되어 서버를 시작할 수 없습니다. 서버 편집기를 열고 유효하지 않은 포트를 수정하십시오. 라는 오류인데, 이를 해결하기 위해서는 server.xml을 확인해보아야 한다. 해결 톰캣 서버를 더블클릭해주면 아래와 같은 창이 나온다. Tomcat admin port 는 기본적으로 8005인데, -1로 되어 있어서 오류가 난다. 결과 이렇게 변경해주고 실행하면 해결 완료!