전체 글

개발 저장소

    Spring - Springboot + Vue3 + MariaDB를 카페24에 배포할 때 Tip(주의사항)

    카페 24에 호스팅 과정은 어렵지 않으니 다른 블로그를 참고하면 쉽게 할 수 있다. 대신 호스팅 과정 중에 겪은 문제들을 기록하고자 한다. 1. 환경 * 프로젝트 SpringBoot 2.7.14 Vue 3.3.4 JDK 8 * 서버 Tomcat 8.5.x JSP 2.3 Servlet 3.0 JDK 8 MariaDB 10.1.X UTF-8 2. Tip 2.1 403 Forbidden 에러 * 원인 : 보안 인증이 안돼 있는 경우 발생 * 해결방안 : url의 https -> http 로 변경 또는 ssl 인증서 발급 2.2 DB설정 정보가 틀릴 경우 java.sql.SQLInvalidAuthorizationSpecException: (conn=565) Access denied for user * 원인 : ..

    Spring - ArgumentResolver

    1. ArgumentResolver란? * 요청 매핑 핸들러 어댑터에 넘어온 요청을 객체, 변수로 바인딩 위의 그림은 Http 요청 메시지의 예시다. 사용자의 요청은 Http Method에 따라 다르지만 url에 '?'뒤에 오는 쿼리스트링으로 전달될 수도 있고 위의 예시처럼 body안에 저장돼 전해질 수도 있다. 또는 JSON, XML 등 다양한 형태로 요청 메시지가 서버로 전해진다. 이렇게 다양한 요청 메시지들을 프로그래머가 일일이 설정해주기란 상당히 불편한 일이다. 그래서 Spring에선 ArgumentResolver를 지원해 해당 요청 메시지들을 객체, 변수에 바인딩 해 해결해준다. 2. ArgumentResolver 동작과정 1. 요청에 적합한 Handler(Controller)가 있는 지 조회 ..

    서평 - 휴식의 철학

    휴식의 중요성 이전에 직장을 다닐 땐 주말의 술자리만을 기다리며 한 주의 스트레스를 풀었다. 스트레스는 해소됐지만 이후에 찾아오는 공허함과 체력소진은 해결할 수 없었다. 당장의 스트레스 해소에 급급하기만 할 뿐 근본적인 원인이 해결되지 않는 방법이었다. 그 때 어렴풋이 올바른 휴식의 중요성을 느끼고 여러 방법을 찾아 봤었다. 하지만 비슷한 일상의 관성에 노력은 쉽게 무너졌고 다시 원래의 모습으로 돌아오게 됐었다. 다른 직업들도 마찬가지겠지만 개발자는 특히 업무와 관련한 개인 공부시간이 중요하다. 그러다보니 개발자로서의 삶과 그 외의 삶의 균형을 맞추기가 쉽지 않다. 작년 가을 쯤 번아웃을 한 번 겪고 나니 개발(학습)에 몰두한 시간만큼 적당한 휴식이 반드시 필요하다고 느끼게 됐다. 이 후로 주에 하루는 ..

    Spring - DispatcherServlet에 대해 알아보자

    1. DispatcherServlet? 과거엔 view(사용자에게 보여지는 영역)단에서 비즈니스 로직을 처리해 코드가 서로 얽혀 유지보수에 어려움이 있었다. 이를 해결하기 위해 나온 패턴이 MVC(Model-View-Controller)패턴이다. 초창기 MVC패턴에선 다양한 요청을 처리하기 위한 Controller가 많아지고 이에 따라 중복되고 공통된 기능을 하는 코드들이 늘어났다. 이를 해결하기 위해 나온 방법이 FrontController다. FrontController의 역할은 한 회사의 대표와 같다. 대표는 외부에서 들어오는 각각의 요청들을 적절하게 수행할 수 있는 직원들에게 분배한다. 또 본인 혼자서 수행하기에 업무양이 많다면 전무, 상무, 부장 등 간부들에게 지시를 내려 적합한 직원을 찾도록한..

    Java - 서블릿과 서블릿 컨테이너

    1. Servlet? 1.1 정의 웹페이지를 동적으로 생성하고 웹 서버의 성능을 향상하기 위해 사용하는 자바 프로그램이다. 쉽게 풀어 쓰자면 클라이언트의 요청을 처리하고 응답을 생성하는 자바의 클래스라고 할 수 있다. 즉, 요청과 응답에 대한 로직을 개별적으로 구현하기엔 너무 복잡하기에 개발자의 요청, 응답처리를 간편하게 도와준다. 1.2 특징 JSP와의 차이 - JSP는 HTML안에 자바 코드가, 서블릿은 자바 코드안에 HTML을 포함하는 차이가 있다. 스레드 사용 - 외부요청에 프로세스 대신 경량의 스레드로 응답하기 때문에 가볍다. 동적 웹 페이지 생성 - 클라이언트의 요청에 따라 서비스를 제공하고 응답 서블릿 컨테이너에 의존적 - 클라이언트의 요청을 서블릿 컨테이너가 받고 적절한 서블릿에게 전달 보..