전체 글
-
자바 JVM의 런타임 데이터 영역 (Runtime Data Area) 자세한 구조Java 2023. 10. 8. 12:52
이전 및 관련 내용 2023.10.08 - [자바_JAVA] - 자바 JVM 자세히 알아보기 자바 JVM 자세히 알아보기 JVM에 관해 간단히 정리한 글 2023.02.07 - [자바_JAVA] - 자바 JVM, JRE, JDK 자바 JVM, JRE, JDK JDK (Java Development Kit) - JRE + 개발에 필요한 도구(javac, java 등등) JRE (Java Runtime Environment) - JVM이 자바를 동작시킬 developerkwak.tistory.com Runtime Data Area JVM의 메모리 영역으로 자바 애플리케이션을 실행할 때 사용되는 데이터들을 적재하는 영역 Method Area, Heap Area, Stack Area, PC Register, N..
-
Spring AOP에 대한 개념Spring Framework 2023. 10. 5. 13:16
Spring AOP 관점 지향 프로그래밍 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점을 나눠서 그 관점들을 모듈화하는 것 횡단(가로) 관심사를 분리한다. (cross-cutting) 다른 로직과 분리할 수 없는 어플리케이션 로직을 분리한다. 부가기능을 따로 관리한다. 공통적으로 사용하는 기능들을 분리하여 관리할 수 있는 것을 말합니다. 프록시 패턴 기반의 AOP 구현체 프록시 패턴 : 어떤 객체를 사용하고자 할 때, 객체를 직접적으로 참조하는 것이 아닌, 해당 객체를 대리(Proxy)하는 객체를 통해 대상 객체에 접근하는 방식 접근 제어 및 부가기능을 추가하기 위해 스프링 bean에만 AOP적용 가능 중복 코드 제거, 유지보수 용이, OOP의 문제점 해결 핵심 로직과 부가 기능의 명확한 분리로, ..
-
스프링(spring) web.xml 기본 설정Spring Framework 2023. 10. 5. 11:46
web.xml 기본 설정 web.xml : web application 설정을 위한 배포 설명서(deployment descriptor) deploy할 때, servlet 정보를 설정 배포할 servlet이 무엇인지, 해당 servlet이 어떤 url에 매핑되는지 알려준다. welcome servlets.WelcomeServlet welcome /welcome DispatcherServlet spring container를 생성한다. (controller의 생명주기를 관리) 클라이언트의 요청을 처음으로 받는 클래스 받은 요청을 Handler(controller)로 보낸다. 각 기능의 요청별로 DispatcherServlet을 할당할 수 있다. oneServlet org.springframework.web..
-
WAS(Web Application Server)와 WS(Web Server) 차이점WEB & CS 2023. 10. 4. 22:22
Static Pages 저장된 정적인 파일 예 : image, html, css, js Dynamic Pages 웹 서버에 의해 실행되는 프로그램을 통해서 만들어지는 결과물 Servlet : WAS 위에서 돌아가는 Java 프로그램 개발자는 Servlet에서 doGet()을 구현 Web Server 정적인 리소스를 서비스하는데 특화 클라이언트의 http 요청을 받아 요청에 맞는 정적 컨텐츠를 제공한다. 비즈니스 로직을 처리하지 않는다. SSL/TLS를 사용해 암호화된 HTTPS 연결을 제공하여 보안을 강화 여러 대의 서버로 분산된 트래픽을 처리하기 위해 로드밸런싱 수행 가능 Reverse Proxy로 동작하여 클라이언트의 요청을 WAS로 전달이 가능하다. WS와 WAS를 분리하여 웹 애플리케이션의 보안과..
-
spring과 spring boot 비교하기Spring Framework 2023. 10. 4. 20:52
Spring SpringBoot 개발자가 직접 설정 파일을 작성하여 스프링 컨테이너를 구성하고, 필요한 빈 객체를 등록하고, 빈 객체 간의 의존성을 설정해야 합니다. 개발자가 설정 파일을 작성할 필요 없이, 프로젝트의 설정과 라이브러리 의존성을 자동으로 처리해주는 기능을 제공합니다. (starter을 통한 dependency 자동화) test프레임워크를 사용하고자 하는 경우 Spring Test, JUnit, Hamcrest, Mockito 등 모든 라이브러리를 추가해야 한다. spring-boot-starter-test 만 추가해주면 된다. 내장 서버가 존재하지 않음 내장 서버를 제공하여 쉽게 웹 애플리케이션을 실행 @SpringBootApplication 사용하지 않음 @SpringBootApplic..
-
스프링 컨테이너에 대한 개념Spring Framework 2023. 10. 4. 19:19
스프링 컨테이너(Spring Container) 자바 객체의 생명 주기를 관리 생성된 bean에게 추가적인 기능을 제공한다. 객체가 의존관계를 등록할 때는 스프링 컨테이너에서 해당하는 빈을 찾고, 그 빈과 의존성을 만듭니다. @Autowired같은 DI가 정상적으로 동작하려면 인스턴스가 bean으로써 스프링 컨테이너에 들어가있어야 합니다. 스프링 컨테이너(Spring Container)의 종류 * Spring Container는 Configuration Metadata를 사용하고, 파라미터로 넘어온 설정 클래스 정보를 사용해 Spring Bean을 등록한다 BeanFactory bean의 생성과 관계설정 같은 제어를 담당하는 IOC 오브젝트 Spring Container의 최상위 인터페이스 getBean..
-
스프링 프레임워크(spring framework)에 대한 기본 개념Spring Framework 2023. 10. 4. 19:00
스프링 프레임워크 경량 컨테어너 자바 객체를 담고 직접 관리하는 프레임워크 객체의 생성 및 소멸 그리고 라이프 사이클을 관리한다. Spring 컨테이너로 부터 필요한 객체를 가져와 사용할 수 있습니다. IOC 기반 객체에 대한 제어권을 사용자가 가지지 않고, 프레임워크에 위임하는 것을 의미 POJO를 사용한다. 불필요한 로직이 줄어들며 코드가 간결해지는 장점이 있다. 의존성이 없고 추후 테스트 및 유지보수가 편리한 유연성의 장점을 가진다. AOP(관점지향 프로그래밍) 객체지향 원칙에 따라 관심사가 같은 데이터를 한곳에 모아 분리하고 낮은 결합도를 갖게하여 독립적이고 유연한 모듈로 캡슐화를 하는 과정 중에 중복된 코드 발생으로 인해 가독성, 확장성, 유지보수성이 떨어지는 점을 보안하기 위해 등장 핵심기능과..