백엔드
-
[Spring Framework] Layered Architecture백엔드/Spring 2020. 11. 16. 23:01
로재의 개발 일기 Layered Architecture 효율적인 개발과 유지보수를 위해서 어플리케이션을 계층화하여 개발하는 것이다.대체적으로 중/대규모 어플리케이션에서 사용하고 있다. 영역은 세개로 나눌 수 있다.Presentation LayerBusiness LayerData Layer Three Layers Presentation Layer Business Logic Layer Data Access Layer 사용자와 가장 가까운 계층사용자와 상호작용을 한다.사용자의 요청을 분석/응답 기능을 수행한다트랜잭션을 수행한다. 데이터베이스에 연동되어데이터의 저장과 조회를 담당한다. MVC (Model View Controller) Layered Architecture의 대표적인 패턴으로MVC 패턴이 있다. ..
-
[Spring Framework] DI란 무엇인가?백엔드/Spring 2020. 11. 16. 22:22
로재의 개발 일기 DI에 대해서 알아보자 DI는 의존관계를 자동으로 스프링이 연결시켜주는 것이다. 개발자는 단지 빈 설정파일에서 의존관계가 필요하다는 정보를 추가해주면 된다.이를 통해서 객체의 결합도를 줄여 간결하게 프로그래밍이 가능하다. DI 컨테이너 Bean FactoryBean을 등록, 생성, 조회, 반환을 관리하며보통 Bean Factory를 바로 사용하지 않고, 이를 확장한 Application Context를 사용한다.getBean() 메서드가 정의되어있다. Application ContextBean을 등록, 생성, 조회, 반환 관리하는 기느은 Bean Factory와 같다.Spring의 각종 부가 서비스를 추가로 제공하며, Spring이 제공하는 Application Context 구현 클래..
-
[Spring Framework] 스프링 IOC란?백엔드/Spring 2020. 11. 14. 21:24
로재의 개발 일기 Spring IOC IOC란 제어권의 역전이라는 뜻으로, 객체의 생성 생명주기의 관리까지모든 객체에 대한 제어권이 바뀌었다는 것을 말합니다. 일반적으로 객체를 생성 및 제거를 하는 것은비용이 매우 많이 들게 됩니다.이에 따라서 스프링 컨테이너에서 IOC를 구현해주어 자주 사용하는 객체를 제어합니다. IOC 컨테이너의 특징 스프링 프레임워크도 객체에 대한 생성 및 생명주기를 관리할 수 있는 기능을 제공하고 있습니다. 1. IOC 컨테이너는 객체의 생성을 책임지고, 의존성을 관리한다.2. POJO의 생성, 초기화, 서비스, 소멸에 대한 권한을 가진다.3. 개발자들이 직접 POJO를 생성할 수 있지만, 컨테이너에게 맡긴다. IOC의 분류 DL은 Dependency LookUp이라는 뜻으로 클..
-
[Spring Framework] 스프링과 메이븐백엔드/Spring 2020. 11. 10. 21:55
로재의 개발 일기 스프링 그리고 메이븐 스프링을 사용하기 위해서는 Maven Build가 필요합니다.자바 개발의 사실상의 표준 빌드 툴이며, 이전에는 ANT를 많이 사용했지만,최근에는 메이븐의 XML 설정파일을 사용하고 있습니다.- 더 나아가 최근, groovy 언어로 설정을 하는 gradle이 등장하게 되었다고 합니다. (다들 사용해 봤겠지만..)- Gradle이 특히 문제가 되었던 XML에 대한 이슈도 Groovy를 사용해 해결하였습니다. ※ ANT와 Maven은 상호보완이 불가능하며, Maven과 Gradle은 가능합니다 메이븐의 특징 - Convection over Configuration (COC)"설정보다는 관행에 따라 미리 정해진 설정으로 개발을 수행하자" 라는 뜻입니다.개발자 커뮤니티에서 ..
-
[Spring Framework] 스프링 프레임워크란 무엇인가? - 개요백엔드/Spring 2020. 11. 10. 21:32
로재의 개발 일기 스프링 프레임워크란자바의 표준 프레임워크이며, EJB를 주 프레임워크로 사용할때 불편한 점을 해소하기 위해서2002년 로드존슨이 출판한 도서 Expert One-on-One J2EE Design and Development에선보인 코드가 Spring의 근간이 되어, 많은 개발자들의 요청하여2004년 3월 1.0 버전으로 시작하였다. 버전 약력역사가 긴 만큼, 안정적이고 거대한 프레임워크이다. 스프링 프레임워크란 자바 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 프레임워크이며 핵심 요소 몇가지가 있다. 1. 컨테이너 스프링 컨테이너는 자바 객체의 생명 주기를 관리하며, 스프링 컨테이너로부터 필요한 객체를 가져와 사용 할 수 있다. 2. DI (Dependency Inje..
-
[Spring] Controller에서 자바스크립트 alert를 사용해보자백엔드/Spring 2020. 11. 4. 23:28
로재의 개발 일기 Spring Controller에서 스크립트 사용단순 자바에서 가능한 이야기인데, 응답 response에 PrintWriter를 사용하여 스크립트를 사용이 가능하다. 하나의 URI 매핑에서 다른 결과가 도출되는 경우알림을 주어, 사용자에게 편의성을 주기 위해서 사용하는 방법이다.(예를 들면, 인증번호 확인 절차 실패의 경우에는 알림을 뜨게하고, 페이지에 머문다) 응답에 PrintWriter를 통해서 스크립트 호출 12345// 이때 contentType을 먼저하지 않으면, 한글이 깨질 수 있습니다.response.setContentType("text/html; charset=euc-kr");PrintWriter out = response.getWriter();out.println("")..
-
[Spring] web.xml - Filter url 제외시키기백엔드/Spring 2020. 11. 3. 22:00
Filter URL Exclude 얼마 전 2차 인증을 구현해야 하는 업무 도중 Spring Security를 사용하다가, 로그인 부분에 덕지덕지 붙이는 것 같아 분명 빠른 길이 있는데, 먼 길을 돌아가는 것 같았다. 굳이 로그인 이후에, 추가 인증을 하고 싶다면, 그 인증의 대상이 사용자마다 상이하다면 Servlet에서 Filter을 시켜주는 것도 괜찮았기에 남기는 글입니다. 참고) 모든 소스코드는 이미지 클릭으로 연결 가능합니다. web.xml을 조금 수정하자 서블릿에 커스텀 필터를 달아주고, 이를 초기화 해줄 값을 넣어줍니다. 이때 구분자를 줍니다 ( , ) 커스텀 필터를 만들어보자 이제 위에서 입력한 경로 com.text.gate.filter.AuthenticationFilter를 생성합니다. (..
-
[Java 8] 람다식을 사용해보자 How to use lamda백엔드/부족한 기본 정리 2020. 11. 3. 21:43
로재의 개발 일기 자바의 비기 람다 람다식을 제대로 공부해본 적이 없어서이전에 공부한 자료를 개인 학습으로 남기는 부분입니다. 잊고 포스팅을 하지 않으면, 계속 안 할것 같아서... Stream을 사용해보자List의 경우 123456789101112131415List list = Arrays.asList("rojae", "yeong", "suji", "sujeong"); // 기존의 방법 for(String i : list) { if(i.contains("s")) System.out.println(i);} /* 람다 스트림 사용 * .steam() : 스트림 * .filter : 중간연산 필터링 작업 * forEach : 최종연산 */list.stream().filter(x -> x.contains("s..