분류 전체보기42 서블릿, JSP, MVC 패턴 서블릿 만으로 회원관리 웹 만들기 싱글톤 패턴은 객체를 단 하나만 생성해서 공유해야 하므로 생성자를 private 접근자로 막음 request로 받은 데이터로 Member객체를 만들어 저장 후, html로 응답한다. 서블릿 덕분에 동적으로 원하는 HTML을 마음껏 만들 수 있지만 매우 비효율 적이고 복잡하다. 이것이 템플릿 엔진이 나온 이유이다. 템플릿 엔진을 사용하면 HTML 문서에서 필요한 곳만 코드를 적용해서 동적으로 변경할 수 있다. 템플릿 엔진에는 JSP, Thymeleaf, Freemarker, Velocity 등이 있다. JSP로 회원관리 웹 만들기 JSP는 자바 코드를 그대로 다 사용할 수 있다. 자바의 import 문과 같다. 이 부분에는 자바 코드를 입력할 수 있다. 이 부분에는 자바 .. 2023. 8. 10. 서블릿 Hello 서블릿 - 스프링 부트는 서블릿을 직접 등록해서 사용할 수 있도록 @ServletComponentScan 을 지원한다. @WebServlet 서블릿 애노테이션 name: 서블릿 이름 urlPatterns: URL 매핑 - HTTP 요청을 통해 매핑된 URL이 호출되면 서블릿 컨테이너는 service 메서드를 실행한다. HttpServletRequest역할 HTTP 요청 메시지를 개발자가 직접 파싱해서 사용해도 되지만, 매우 불편하다. 서블릿은 개발자 대신에 HTTP 요청 메시지를 파싱한다. 그리고 그 결과를 HttpServletRequest 객체에 담아서 제공한다. 파싱이란 - 데이터를 분해 분석하여 원하는 형태로 조립하고 다시 빼내는 프로그램을 말한다. POST요청은 포스트맨을 통해 받아볼 .. 2023. 7. 13. 웹 애플리케이션 이해 쓰레드 - 애플리케이션 코드를 하나하나 순차적으로 실행하는 것 - 자바 메인 메서드를 처음 실행하면 main이라는 이름의 쓰레드가 실행 - 쓰레드는 한번에 하나의 코드 라인만 실행한다. 만약에 요청마다 쓰레드를 생성하면 동시 요청을 처리할 수 있고, 하나의 쓰레드가 지연되어도, 나머지 쓰레드는 정상 동작한다. 하지만 쓰레드 비용은 매우 비싸고, 고객 요청이 너무 많으면, CPU, 메모리 임계점을 넘어서 서버가 죽을 수 있다. 쓰레드 풀 - 필요한 쓰레드를 쓰레드 풀에 보관하고 관리한다. - 쓰레드가 필요하면, 생성되어 있는 쓰레드를 꺼내서 사용한다. - 사용을 종료하면 쓰레드를 반납한다. 쓰레드가 이미 생성되어 있으므로, 쓰레드를 생성, 종료하는 비용이 절약되고 응답 시간이 빠르다. 생성 가능한 쓰레드의.. 2023. 7. 12. 파이썬 내장 함수 1. eval() 인자로 주어진 문자열이 수식이라면, 수식의 결과를 반환해주는 함수이다. import sys input = sys.stdin.readline A, B = input().split() if eval(A)>eval(B): print(eval(A)) else: print(eval(B)) A와 B에 수식이 주어지고 연산자 우선순위에 따라 계산했을 때 더 큰 값 출력 2. str.replace() 문자열에 등장하는 특정 문자열을 한 번에 수정, 제거할 수 있다. import sys input = sys.stdin.readline Slen, Elen = map(int, input().split()) S = input().rstrip() E = input().rstrip() while S in E: .. 2023. 7. 5. HTTP -3 HTTP 상태코드 요청이 잘 처리되었는지 응답이 올 때 알려주는 기능이다. 1xx(informational) = 요청이 수신되어 처리 중 2xx(Successful) = 요청 정상 처리 3xx(Redirection) = 요청이 완료하려면 추가 행동이 필요 4xx(Client Error) = 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음 5xx(Server Error) = 서버 오류, 서버가 정상 요청을 처리하지 못함 리다이렉션 이해 - 영구 리다이렉션 - 특정 리소스의 URI가 영구적으로 이동 ex) /members => /users301, 308301 = 리다이렉트시 요청 메서드가 GET으로 변하고, 본문이 제거될 수 있다.308 = 301과 기능이 같음, 본문이 유지된다. - 일시.. 2023. 7. 5. HTTP - 2 HTTP 메서드 URI는 리소스만 식별한다. 리소스와 해당 리소스를 대상으로 하는 행위를 분리 - 리소스 : 회원 - 행위 : 조회, 등록, 삭제, 변경 리소스는 명사, 행위는 동사 (미네랄을 캐라) 행위의 구분은 GET, POST 같은 HTTP 메서드로 구분한다. HTTP 메서드 - GET, POST GET : 리소스 조회 POST : 요청 데이터 처리, 주로 등록에 사용 PUT : 리소스를 대체, 해당 리소스가 없으면 생성 PATCH : 리소스 부분 변경 (회원의 이름을 바꾸거나 등등) DELETE : 리소스 삭제 GET - 서버에 전달하고 싶은 데이터는 query (쿼리 파라미터, 쿼리 스트링)를 통해서 전달 - 메시지 바디를 사용해서 데이터를 전달할 수 있지만 권장하지 않음 POST - 메시지 바.. 2023. 7. 4. 이전 1 2 3 4 ··· 7 다음