일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Java의정석
- java
- 스프링
- inflearn
- 이것이자바다
- 인프런
- 항해플러스
- JPA
- 스프링 핵심원리
- 불친절한SQL프로그래밍
- 자바의정석
- 자바공부
- 자바연습문제
- REGEXP_SUBSTR
- 제네릭
- Spring
- 스프링MVC
- 항해플러스 백엔드
- Numpy
- Secure Coding
- 불친절한 SQL 프로그래밍
- docker
- 김영한
- 서블릿
- 분석함수
- 시큐어코딩
- 스프링입문
- Python
- 스프링 부트와 JPA
- 자바의정석 연습문제
- Today
- Total
목록분류 전체보기 (122)
Continuous Challenge
객체 지향 프로그래밍(OOP, Object Oriented Programming) 현실 세계의 사물들을 객체라고 보고 그 객체로부터 개발하고자 하는 특징들을 뽑아와 프로그래밍 하는 것. (추상화) 코드의 재사용성이 높다. 자주 사용되는 로직을 라이브러리로 만들어두면 계속해서 사용가능하며 신뢰성을 확보할 수 있다. 또한 라이브러리를 각종 예외상황에 맞게 잘 만들어두면 에러를 컴파일 단계에서 잡아낼 수 있으므로 버그 발생이 줄어든다. 또한 내부 동작을 알지 못하더라도 라이브러리가 제공하는 기능들을 사용할 수 있기 때문에 생산성이 높아지게 된다. 객체 단위로 코드가 나눠져 작성되기 때문에 디버깅이 쉽고 유지보수에 용이하다. 객체 간의 정보 교환이 모두 메시지 교환을 통해 일어나므로 실행 시스템에 많은 over..
HttpServletRequest 임시저장소 기능 해당 HTTP 요청이 시작부터 끝날 때까지 유지되는 임시 저장소 기능 저장 : request.setAttribute(name, value) 조회 : request.getAttribute(name) 세션 관리 기능 request.getSession(create: true) HTTP 요청 데이터 GET - 쿼리 파라미터 - 메시지 바디 없이, URL의 쿼리 파라미터에 데이터를 포함해서 전달 - 예) 검색 필터, 페이징 등에서 많이 사용하는 방식 POST - HTML Form - content-type: application/x-www-form-urlencoded . application/x-www-form-urlencoded 형식은 앞서 GET에서 살펴본 쿼..
자바 뷰 템플릿 역사 JSP - 속도 느림, 기능 부족 프리마커(Freemarker), Velocity(벨로시티) - 속도 문제 해결, 다양한 기능 타임리프(Thymeleaf) - 내추럴 템플릿 : HTML 의 모양을 유지하면서 뷰 템플릿 적용 가능 - 스프링 MVC와 강력한 기능 통합 - 최선의 선택, 단 성능은 프리마커, 벨로시티가 더 빠름
백엔드 개발자가 고민해야 할 데이터 전달 1. 정적 리소스 2. HTML 페이지 3. HTTP API HTML이 아니라 데이터를 전달 주로 JSON 형식 사용 다양한 시스템에서 호출 데이터만 주고받음. UI 화면이 필요하면 클라이언트가 별도 처리 UI 클라이언트 접점 - 앱 클라이언트(아이폰, 안드로이드, PC 앱) - 웹 브라우저에서 자바스크립트를 통한 HTTP API 호출 - React, Vue.js 같은 웹 클라이언트 서버 to 서버 - 주문 서버 → 결제 서버 - 기업 간 데이터 통신 SSR - 서버 사이드 렌더링 서버에서 최종 HTML을 생성해서 클라이언트에 전달 주로 정적인 화면에 사용 관련기술 : JSP, 타임리프 → 백엔드 개발자 CSR - 클라이언트 사이드 렌더링 HTML 결과를 자바스크..
쓰레드 애플리케이션 코드를 하나하나 순차적으로 실행하는 것은 쓰레드 자바 메인 메서드를 처음 실행하면 main이라는 이름의 쓰레드가 실행 쓰레드가 없다면 자바 애플리케이션 실행이 불가능 쓰레드는 한번에 하나의 코드 라인만 수행 동시 처리가 필요하면 쓰레드를 추가로 생성 요청마다 쓰레드 생성 단점 쓰레드 생성비용은 매우 비싸다. - 고객의 요청이 올 때마다 쓰레드를 생성하면 응답 속도가 늦어진다. 쓰레드는 컨텍스트 스위칭 비용이 발생한다. 쓰레드 생성에 제한이 없다. - 고객 요청이 너무 많이 오게 되면 CPU, 메모리 임계점을 넘어 서버가 죽을 수 있다. 쓰레드 풀 요청마다 쓰레드 생성의 단점 보완 특징 - 필요한 쓰레드를 쓰레드 풀에 보관하고 관리한다. - 쓰레드 풀에 생성 가능한 쓰레드의 최대치를 관..
서블릿 특징 urlPatterns(/hello)의 URL이 호출되면 서블릿 코드가 실행 HTTP 요청 정보를 편리하게 사용할 수 있는 HttpServletRequest HTTP 응답 정보를 편리하게 사용할 수 있는 HttpServletResponse 개발자는 HTTP 스펙을 매우 편리하게 사용 HTTP 요청, 응답 흐름 HTTP 요청 시 WAS는 Request, Response 객체를 새로 만들어서 서블릿 객체 호출 개발자는 Request 객체에서 HTTP 요청 정보를 편리하게 꺼내서 사용 개발자는 Response 객체에서 HTTP 응답 정보를 편리하게 입력 WAS는 Response 객체에 담겨있는 내용으로 HTTP 응답 정보를 생성 서블릿 컨테이너 톰캣처럼 서블릿을 지원하는 WAS를 서블릿 컨테이너라고..
웹 서버(Web Server) HTTP 기반으로 동작 정적 리소스 제공, 기타 부가기능 정적(파일) HTML, CSS, JS, 이미지, 영상 예) NGINX, APACHE 웹 애플리케이션 서버(WAS - Web Application Server) HTTP 기반으로 동작 웹 서버 기능 포함 + (정적 리소스 제공 가능) 프로그램 코드를 실행해서 애플리케이션 로직 수행 - 동적 HTML, HTTP API(JSON) - 서블릿, JSP, 스프링 MVC 예) 톰캣(Tomcat), Jetty, Undertow 차이 웹 서버는 정적 리소스(파일), WAS는 애플리케이션 로직을 실행 사실 둘의 용어, 경계가 모호함 - 웹 서버도 프로그램을 실행하는 기능을 포함하기도 함 - 웹 애플리케이션 서버도 웹 서버의 기능을 제..
1. 웹 애플리케이션 이해 2. 서블릿, JSP, MVC 패턴 3. MVC 프레임워크 (핵심 구조, 기본 기능, 웹 개발)
HTTP에 대해서 더 깊이있게 학습 1. HTTP 스펙 RFC 2616 : https://tools.ietf.org/html/rfc2616 → 이것 보면 안됨! RFC 7230~7235 : https://tools.ietf.org/html/rfc7230 → 이걸로 모두 개정 2. HTTP 완벽가이드 책 (RFC 2616 기준이라는 점 감안)
캐시 기본 동작 캐시가 없을 때 데이터가 변경되지 않아도 계속 네트워크를 통해서 데이터를 다운로드 받아야 한다. 인터넷 네트워크는 매우 느리고 비싸다. 브라우저 로딩 속도가 느리다. 느린 사용자 경험 캐시 적용 캐시 덕분에 캐시 가능 시간동안 네트워크를 사용하지 않아도 된다. 비싼 네트워크 사용량을 줄일 수 있다. 브라우저 로딩 속도가 매우 빠르다. 빠른 사용자 경험 캐시 시간 초과 캐시 유효 시간이 초과하면, 서버를 통해 데이터를 다시 조회하고, 캐시를 갱신한다. 이 때 다시 네트워크 다운로드가 발생한다. 검증 헤더와 조건부 요청 캐시 유효 시간 초과하여 서버에 다시 요청하면 다음 2가지 상황이 나타단다. 1. 서버에서 기존 데이터를 변경함 2. 서버에서 기존 데이터를 변경하지 않음 검증 헤더와 조건부..