본문 바로가기

반응형

백엔드/프레임워크

(13)
스프링 - 컨테이너 종류 스프링은 BeanFactory와 ApplicationContext의 2가지 타입의 컨테이너를 제공한다. - Bean Factory - ListableBeanFactory, HierarchicalBeanFactory - ApplicationContext - ConfigurableApplicationContext Application Context 인터페이스와 관련된 주요 클래스의 계층 구조 - GenericXmlApplicationContext : XML 파일을 설정 정보로 사용하는 스프링 컨테이너 구현 클래스이다. 독립형 어플리케이션을 개발할 때 사용 - AnnotationConfigApplicationContext : 자바 코드를 설정 정보로 사용하는 스프링 컨테이너. 독립형 어플리케이션을 개발할 때 ..
스프링 - maven, gradle 비교하기 Maven - Maven은 Java용 프로젝트 관리도구로 Apache의 Ant 대안으로 만들어졌다. - 빌드 중인 프로젝트, 빌드 순서, 다양한 외부 라이브러리 종속성 관계를 pom.xml파일에 명시한다. - Maven은 외부저장소에서 필요한 라이브러리와 플러그인들을 다운로드 한다음, 로컬시스템의 캐시에 모두 저장한다. ​ - 예를 들어, "Spring Boot Data JPA Starter" 모듈을 사용하여 프로젝트를 개발하고 싶다면 메이븐레포지토리에서 해당 모듈을 검색하여 xml 설정파일에 추가하여 사용할 수 있다. (참고로 maven용 코드 이외에도 gradle용 코드도 탭에 있다.) Gradle ​ - Apacahe Maven과 Apache Ant에서 볼수 있는 개념들을 사용하는 대안으로써 나온 ..
스프링 - AOP AOP (Aspect Oriented Programming)란? - AOP는 Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이라고 불린다. 관점 지향은 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 모듈화 하겠다는 것이다. *모듈화 : 어떤 공통된 로직이나 기능을 하나의 단위로 묶는 것 - 예를 들어 핵심적인 관점은 비즈니스 로직이 될 수 있고, 부가적인 관점은 핵심 로직을 실행하기 위해 행해지는 데이터베이스 연결, 로깅, 파일 입출력 등이 될 수 있다. AOP는 흩어진 관심사(Crosscutting Concerns)를 모듈화 할 수 있는 프로그래밍 기법이다 [그림 1] AOP 예시 [그림 1]과 같이 클래스 A, B, C에서 공..
스프링 - @Aspect 정의 - AOP를 가능하게 하는AspectJ에서 프로젝트에서 제공하는 어노테이션. - 자동 프록시 생성기는 Advisor를 찾아서 프록시를 생성하고 빈에 적용하는 역할을 수행합니다. 또한 자동 프록시 생성기는 또 다른 역할이 있는데 바로 @Aspect 어노테이션을 찾아서 해당 클래스를 Advisor(Pointcut + Advice)로 만들어줍니다. @Aspect를 Advisor 변환하는 과정 스프링 애플리케이션 로딩 시점에 자동 프록시 생성기 호출 자동 프록시 생성기가 스프링 컨테이너 내 @Aspect 어노테이션 붙은 스프링 빈 모두 조회 @Aspect 어드바이저 빌더를 통해 Advisor 생성 생성한 Advisor를 @Aspect 어드바이저 빌더 내부에 저장 * @Aspect 어드바이저 빌더는 Bean..
스프링 부트 - jar, war 차이 1. JAR? WAR? 기본적으로 JAR, WAR 모두 Java의 jar 옵션 (java -jar)을 이용해 생성된 압축(아카이브) 파일로, 애플리케이션을 쉽게 배포하고 동작시킬 수 있도록 관련 파일(리소스, 속성 파일 등)을 패키징 한 것이다. 자세한 정의는 아래와 같다. JAR (Java Archive) JAVA 어플리케이션이 동작할 수 있도록 자바 프로젝트를 압축한 파일 Class (JAVA리소스, 속성 파일), 라이브러리 파일을 포함함 JRE(JAVA Runtime Environment)만 있어도 실행 가능함 (java -jar 프로젝트네임.jar) 여러 개의 자바 클래스 파일과 클래스에서 필요로 하는 관련 리소스들 및 메타 데이털들을 하나의 파일로 모아서 자바 플랫폼에 응용 소프트웨어나 라이브러..
스프링 부트 - 스타터 종류 주요 스타터 spring-boot-starter-web-services : SOAP 웹 서비스 spring-boot-starter-web : Web, RESTful 응용프로그램 spring-boot-starter-test : Unit testing, Integration Testing spring-boot-starter-jdbc : 기본적인 JDBC spring-boot-starter-hateoas : HATEOAS 기능을 서비스에 추가 spring-boot-starter-security : 스프링 시큐리티를 이용한 인증과 권한 spring-boot-starter-data-jpa : Spring Data JPA with Hibernate spring-boot-starter-cache : 스프링 프레임워크..
스프링 부트란? 개요 자바의 웹 프레임워크로 기존 스프링 프레임워크에 톰캣 서버를 내장하고 여러 편의 기능들을 추가하여 꾸준한 인기를 누리고 있는 프레임워크. 스프링부트는 웹 프로그램을 쉽고 빠르게 만들어 주는 웹 프레임워크다 스프링부트는 웹 프로그램을 쉽고 빠르게 만들 수 있도록 도와주는 웹 프레임워크이다. 웹 프레임워크라는 표현을 처음 듣는 사람을 위해 잠시 웹 프레임워크를 설명해 보겠다. 웹 프레임워크란? 웹 프로그램을 만들어 본 경험이 있는가? 만약 그런 경험이 있다면 웹 프로그램을 위해 얼마나 많은 기능을 만들어야 하는지 잘 알고 있을 것이다. 예를 들어 쿠키나 세션 처리, 로그인/로그아웃 처리, 권한 처리, 데이터베이스 처리 등 웹 프로그램을 위해 만들어야 할 기능이 정말 산더미처럼 많다. 하지만 웹 프레임워..
프레임워크 개요 정의 | 프레임워크 (Framework) - 프레임워크는 어떤 프로그램을 쉽게 만들기 위한 요소와 룰을 제공해 줌으로서 소프트웨어의 생산성과 품질을 높이는 역할을 하는 것 - Gof의 디자인 패턴으로 유명한 랄프 존슨(Ralph Johnson)은 "프레임워크란, 소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 일련의 협업화된 형태로 클래스들을 제공하는 것"이라고 정의 - 원하는 기능 구현에만 집중하여 빠르게 개발 할 수 있도록 기본적으로 필요한 기능을 갖추고 있는 것으로 위에서 설명한 라이브러리가 포함 프레임워크 예시 Java 서버 개발에 사용되는 Spring Python 서버 개발에 사용되는 Django, Flask 안드로이드 앱 개발에 사용되는 Android 아이폰 앱 개발에 ..

반응형