분류 전체보기
-
쿠키와 세션카테고리 없음 2023. 11. 27. 09:52
쿠키와 세션을 사용하는 이유? HTTP 프로토콜의 특징이자 약점을 보완하기 위해서 사용한다. HTTP 프로토콜의 특징 1. Connectionless 프로토콜 (비연결 지향) 클라이언트가 서버에 요청(Request)을 했을 때, 그 요청에 맞는 응답(Response)을 보낸 후 연결을 끊는 처리방식이다. HTTP 1.1 버전에서 커넥션을 계속 유지하고, 요청(Request)에 재활용하는 기능이 추가되었다. (HTTP Header)에 keep-alive 옵션을 주어 커넥션을 재활용하게 한다. HTTP 1.1 버전에선 디폴트(default) 옵션이다. HTTP가 TCP위에서 구현되었기 때문에(TCP : 연결 지향, UDP : 비연결 지향) 연결 지향적이라고 할 수 있다는 얘기가 있어 논란이 있지만, 아직까진..
-
jsp의 scope 정리WEB/JSP 2023. 11. 27. 09:37
[SCOPE의 정의] - 웹 서버에서 객체 또는 변수가 생성된후 유효 할 수 있는 범위를 말한다. - 총 4가지 종류의 scope가 존재 한다. Page : 페이지 내에서 지역변수처럼 사용 Request : http요청을 WAS가 받아서 웹 브라우저에게 응답할 때까지 변수가 유지되는 경우 사용 Session : 웹 브라우저 별로 변수가 관리되는 경우 사용 Application : 웹 어플리케이션이 시작되고 종료될 때까지 변수가 유지되는 경우 사용 (모든 클라이언트에게공통적으로 무언가를 보여 줄때 사용) Scope 종류 유지 범위 활용 방법 JSP 내장 객체 servlet 객체 Page Scope 요청된 page 내부에서사용 지역 변수 처럼 활용 JSP에서 사용 pageContext Request Scop..
-
jsp와 servlet의 차이점은?WEB/JSP 2023. 11. 27. 09:32
Servlet이란 웹 기반의 요청에 대한 동적인 처리가 가능한 Server Side에서 돌아가는 Java Program Java 코드 안에 HTML 코드 (하나의 클래스) 웹 개발을 위해 만든 표준 JSP란 Java 언어를 기반으로 하는 Server Side 스크립트 언어 HTML 코드 안에 Java 코드 Servlet를 보완하고 기술을 확장한 스크립트 방식 표준 Servlet의 모든 기능 + 추가적인 기능 Servlet과 JSP의 차이 Servlet Java 코드 안에 HTML 코드 (하나의 클래스) data processing(Controller)에 좋다. 즉 DB와의 통신, Business Logic 호출, 데이터를 읽고 확인하는 작업 등에 유용하다. Servlet이 수정된 경우 Java 코드를 컴..
-
서브쿼리(스칼라,인라인뷰,일반)DB/SQL 2023. 8. 24. 08:05
1) 서브 쿼리(Subquery) 💡 서브쿼리(subquery) 란? - ‘하나의 SQL 문장 안에서 다른 SQL 문장을 사용하는 것'을 의미합니다. 서브 쿼리는 메인 쿼리에 종속된 쿼리로 메인 쿼리의 결과로 필요로 할 때 사용합니다. - 일반적으로 WHERE 또는 HAVING 절에서 사용되며 메인 쿼리와 서브쿼리 사이에는 ‘괄호’로 구분되며 메인 쿼리의 결과에 따라 다른 결과를 반환하는 데 사용됩니다. 1. 서브 쿼리의 사용범위 💡 서브쿼리는 WHERE, HAVING, FROM, SELECT 등에서 사용할 수 있으며 ‘단일’ 혹은 ‘중첩’하여 사용이 가능합니다. 사용 위치 서브 쿼리 종류 SELECT 스칼라 서브쿼리 FROM 인라인 뷰 WHERE 일반 서브쿼리, 스칼라 서브쿼리 HAVING 일반 서브쿼..
-
@Controller와 @RestController 차이WEB/Spring 2023. 7. 17. 08:10
Spring에서 컨트롤러를 지정해주기 위한 어노테이션은 @Controller와 @RestController가 있습니다. 전통적인 Spring MVC의 컨트롤러인 @Controller와 Restuful 웹서비스의 컨트롤러인 @RestController의 주요한 차이점은 HTTP Response Body가 생성되는 방식입니다. 이번에는 2가지 어노테이션의 차이와 사용법에 대해 알아보도록 하겠습니다. 1. @Controller 이해하기 [ Controller로 View 반환하기 ] 전통적인 Spring MVC의 컨트롤러인 @Controller는 주로 View를 반환하기 위해 사용합니다. 아래와 같은 과정을 통해 Spring MVC Container는 Client의 요청으로부터 View를 반환합니다. Clien..
-
String이 불변 객체인 이유Java/Java 2023. 3. 28. 14:36
String이 불변 객체인 이유 String 객체가 불변 객체라는 것은 다들 알고 있을 것입니다. 불변 개체는 완전히 생성된 후에도 내부 상태가 일정하게 유지되는 개체입니다. 즉, 객체가 변수에 할당되면 참조를 업데이트하거나 내부 상태를 어떤 방법으로도 변경할 수 없습니다. 그러면 자바에서는 왜 String을 불변 객체로 만들었을까요? 성능, 동기화, 캐싱, 보안의 이유로 불변 객체로 만들었는데 하나씩 알아보겠습니다. 1. 성능(Performance) 자바에서 문자열은 정말 많이 사용됩니다. 그렇기 때문에 자바에서는 상수 풀이라는 것을 만들었습니다. 상수 풀이 무엇인지 아래 코드를 보면서 알아보겠습니다. public class Test { public static void main(String[] arg..
-
String StringBuilder StringBuffer 차이Java/Java 2023. 3. 28. 14:24
Java 에서 문자열을 다루를 대표적인 클래스로 String , StringBuffer, StringBuilder 가 있다. 연산이 많지 않을때는 위에 나열된 어떤 클래스를 사용하더라도 이슈가 발생할 가능성은 거의 없다. 그러나 연산횟수가 많아지거나 멀티쓰레드, Race condition 등의 상황이 자주 발생 한다면 각 클래스의 특징을 이해하고 상황에 맞는 적절한 클래스를 사용해야 한다. | String vs StringBuffer/StringBuilder String과 StringBuffer/StringBuilder 클래스의 가장 큰 차이점은 String은 불변(immutable)의 속성을 갖는다는 점이다. String str = "hello"; // String str = new String("he..
-
JVM 구조Java/Java 2023. 3. 28. 10:06
JVM 구조 자바 가상 머신 JVM(Java Virtual Machine)은 자바 프로그램 실행환경을 만들어 주는 소프트웨어입니다. 자바 코드를 컴파일하여 .class 바이트 코드로 만들면 이 코드가 자바 가상 머신 환경에서 실행됩니다. JVM은 자바 실행 환경 JRE(Java Runtime Environment)에 포함되어 있습니다. 클래스 로더(Class Loader) 자바는 동적으로 클래스를 읽어오므로, 프로그램이 실행 중인 런타임에서야 모든 코드가 자바 가상 머신과 연결됩니다. 이렇게 동적으로 클래스를 로딩해주는 역할을 하는 것이 바로 클래스 로더(class loader)입니다. 자바에서 소스를 작성하면 .java파일이 생성되고 .java소스를 컴파일러가 컴파일하면 .class파일이 생성되는데 클..