728x90

스프링 9

[Spring Boot] 스프링 부트 프로젝트 생성

start.spring.io를 통해 쉽게 스프링 부트 프로젝트를 생성해 보겠습니다. 아래 경로로 들어간 후 개발 환경에 맞게 선택을 해줍니다. https://start.spring.io/ 1) Project Gradle과 Maven은 빌드 관리 도구로 프로젝트에서 사용하는 외부 라이브러리를 자동으로 관리해서 의존성에 맞는 라이브러리들을 받아옵니다. 이렇듯 의존성 관리뿐만 아니라 빌드 설정 관리, 자동화된 빌드 및 테스트, 배포 관리의 역할을 해줍니다. Gradle 빌드 스크립트를 Groovy DSL로 작성해서 가독성이 좋고 유지보수가 쉽고 Maven은 XML 기반 설정 파일은 가독성이 떨어지고, 복잡한 설정을 작성하기 어려울 수 있습니다. Maven의 장점도 있지만 Gradle의 장점이 더 크기 때문에 ..

개발일지/SPRING 2023.11.27

[Spring] IoC & Container (BeanFactory, ApplicationContext) 개념

Spring IoC (Inversion of control) 1. DL (Dependency LookUp) - 컨테이너가 lookup context를 통해서 필요한 자원이나 객체를 얻음 - 캐스팅과 예외처리가 필요 2. DI (Dependency Injection) - 객체에 lookup를 사용하는 것이 아닌 컨테이너가 직접 의존 구조를 Object에 설정해줌 - 객체가 컨테이너의 존재를 알 필요가 없음 Container - 객체 생성, 사용, 소멸에 해당하는 라이프사이클을 담당함 - 라이프 사이클 관리, Dependecy 객체 제공, Thread 관리 등의 기능 - 비즈니스 로직 외 부가기능을 독립적으로 관리하기 위해 필요함 - 서비스 look up이나 Configuration에 대한 일관성을 갖게 해..

개발일지/SPRING 2023.10.22

[Spring] Spring 핵심 개념, 모듈

스프링 핵심 개념 1. POJO (Plain Old Java Object) - 특정 환경이나 기술에 종속되지 않는 객체지향 원리에 충실한 자바객체 -> 생산성, 이식성 향상 - 특정 인터페이스를 구현, 클래스를 상속하지 않는 일반 자바 객체 지원 - 테스트 용이, 객체지향 설계 적용 가능 2. PSA (Portable Service Abstraction) - 환경, 기술 변경과 관계없이 기술에 접근할 수 있게 해주는 설계 원칙 - 트랜잭션 추상화, OXM 추상화, 데이터 액세스의 Exception 변환기능 등 기술적 복잡합을 추상화하여 Low Level의 기술 구현 부분과 기술 사용 인터페이스로 분리함 3. IoC/DI (Dependency Injection) - 확장 가능한 객체 생성 후 외부에서 객체..

개발일지/SPRING 2023.10.22

[SPRING] DI(Dependency Injection) 설정 방법

DI 설정 방법 1. XML 기반 - xml 파일을 사용하여 요소를 정의 - applicationContext.xml에 beans, c, context 네임스페이스 추가 1) 생성자 기반 의존성 주입(Constructor based dependency Injection) - 생성자 인수를 통해 의존성 주입 - xml에 태그를 사용하여 컴포넌트 주입 설정 2) 설정자 기반 의존성 주입(Setter based dependency Injection) - 메서드 인수를 통해 의존성 주입 - xml에 요소의 name 속성에 주입할 컴포넌트 이름 설정 2. Annotation 기반 애너테이션을 클래스에 사용해서 DI컨테이너가 빈 자동 등록 - @Autowired : 컨테이너가 빈과 다른 빈과의 의존성을 자동으로 주..

개발일지/SPRING 2021.06.12

[Spring] Dependency Injection(DI) 개념

DepenDency Injection(DI) : 의존 관계 주입을 통해 오브젝트 간 의존관계를 만들어줌 스프링은 런타임 시 객체 간 의존관계를 부여(컨테이너를 통해) 객체 간의 결합도를 낮춰줌(인터페이스를 사용) -> 객체 간 영향력이 줄어들어 변경용이성, 확장성 증가 IoC(Inversion of Control) : 인스턴스를 제어하는 주도권이 역전됨 DI 컨테이너가 인스턴스의 생성과 의존 관계 연결을 해주기 때문 ( A가 B를 원할 때 B를 생성해서 A에게 넣어줌 ) IoC 컨테이너 : 인스턴스의 생명주기 관리 및 의존 관계 주입을 처리함 스프링 빈(Spring Bean)의 생성, 관계, 조립, 생명주기를 관리함 - BeanFactory 경량 컨테이너로 작업할 때 활용하고 DI의 기본 기능을 제공함 ..

