우리가 보는 특정 페이지들을 구성하는 WebApp은 크게 Front와 Back으로 나뉘어진다.
Spring 프레임워크는 Java 기반 웹 애플리케이션을 개발하기 위한 강력한 프레임워크로, Spring Boot와 Spring Legacy(Spring MVC) 두 가지 방식으로 나누어서 볼 수 있다
JSP 는 서버에서 동적으로 웹 페이지를 생성하기 위한 기술이다.HTML 내에 Java 코드를 포함할 수 있는 구조를 가진다.Servlet 기반으로 동작하며, 주로 Spring Legacy(Spring MVC) 환경에서 View를 렌더링하는 데 사용된다.✅ HTML +
Java에서 데이터베이스와 연결하고 SQL을 실행할 수 있도록 해주는 표준 API데이터베이스에 연결하여 데이터를 삽입, 조회, 수정, 삭제하는 기능을수행 할 수 있게 해 줍니다.데이터베이스 연결 관리 클래스Connection 객체 생성 역할데이터베이스와의 연결을 나타내
MyBatis는 SQL을 직접 작성하면서도 객체 매핑 기능을 제공하는 SQL Mapper 프레임워크다.SQL을 직접 다룰 수 있어 복잡한 쿼리를 효율적으로 처리할 수 있다.개발자가 SQL문을 직접 컨트롤하여 복잡한 쿼리를 처리 할수 있다. SQL 실행 후 자동으로 Re

JavaScript 라이브러리로, HTML 문서 탐색 및 조작, 이벤트 처리, 애니메이션, Ajax 요청 등을 쉽게 수행할 수 있도록 도와주는 도구이다.간결한 문법 : JavaScript에 비해 적은 코드로 동일한 기능을 구현할 수 있다.DOM 조작 기능 강화 : 간편
자바 객체와 관계형 데이터베이스 사이의 매핑을 자동으로 수행하여, SQL 문을 직접 작성할 필요 없이 객체를 통해 데이터를 저장하고 조회할 수 있도록 해 주는Java EE(Enterprise Edition)에서 정의된 표준 ORM 기술Entity: 데이터베이스 테이블과

본 게시물에서는IntelliJ IDE, JAVA8, Spring 5.x 를 기준으로 세팅하였습니다.먼저, Maven 프로젝트로 생성해 줍니다 WebApplication 을 만들 것이기 때문에, Archetype은 webapp으로 지정해 줍니다. (푸른 테두리)\++ 해
JSP 코드에서 Java 코드 최소화 및 유지보수성 향상을 위해자주 사용하는 기능들(제어문, 반복문, 데이터 출력 등)을 표준 태그 형태로 제공하는 라이브러리.스크립트릿(<% %>) 없이 HTML과 비슷한 구조로 코딩이 가능하다가독성이 뛰어나고 유지보수가 용이하다
JSTL - Functions라이브러리는 문자열 처리, 리스트 크기 확인, 특정 값 포함 여부 체크 등의 유틸리티 함수를 테그로 제공합니다.\++ 선언 필요 테그추신)c:if 테그는 test 속성의 값이 ture 일 때에만 동작/출력하게 합니다.특정 문자 및 변수의 길
JSP에서 스크립틀릿(<% %>)을 최소화하고, HTML과 Java 코드를 분리하여 가독성과 유지보수성을 높이기 위해 사용되는 JSP 표현 언어입니다.사용 예시 )(1) 산술 연산자(2) 비교 연산자(3) 논리 연산자(1) 자바 빈(Bean)(객체) 접근JAVA
모든 HTTP 요청을 받아서 적절한 컨트롤러로 전달하고, 실행 결과를 클라이언트에게 반환하는 역할을 합니다.클라이언트가 http 요청을 서버에 보내면,DispatcherServlet이 요청을 가로챕니다.HandlerMapping이 URL에 맞는 컨트롤러를 색인합니다.찾
뷰 리졸버란? > 컨트롤러에서 지정한 뷰의 이름 → 해당하는 View 파일 뷰 리졸버 동작 원리 사용자의 특정 URL 요청을 Controller가

