본문 바로가기

스프링25

Spring - POJO란? / 탄생배경 / 특징 / 기반 Plain old Java object 란? 안녕하세요. 고코더 입니다. 오늘인 POJO라는 개념을 알아봅니다. 개인적으로 몰라도 될거 같은 개념이지만 면접자들은 이걸 질문하기 좋아하므로 알아봅니다. 이 개념은 철학에 가깝습니다. 물런 구체화 하면 특정 방식의 소스가 POJO가 됩니다. ● 1. POJO란 한줄로 표현하면? "프레임워크에 종속된 무거운 객체를 만들게 된 것에 반발해서 사용되게 된 용어" ● 2. 탄생 배경 마틴 파울러는 자바의 단순한 오브젝트를 이용하여 로직을 구현하는게 나은데 왜 EJB처럼 복잡하고 제한 많은 기술을 이용할까? 라는 의문이 들었습니다. 마틴은 그저 그럴싸한 이름이 없는게 원인 일까 싶어 POJO를 만들었습니다. 평범한 자바오브젝트에 멋진 이름을 붙여줬던 시도는 기대 이상.. 2020. 3. 19.
Spring - AOP 란? / 관점 지향 프로그래밍 / (1) 관점으로 본 AOP 안녕하세요. 고코더 입니다. OOP는 훌륭한 객체 프로그래밍입니다. 하지만 공통적으로 트랜잭션처럼 반복되는 중복코드가 생기는 단점이 있습니다. 중복코드를 좀 더 줄이고자 하여 탄생한게 AOP 입니다. Aspect Oriented Programming 의 약자입니다. 직역하자면 "관점 지향 프로그래밍" 이라고 할 수 있습니다. 오늘은 AOP가 어떤 관점이 있는지 알아봅니다. ● 1. AOP를 한줄로 정리하면? "애플리케이션 전체에 걸쳐 사용되는 기능을 재사용 하도록 지원하는 개념" ● 2. 비유 병원에 환자가 입원합니다. 맹장 수술이 필요하다고 합니다. 전날에 약을 먹고 금식을 지도하는걸 간호사가 합니다. 그리고 당일날 수술실에 환자를 눕히고 조명을 밝히고 수술 부위 소독과 매스까지 준.. 2020. 3. 19.
Spring 게시판 만들기 - DTO(Data Transfer Object) 개발 DTO 생성 안녕하세요. 고코더 입니다. 이번에는 DTO 라는 객체에 대해서 알아봅니다. DTO(Data Transfer Object)는 VO(Value Object)라고 합니다. 계층간 데이터 교환을 위한 자바빈즈이고 컨트롤러, 뷰 계층간 데이터 교환을 위한 객체입니다. DTO는 로직을 없고 순수한 데이터 객체만 다룹니다. getter, setter 메소드를 생성한 클래스입니다. 다시 쉽게 말하면 DAO 데이터베이스를 가져올때 사용하는 변수의 집합이라고 생각하면 쉽습니다. ● 1. dto 클래스를 생성 합니다. 컨트롤러를 생성하겠습니다. net.gocoder.mvcboard.dto 패키지에서 class를 생성 합니다. 클래스명은 Dto로 생성 합니다. package net.gocoder.mvcboard.. 2019. 8. 17.
Spring 게시판 만들기 - 컨트롤러(Controller) 개발 MVC 컨트롤러(Controller) 개발 안녕하세요. 고코더 입니다. 이번 시간에는 스프링에 핵심인 컨트롤러를 만들어 보겠습니다. 이전에 설명한 거처럼 디스패처 서블릿이 컨트롤러를 호출하면 컨트롤러는 Dao를 호출해 데이터베이스 정보를 가져오고 다시 모델에 담아 프론트에 전달 합니다. ● 1. 컨트롤러 생성 컨트롤러를 생성하겠습니다. net.gocoder.mvcboard.controller 패키지에서 class를 생성 합니다. 클래스 명은 BoardController 입니다. 게시판에 사용할 컨트롤러명 입니다. ● 2. 컨트롤러 코딩 컨트롤러 작성을 해보겠습니다. 하나의 메소드를 작성하면 거의 비슷한 형태에 나머지도 거의 비슷한 코딩을 이어나갑니다. MVC패턴에 매력이자 어려운 규율 때문입니다. 그래도.. 2019. 8. 16.
spring 게시판 만들기 - 커맨드(command) 생성하기 커맨드 생성하기 안녕하세요. 고코더 입니다. 오늘은 서비스 객체인 command를 만들어보겠습니다. 커맨드 객체는 컨트롤러와 데이터베이스를 연결해주는 역할을 합니다. 기본적으로 커맨드 객체는 기본 인터페이스를 통해 작동합니다. 오늘 할 작업 할 내용을 구조도로 그려보았습니다. 커맨드는 인터페이스를 만들어서 이를 사용해 contet(상세), delete(삭제), list(목록),modify(수정)을 만들어보겠습니다. ● 1. 커맨드(command) 인터페이스 생성 net.gocoder.mvcboard.command 패키지에서 마우스 오른쪽 버튼을 눌러서 new -> interface를 생성 합니다. 인터페이스 이름은 "Command"로 생성합니다. 모든 커맨드에 기본 인터페이스로 참조될 것입니다. 그리고 .. 2019. 8. 16.
spring 게시판 만들기 - 패키지(Package) 생성, 프로젝트 구조도, 프로젝트 생성 게시판 만들기 초기설정 안녕하세요. 고코더 입니다. 스프링에 대해 알아보았고 간단한 예제로 중요한 요소들을 살펴보았습니다. 이번 시간부터 스프링 게시판을 만드는 방법을 알아보겠습니다. 기본적으로 회사에서 많이 사용하는 방식으로 구현할 것 입니다. ● 1. 프로젝트 구조도 함께 만들어올 게시판에 구조도 입니다. 스프링으로 웹프로젝트를 하면 대부분 이런 구조가 나타나는데요. 이 그림은 머리속에 한번 새겨 보시고 프로젝트를 함꼐 하면서 조금씩 구체화 되어 나갈것입니다. ● 2. 프로젝트 생성 ● 2-1. 이번 프로젝트 이름은 MVCBoard 라고 하겠습니다. 이전 시간에 배웠던 방법대로 MVC Project를 만들어보겠습니다. ● 2-2. 이번 패키지 명은 net.gocoder.mvcboard로 만들어 보겠습.. 2019. 8. 15.
Spring - 데이터 커맨드 객체 사용하기 데이터 객체로 변수를 줄이기 안녕하세요. 고코더 입니다. 이전 시간에 파라미터 데이터를 VIEW로 전달을 해봤습니다. 기초적인 예제였는데요. -> Spring - 스프링 컨트롤러로 받은 데이터를 View에 노출 하기 하지만 실무에서는 소스 길이기 갈게 나오지 않게 스프링에 장점을 살려서 변수를 클래스에서 가져오는 방법을 씁니다. 스프링은 커맨드 객체를 사용할 수 있도록 규칙이 설정되어 있으며 변수만 담아주면 이전 시간에 했던 소스를 간단하게 개발해 view에 전달할 수 있습니다. 소스를 함께 개발하면서 이 부분을 살펴보겠습니다 역시 이전 소스를 활용합니다. ● 1. Gocoder.java 작성 ● 1-1. 클래스 파일을 생성합니다. 처음 생성하는 분들이 있으실텐데요 해당 프로젝트 팩키지로 마우스 오른쪽 .. 2019. 8. 14.
Spring - 스프링 컨트롤러로 받은 데이터를 View에 노출 하기 파라미터로 받아 view 노출하는 예제 안녕하세요. 고코더 입니다. ● 1. 오늘은 HttpServletRequest 에 대해 알아보려고 합니다. URL로 접근하는 모든 패턴은 디스패처서블릿이 가로챈다고 말씀드렸습니다. -> Spring - DispatcherServlet / 스프링이 컨트롤러를 찾는 방법 살펴보기 ● 2. 이걸 기초로 오늘은 파라미터에 있는 정보를 HttpServletRequest로 데이터 전송을 받아보는 방법을 알아보겠습니다. 이전에 만든 hello 소스에 추가하여 개발해보겠습니다. -> Spring - 스프링 MVC Hello 기본 예제 출력 ● 3-1. 컨트롤러에 함수 추가 / HttpServletRequest / @RequestMapping ● 3-2. HomeController.. 2019. 8. 14.
Spring - 스프링 한글 처리 encodingFilter 추가 / web.xml 스프링에서 UTF-8 한글 나오도록 설정 안녕하세요. 고코더 입니다. ● 1. 스프링으로 기본 프로젝트를 생성하면 한글이 ?로 출력 됩니다. 스프링 기본 프로젝트는 UTF-8로 만들어지지 않기 때문입니다. ● 2. web.xml에 아래 코드를 추가해주세요. 엔코딩필터에 UTF-8을 사용할 수 있게 만들어주는 코드 입니다. encodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 forceEncoding true encodingFilter /* ● 3. 위치는 맨아래에 추가합니다. 코드를 그대로 복사해서 붙혀넣어주세요. xml이 변경되었기 때문에 서버를 재시작 합니다. 그리고 다시 접속해보면 물음표(?)로 보이던.. 2019. 8. 14.