본문 바로가기

전체 글68

(웹) CGI / WAS / Servlet / Servlet컨테이너 / JSP / Web MVC / Servlet 동작과정 CGI(Common Gateway Interface) - 클라이언트로 부터 요청 받은 웹서버와 프로그램이 통신하는 방법 WAS(WebApplicationServer) - 정적인 페이지를 처리하는 WebServer와 달리 동적인 페이지를 처리한다. 보통 WebServer로는 Apach, WAS는 Tomcat을 사용하며 WAS로 들어온 요청은 JSP, Servlet 등을 통해 처리 된다. Servlet - 클라이언트의 요청을 받아서 응답해주는 Java API이다. Servlet만으로 html을 응답할수 있기에 동적인 페이지의 웹 통신을 할 수 있지만 Java로 Html을 만들어서 응답하는 방식이 번거롭고 코드가 바뀔때 마다 매번 컴파일 해야하기에 JSP라는 대안책이 나왔다. Servlet 컨테이너 - 서블릿.. 2021. 7. 24.
(Java)메모리 상수풀 영역 / JDBC / 리플렉션 / 제네릭 메모리 상수풀 영역 - JVM의 메모리 영역 중 힙 영역안에 있으며 리터럴과 같은 상수들이 저장되는 곳이다. 프로세스가 종료될때까지 지워지지 않으며 상수가 필요할때 가장 먼저 이곳에서 찾는다. JDBC - 자바에서 데이터베이스를 사용하기 위해 필요한 API로 해당 DB를 사용할 수 있는 방법 제공 리플렉션 - 정상적으로 컴파일러를 거치지 않고 런타임에 메모리 상의 객체에 바로 접근할 수 있는 자바 API이다. 해당 객체가 가진 메소드, 생성자, 필드에 대한 정보를 조작할 수 있다. 제네릭 - 제네릭을 사용하면 해당 클래스의 타입이 컴파일 이전이 아닌 런타임때 결정된다. C++템플릿과 비슷한 개념인것 같다. 기존 C++ 템플릿에선 컴파일때 인스턴스된 객체의 코드가 새로 생성되어 컴파일되었다. 그러면 과연 .. 2021. 7. 23.
(디자인패턴)싱글톤클래스와 Static클래스 싱글톤클래스 - 해당 클래스를 하나의 인스턴스만 가지도록 하는 디자인패턴 Static클래스 - 클래스에 static 키워드를 선언하여 해당 클래스를 정적데이터로 선언한 것 공통점 - 인스턴스를 생성할수 없고 오직 하나의 객체만 가진다. 차이점 - 싱글톤의 경우 static과 다르게 인터페이스와 상속이 가능하다. OOP의 특징인 다형성있게 구현가능 - static에 비해 싱글톤이 성능 상 유리하다. - static은 Method영역에, 싱글톤은 Heap 영역에 저장된다. 사용시 선택법 - 하나의 인스턴스만 필요하지만 초기화나 상속구현이 필요하지 않는 정적객체는 static으로, 그외엔 싱글톤으로 구현하면 될듯하다. 2021. 7. 23.
(Java)JVM / JRE / JDK / 컴파일 동작 과정 JVM - 자바 가상머신으로 .class파일을 메모리에 저장하고 실행하는 역활을 한다. JRE - 자바 런타임 환경으로 JVM에 필요한 라이브러리들이 모여있다. JDK - 자바 개발킷으로 JRE+ 개발에 필요한 라이브러리들이 모여있다. 컴파일 동작 과정 1. 이클립스와 같은 에디터로 작성된 .java파일을 javac같은 명령어로 빌드시 .class라는 반기계어 바이너리 파일로 바뀐다. 2. .class파일은 클래스 로더에 의해 JVM으로 로드되며 .class내용이 JVM 런타임 메모리로 저장되어 실행될수 있는 상태로 바뀐다. JVM 메모리영역엔 Stack(지역변수, 리턴), MeThod(메소드 주소, 정적변수, 클래스 주소), Heap(new로 인스턴스된 객체들) 등이 있으며 이곳에 각 용도에 맞는 내용.. 2021. 7. 23.