분류 전체보기 195

[Spring] 스프링 의존 자동 주입 (Auto Injection)이란?

Spring 스프링 의존 자동 주입 (Auto Injection) 앞에 Spring DI가 무엇인지 공부하며 Autowired의 사용법을 잠깐 살펴보았다. 이에 대해 더 자세히 알아보자. @Autowired 어노테이션을 이용한 의존 자동 주입 스프링에서 자동 주입을 설정하려면 @Autowired 어노테이션이나 @Resource 어노테이션을 사용하면 된다. Resource 어노테이션은 자바에서 제공하는 어노테이션으로 스프링은 @Resource 뿐만 아니라 자바에서 제공하는 @Inject 어노테이션 또한 지원한다. 단, 스프링에서는 주로 @Autowired를 사용하므로 해당 어노테이션에 관하여 자세히 다루어 보도록 하자. 자동 주입 기능을 사용하면 스프링이 알아서 의존 객체를 찾아서 주입한다. 자동 주입 기..

개발/Spring 2020.11.16

[Spring 프로젝트] 2. ERD 설계하기

Spring [스프링 프로젝트] 2. ERD 설계하기 해당 문서는 PMC 스프링 프로젝트에서 ERD를 설계하며 진행했던 내용을 정리한 문서입니다. 1. 기획에서 필요한 테이블과 컬럼 정리하기 우선 UX 설계한 내용과 기능 리스트를 보며 어떤 Entity가 필요할 지 생각해본다. 스터디 전에 각자 필요한 테이블과 컬럼들이 어떤 것이 있을지 생각해보고, 회의에서는 ERD Cloud라는 툴을 이용하여 온라인으로 바로 화면을 공유하며 테이블을 함께 설계했다. (집단지성의 힘) Study 제일 먼저 필요한 테이블은 Study 테이블. 어떤 스터디들이 있는지 리스트와 상세 목록을 볼 수 있는 페이지가 있고, 연결된 테이블들이 가장 많을 테이블이다. 필요한 컬럼에는 스터디 ID값과 제목, 정렬과 관리를 위한 데이터가..

개발/Spring 2020.11.16

[Spring 프로젝트] 1. 프로젝트 기획하기

Spring 프로젝트 기획하기 해당 문서는 PMC 스프링 프로젝트를 기획하며 진행했던 내용을 정리한 문서입니다. 1. 프로젝트 주제 선정하기 첫 스터디 모임. 첫 날은 간단히 스프링 프로젝트를 진행하면서 어떤 식으로 진행할 것인지에 대한 논의와 토이 프로젝트 주제를 선정했다. 주제는 회의하다가 15분간 생각해보고 그 자리에서 바로 어떤 주제로 하면 좋을지, 어떤 기능이 들어가면 좋을지를 대략적으로 생각해보고 공유했다. 첫 번째로 나온 주제는 카페 리뷰시스템으로, 대략적인 기능리스트는 아래와 같았다. 카페 쿠폰 발급 카페 별점 기능, 리뷰 기능 (사진/글 리뷰) 분위기 / 인스타용 / 스터디용 등의 그룹을 나누어 관리 가격정보를 1단계, 2단계, 3단계로 분류해서 보여주기 위치로 검색할 수 있는 기능 메뉴..

개발/Spring 2020.11.12

[Spring 프로젝트] Spring Boot에서 타임리프(Thymeleaf) 사용하기

Spring Spring Boot에서 타임리프(Thymeleaf) 사용하기 Spring Boot에서 타임리프를 사용하기 위해 타임리프가 무엇인지, 그리고 기본적으로 알아야 하는 타임리프의 속성이나 주요 식(expression)을 알아보자. 그리고 스프링 부트와 타임리프를 연동하려면 어떤 것을 해야 하는지에 알아보자. 타임리프(thymeleaf) 란? 타임리프(Thymeleaf)는 템플릿 엔진이다. 타임리프는 웹을 염두하고 설계해서 HTML 템플릿을 만들 때 적합합니다. 또한 자바 스크립트와 CSS에 적합한 템플릿 도 만들 수 있습니다. 다음은 타임리프가 제공하는 문법을 사용해서 작성한 템플릿의 예시 입니다. 환영합니다. [회원 가입하기] [로그인] 님, 환영합니다. [비밀번호 변경] [로그아웃] th:t..

개발/Spring 2020.11.12

[Spring 프로젝트] Spring에서 트랜잭션 사용하기

