백엔드/Spring
-
[Spring JPA] Hibernate 파라미터 출력 설정 (로그 출력)백엔드/Spring 2020. 12. 29. 20:27
로재의 개발 일기 Hibernate SQL 데이터 출력 기억하기 귀찮으면서, 매번 까먹는 하이버네이트의 로그 출력을 기록하겠습니다. 로그 출력 123456# hibernate logging infospring.jpa.show-sql=truespring.jpa.properties.hibernate.format_sql=true Colored by Color Scriptercs위에 처럼 로그 정보를 설정하면아래 처럼 로그 정보가 이쁘게 설정된다. 하지만, 파라미터 바인딩의 출력은아직되지 않았다. 파라미터 바인딩 출력 12345 # show sql data bindinglogging.level.org.hibernate.SQL = debuglogging.level.org.hibernate.type.descript..
-
[Spring Framework] 한글 인코딩이 깨질때 (Spring Security 사용시)백엔드/Spring 2020. 12. 2. 23:20
로재의 개발 일기 스프링에서 한글 인코딩 주로 폼의 데이터 전송 기법으로는 Get과 Post가 있다. Get의 경우 Tomcat의 server.xml를 수정해주면 되는 것이고Post의 경우 web.xml를 수정해주면 되는 것인데 어떠한 이유에서인지, web.xml에서 설정한 필터링이직접 디코딩, 인코딩, 이클립스 소스파일 인코딩 문제 등등...-> 난리를 쳐도 한글이 정상적으로 출력되지 않는 것이다. 분명 비슷한 경험의 개발자들이 많을 것이고스스로도 기억하고자 남기는 글.. Encoding For Get Tomcat의 server.xml에서 다음을 수정해준다.cs이 부분에 URIEncoding를 추가시켜주어, 아래와 같이 만들어준다. cs 사실 이 부분은 딱히 손 볼게 없다. Encoding For Po..
-
[Spring Framework] MVC(모델-뷰-컨트롤러) 패턴에 대해서 알아보자백엔드/Spring 2020. 11. 16. 23:43
로재의 개발 일기 MVC 패턴 스프링에서 가장 쉽고, 가장 어려운 MVC이다. MVC 개념 모델-뷰-컨트롤러는 소프트웨어 공학에서 사용되는 아키텍처 패턴으로 MVC 패턴의 주 목적은 Business logic과 Presentation logic을 분리하기 위함이다. Model : 어플리케이션의 정보 (데이터, 비즈니스 로직 포함) => Service, DAO, RepositoryView : 사용자에게 제공할 화면 (Presentation Layer) => HTML, JSONController : Model과 View 사이의 상호 작용을 관리 Model Component 데이터 저장소와 연동하여 사용자가 입력한 데이터나 사용자에게 출력할 데이터를 다루는 일을 한다.여러 개의 데이터 변경 작업 (추가, 변경..
-
[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..