개발일지/SPRING 2021.06.05

[Spring] 빌드 라이프사이클

빌드 라이프 사이클 : 빌드 단계(컴파일,테스트,패키징,배포) - 기본 라이프 사이클 여러 단계의 페이즈(phase)로 나뉘어져있으며 각 페이즈가 의존관계를 가짐 compile -> test -> package -> deploy - Clean 라이프 사이클 clean 페이즈로 이전 빌드에서 생성된 타겟 디렉토리를 삭제 - Site 라이프사이클 site, site-deploy 페이즈를 통해 생성된 문서들을 대상 사이트에 배포 [주요 용어] 골(Goal) : 각 빌드 단계에서 수행되는 작업 플러그인(Plugin) : 골을 실행시킴 페이즈(phase) : 하나 이상의 골을 수행함 페이즈 별로 플러그인이 작업을 수행(이 작업이 골)

개발일지/SPRING 2021.04.26

[SPRING] Maven, pom 파일 이해하기

Maven : 프로젝트를 관리하는 도구로 빌드 자동화 기능과 프로젝트 관리 기능을 제공함 pom.xml - 프로젝트 관련 라이브러리(jar 파일)을 다운로드 및 관리 - 정형화된 프로젝트 디렉토리 구조 관리 - 빌드 프로세스 관리 - 의존성 관리 기능 1) 로컬 저장소 USER_HOME\.m2\repository 2) 중앙 저장소 http://mvnrepository.com 3) 원격 저장소 ※로컬 저장소 -> 중앙 저장소 -> 원격 저장소 순으로 라이브러리를 검색함 만약 pom.xml에서 문제가 발생한다면 아래의 해결방법을 참고하길 [pom.xml 에러해결방법] ① 로컬 저장소 삭제 USER_HOME\.m2\repository 해당 경로 아래의 라이브러리를 삭제 후 재설치 ② 네트워크 연결 확인 일반적..

개발일지/SPRING 2021.03.17

[SPRING] 스프링 시작

Django, JSP, Stuts로 웹개발을 해봤지만 Spring framework처럼 어렵고 편한 프레임워크는 없다고 생각합니다. '어렵고 편하다'는 말이 무슨 모순인가싶겠지만은 개념부터 제대로 배워서 개발하고계시는 분들이라면 공감하지않을까싶습니다.Spring은 처음 배울 때 개념적인 이해와 동작흐름이해가 어렵기 때문에 웹을 처음 배우는 분들에게는 추천하지않습니다.그러나 한 번 배워두면 확장성 좋은 라이브러리 사용이 용이하고 유지보수가 편하기 때문에 많이 사용됩니다. 제가 전문적인 강사는 아니기 때문에 개념면에서 부족한 점은 있겠지만 개발자의 입장에서 프로젝트를 이해하고 자신의 프로젝트를 구성한 방법을 전하고자합니다. MVC패턴의 기본적인 프로젝트를 기준으로 주요 개념 설명과 실습을 병행하는 방식으로 ..

개발일지/SPRING 2021.03.15

[Mac] Spring STS 설치 및 기본설정

드디어 스프링을 설치해보겠습니다. 스프링 설치 전에 기본적으로 자바랑 톰캣이 필요하기 때문에 만약 설치되어있지 않으신 분들은 아래 글 보면서 설치해주세요. yangsosolife.tistory.com/18 [Mac] 자바(jdk) 설치 스프링 개발을 준비 중이여서 맥북에도 자바를 깔아보도록 하겠습니다. 1. 오라클 페이지 접속 https://www.oracle.com/kr/java/technologies/javase/javase-jdk8-downloads.html 2. jdk 버전 확인 저는 버전 호.. yangsosolife.tistory.com yangsosolife.tistory.com/19 [content Types] > [Text] > HTML, CSS, XML, JSP [Genaral] > [..

맥북/개발환경 2021.02.21
728x90
반응형