Spring에서 트랜잭션 사용하기 해당 문서는 Spring Boot 프로젝트에서 트랜젝션을 설정하여 롤백하는 방법에 대해 가이드한 문서입니다. 트랜잭션이란 트랜잭션이란 두 개 이상의 쿼리를 한 작업으로 실행해야 할 때 사용하는 것으로 어떤 쿼리를 논리적으로 하나의 작업으로 묶어줄 필요가 있을 때 사용합니다. 한 트랜잭션으로 묶인 쿼리 중, 하나라도 실패하면 전체 쿼리를 실패로 간주하고 실패 이전에 실행한 쿼리를 취소합니다. 이렇게 쿼리 실행 결과를 취소하고 DB를 기존 상태로 되돌리는 것을 롤백(rollback)이라고 부릅니다. 아래 예시에서는 유저가 회원가입을 할 때, 유저 정보를 DB에 넣고 나서 이메일을 전송하는 과정에서 Exception이 발생했을 경우, Transaction을 통해 자동으로 롤백..

개발/Spring 2020.11.11

[Spring 프로젝트] Swagger 연동하기

Spring Boot - Swagger 사용하기 해당 문서는 Spring Boot 프로젝트에서 Swagger를 연동한 방법에 대한 가이드 입니다. Swagger란 간단한 설정을 통해 프로젝트에서 지정한 URL들을 HTML 화면으로 보여주는 툴 입니다. API Spec 문서를 자동화 하여 개발자간 협업 및 사용자에게 공유하기 위해 사용합니다. Swagger 연동하기 Gradle에 Swagger Depenncy 추가 compile group: 'io.springfox', name: 'springfox-swagger2', version: '2.9.2' compile group: 'io.springfox', name: 'springfox-swagg..

개발/Spring 2020.11.11

[Spring 프로젝트] Spring AOP 로거 개발 가이드

Spring AOP Logger 해당 문서는 Spring 프로젝트 팀원들에게 AOP를 사용하는 방법과 AOP를 이용하여 추가한 Request Log를 어떻게 개발하는지 설명하기 위한 가이드 문서입니다. AOP란 AOP는 Aspect Oriented Programming의 약자로, 여러 객체에 공통으로 적용할 수 있는 기능을 분리해서 재사용성을 높여주는 프로그래밍입니다. Spring에서는 주로 Logging, Caching, Auditing, Perfomance monitoring 등에 주로 사용되며, 런타임 시에 프록시 객체를 생성하여 공통 기능을 삽입하는 방식으로 동작합니다. AOP 주요 용어와 어노테이션 Aspect: 여러 객체에 공통으로 적용되는 기능. 트랜젝션, 보안 등 Advice: 언제 공통로..

개발/Spring 2020.11.09

[Spring DI] 4. getBean() 메서드 사용과 Bean 관련 Exception 정리

Spring getBean() 메서드 사용과 Bean 관련 Exception 정리 NoSuchBeanDefinitionException: No bean named 'versionPrint2' available NoSuchBeanDefinitionException: No qualifying bean of type 'spring.MemberPrinter' available BeanNotOfRequiredTypeException getBean() 메서드 사용과 Bean관련 Exception 정리 앞에서 Bean 객체를 구할 때에는 getBean()메서드를 이용했다. (혹은 Autowired를 통해 자동으로 빈 객체를 받아왔다.) Autowired를 사용해도 내부적으로 Bean 객체를 호출하며 아래와 같이 No..

개발/Spring 2020.11.08

[Spring DI] 3. Spring에서 두 개 이상의 설정 파일 사용하기

Spring Spring에서 두 개 이상 설정 파일 사용하기 앞의 포스터에서는 DI가 무엇인지, DI를 왜 사용해야 하는지 그리고 Spring에서는 어떤 식으로 DI를 사용하는지에 관해 알아보았다. 이번에는 Spring에서 두 개 이상의 설정 파일을 사용하는 방법을 알아보자. 두 개 이상의 설정 파일 사용하기 스프링은 어플리케이션을 개발하다 보면 적게는 수십 개에서 많게는 수백여 개 이상의 빈을 설정하게 된다. 설정하는 빈의 개수가 증가하면 한 개의 클래스 파일에 설정하는 것보다 영역 별로 설정 파일을 나누면 관리하기가 편해진다. 스프링은 한 개 이상의 설정 파일을 이용해서 컨테이너를 생성할 수 있다. @Configuration public class AppConf1 { @Bean public Membe..

개발/Spring 2020.11.08

[Spring DI] 2. Spring DI 설정

Spring Spring DI 설정 Spring에서 DI를 설정하는 방법과 @Configuration, @Bean 어노테이션에 대해 공부해보자. 그리고 @Configuration 설정과 @Bean의 싱글톤 객체에 관해 알아보자. Spring에서의 DI 설정 앞에서 스프링은 객체 조립기와 같은 DI 역할을 수행한다고 말했다. 그러면 Spring이 DI를 해줄 수 있도록 설정하려면 어떻게 해야할까? 먼저 스프링이 어떤 객체를 생성하고, 의존을 어떻게 주입할 것인지를 정의한 설정 정보를 작성해야 한다. 아래 예시를 살펴보자. @Configuration public class AppCtx { @Bean public MemberDao memberDao() { return new MemberDao(); } @Bea..

개발/Spring 2020.11.08