본 설정은 IntelliJ에서 MariaDB와의 연결을 설정합니다.MyBatis 라이브러리, MyBatis보조 라이브러리, MariaDB JDBC 드라이버3개의 의존성을 추가합니다.contextConfigLocation : 위치/root-context.xml을 설정파일
Docker는 컨테이너 기반의 가상화 기술을 제공하는 오픈소스 플랫폼이다. 애플리케이션을 컨테이너라는 단위로 패키징하고 배포, 실행할 수 있도록 돕는다. Docker 핵심 요소 1. 컨테이너(Container) 애플리케이션과 실행에 필요한 모든 라이브러리, 종속성을
JWT의 구조 > JWT는 3가지 부분으로 구성되며, 각 부분은 .(점)으로 구분되며, 각 부분은 Base64 URL로 인코딩되며, Signature 부분은 특정서명 알고리즘을 사용하여 생성됩니다. | 부분 | 설명
Apache Kafka는 대규모 데이터 스트리밍을 처리하는 분산 메시지 브로커로,높은 처리량, 확장성, 내결함성이 특징이며, 주로 로그 수집, 이벤트 스트리밍, 비동기 메시징, 데이터 파이프라인 구축 등 많은 곳에서 사용됩니다.데이터를 Kafka Topic에 게시하는
Redis는 메모리 기반의 데이터 저장소로, 데이터베이스, 캐시, 메시지 브로커 등 다양한 용도로 활용되는 오픈 소스 프로젝트였으나, 24년 3/21 부터 일부 고급 기능 모듈(예: RediSearch, RedisGraph 등)에 대해 별도의 라이선스를 적용, 상업적
기능 및 특징 1. 엔티티 관리 (Entity Management) 엔티티의 생명주기 관리 (영속, 비영속, 준영속, 삭제 상태 등) 2. 1차 캐시(First Level Cache) 엔티티 매니저(EntityManager)가 관리하는 내부 캐시로, 조회된 엔티티를
서버 측에서 특정 사용자의 상태를 유지하는 방법으로, 사용자가 웹사이트에 방문했을 때에 서버가 해당 사용자의 정보를 메모리에 저장, 이를 세션 ID(Session ID)라는 고유한 식별자를 통해 관리하는하는 저장소(스토리지) 또는 컨테이너(Container)사용자가
jQuery의 $.ajax()를 사용할 때 클라이언트(View)와 서버(Controller)가 맞춰야 할 형식을 정확히 일치시키는 것이 중요하다.Content-Type과 데이터 전송 방식을 일치시키지 않으면 요청이 실패하거나 데이터가 정상적으로 전달되지 않을 수 있다.
Spring MVC에서 WAS의 역할 > WAS == Servlet 기반의 웹 애플리케이션 프레임워크를 실행하고, 클라이언트 요청을 처리하는 핵심 요소 > DispatcherServlet을 중심으로 동작하는 Spring MVC 에서, WAS는 이 서블릿을 실행하는
HTML, CSS, JavaScript로 구성된 오픈 소스 프레임워크로써, 반응형 웹 디자인을 쉽게 구현할 수 있도록 도와주는 프론트엔드 라이브러리.즉, 구현하기 복잡한 여러 기능들을 간단한 방법으로 사용 할 수 있게 해주는 프레임워크.<brBootstrap은 쉽
JSP는 서버에서 HTML을 동적으로 생성하는 서버 사이드 기술이지만, 결국 클라이언트(웹 브라우저)에서 실행될 때는 HTML, CSS, JavaScript 코드로 변환된다.이때문에 DOM을 잘 이해하지 못하면, JSP에서 동적으로 생성된 HTML을 조작하는 데에어려움
CDN(Content Delivery Network, 콘텐츠 전송 네트워크)은 전 세계 여러 지역에 분산된 서버 네트워크를 이용하여 사용자에게 더 빠르고 안정적으로 콘텐츠를 제공하는 기술사용자가 웹사이트 요청브라우저에서 특정 웹사이트를 요청하면, DNS 조회를 통해 C
WAS(Web Application Server, 웹 애플리케이션 서버)는 웹 애플리케이션을 실행하고 클라이언트(웹 브라우저) 요청을 처리하는 서버로, 동적인 웹 페이지를 제공하는 서버이다.WAS는 단순히 정적인 HTML 파일을 제공하는 웹 서버(Apache, Ngin
Spring MVC에서 Redirect는 클라이언트가 다른 URL로 이동하도록 서버가 응답하는 방식으로, Spring MVC에서는 redirect: 접두사를 사용하여 리다이렉트를 쉽게 구현할 수 있습니다.리다이렉트는 클라이언트(웹 브라우저)에게 새로운 URL로 이동하도
요청을 받았으며, 처리를 계속하고 있다는 의미클라이언트가 모든 요청 헤더를 전송했으며, 이제 본문을 보내도 된다는 의미요청이 정상적으로 처리됨요청이 성공적으로 처리되었을 때 사용 (가장 일반적인 응답)리소스가 성공적으로 생성됨 (POST 요청 등)요청은 성공했지만 반환

웹 개발에서 사용자 인증과 상태 유지를 위해 쿠키, 세션, 토큰을 사용합니다. 각각의 개념과 차이점을 명확히 이해하면 보안과 사용자 경험을 개선해 보아요!클라이언트(브라우저)에 저장되는 작은 데이터 조각입니다.주로 서버가 클라이언트에 정보를 저장하도록 지시해요!다음 요
REST (Representational State Transfer)는웹의 자원을 HTTP URI로 표현하고, HTTP 메서드(GET, POST 등)를 통해 자원에 행위를 수행하는 아키텍처 스타일!요약 :"자원을 URI로 표현하고, 행위는 HTTP 메서드로 구분하는 것
클라이언트와 서버가 요청과 응답을 주고 받는것을 당연하듯이 받아들이고 있었지만, 그 속에서 어떤 데이터가 오고 가는지에 대해서는 그저 감이나 대략적으로만알고 있었다는 생각이 들었습니다.본 글에서는 요청/응답 안에서 어떤 정보가 어떻게 구성되어 있는지에 대해서를중점으로
현재의 웹에서 클라이언트와 서버가 통신할 때 사용하는 주요 수단인 HTTP 메소드. 각각의 메서드는 어떤 목적의 요청인지를 명확히 나타내고, RESTful API 설계에서도 핵심적인 역할을 합니다.그러나, 각 메소드들이 정확히 어떤 역할과 특징을 가지고 있는지 확실하게
HTTPS (HyperText Transfer Protocol Secure)는HTTP + TLS(SSL)을 이용해 암호화된 통신을 제공하는 프로토콜입니다.즉, 기존 HTTP에 보안 기능이 추가된 버전입니다.HTTP는 요청과 응답을 평문(Plain text)으로 주고받습
Content-Type을 설명하기 위해선 먼저 MIME-Type을 알아야 합니다.MIME (Multipurpose Internet Mail Extensions) Type은파일이나 데이터의 형식(타입)을 명시하는 문자열입니다.원래는 이메일에서 첨부파일의 형식을 알려주기
서버에서 발생하는 주요 이벤트, 동작, 예외 등의 정보를 기록한 텍스트 데이터로,쉽게 말하자면 서버에서 무슨 일이 일어나고 있는 지를 기록한 보고서 입니다!서버에서 일어나는 세세한 일들은 너무 많아서 보고도 무슨 말인지 전부 다 파악하기는힘들지만! 보다보면 중요하고 지
클라이언트로부터 들어온 클라이언트의 요청을 받아서 어떤 컨트롤러가 처리해야 할지를 결정하고,처리 결과를 받아 다시 클라이언트에게 응답하는 역할을 하는 서블릿입니다.Java로 웹 요청/응답을 처리하는 클래스입니다.클라이언트의 HTTP 요청을 받아서, 처리하고, 응답을 보
@Transactional에 대해서 알기 위해, 먼저 DB의 Transaction에 대해서 먼저 짚고 넘어가겠습니다.데이터베이스의 작업 단위(Unit of Work)로,여러 작업이 하나의 논리적 단위로 묶여서 모두 성공하거나 모두 실패해야 하는 개념입니다.비유하자면,
대상(원본 객체)을 대신해서 어떤 일을 처리해주는 대리 객체 를 생성해서 실행하는 등,원래 객체의 앞에서 중간 역할을 하는 껍데기로 감싸서, 제어, 로깅, 보안, 트랜잭션, 성능 최적화 등의 여러가지 작업들을 가로채서 처리하는 패턴, 즉 이러한 방식으로 작동하게 하는가
여기서의 예외는 서버에서 발생하는 오류를 뜻합니다.이 오류가 발생했을 때에 어떻게 처리하는지를 예외 처리라고 하며, 이 예외 처리를 하는 목적에 대해서 먼저 알아보겠습니다.사용자에게 명확한 에러 메시지를 전달사용자에게 현재의 에러가 어떤 문제가 있는지를, 뭐가 잘못되었
Controller로 들어온 여러 가지 값들!뭔가 보냈는데.... 왜 못받지?? 또는 어떻게 받아야 하지...??이러한 일을 줄여 봅시다!주로 GET 요청에 사용 되며, ?key=value 형태의 파라미터를 받을 때 사용됩니다!추가로 required, defaultVa
어떤 작업이 완료될 때까지 기다리지 않고, 그 작업이 끝나는 동안 다른 작업을 계속 수행할 수 있는 방식입니다.JAVA 구조로 이해하자면 메소드A와 메소드B가 있을 떄, 메소드A가 비동기 메소드라면 메소드A의 실행 종료를 기다리지 않고메소드B를 실행 할 수 있게 되는

DB를 쓰면서 테스트를 하다 보면, 이런 순간이 꼭 옵니다."왜 이렇게 SELECT가 느리지...?"쿼리문이 잘못됐나?, DB가 느린 건가?, 서버가 문제인가?, 버그인가? 생각해 보면, 인덱스를 설정 안했다는 것을 깨닫게 됩니다.저도 초반에는 인덱스를 추상적으로 빨라
JSP를 사용하는 SpringMVC 프로젝트에서, Controller에서 넘긴 객체를 JSP에 바인딩해 HTML input, JavaScript 코드 등에 사용하려고 할 때 다음과 같은 질문들이 자연스럽게 생깁니다.EL 표현식으로 JS에서 값을 비교하려 했는데 왜 에러