본문 바로가기

KOSTA

(50)
KOSTA 교육 (Spring, Junit, DB, log4jdbc, MVC) 배운 내용 Spring 프로젝트 생성 및 세팅 JUnit Oracle Database 연동 myBatis 연동 log4jdbc-log4j2 MVC Controller 파일 업로드 1. Spring 프로젝트 생성 및 세팅 STS툴을 사용하여 Spring Project를 생성 및 세팅한다. 프로젝트 생성 Spring Legacy Project를 클릭한다. 제목을 입력하고 MVC Project를 선택하고 Next를 클릭한다. 생성 후 Finish를 눌러 생성한다. Project를 생성하면 보기와 같이 기본적으로 생성된다. src/main/java : 작성되는 코드의 경로 src/main/resource : 실행할 때 참고하는 기본 경로(주로 설정파일을 넣는다.) src/test/java : 테스트 코드를 넣는..
KOSTA 교육 (RequestParam, ModelAttribute, RESTFul, PathVariable, tiles, File Up/Download, JSON, AOP, Transaction) 배운 내용 @RequestParam @ModelAttribute @PathVariable(RESTful) tiles File Up/Download JSON AOP Transaction 1. @RequestParam 파라미터값을 가져올 수 있는 어노테이션이다. 가져오는 파라미터값을 명확하게 하기 위해 사용하기도 한다. 1:1로 파라미터를 받는 경우에 사용한다. name, value : 파라미터 이름 required : 해당 파라미터가 필요한지의 여부 (default : true) defaultValue : 해당 파라미터의 기본 값 fname이라는 파라미터값을 가져와서 filename이라는 변수를 주었다. 만약 위의 required, defaultValue를 사용하려면 다음과 같다. @RequestParam..
KOSTA 교육 (Spring MVC, mybatis, CRUD) 배운 내용 Spring MVC myBatis CRUD 1. MVC 컴포넌트의 변경이 다른 영역 컴포넌트에 영향을 미치지 않음 컴포넌트 간의 결합성이 낮아 프로그램 수정이 용이 화면과 비즈니스 로직을 분리해서 작업 가능 영역별 개발로 확장성이 뛰어남 표준화된 코드를 사용하여 공동작업 및 유지보수가 편리함 개발과정이 복잡해 초기 개발속도가 늦음 초보자가 활용하기엔 난이도가 있음 Dispatcher Servlet : url의 요청을 받아서 연결시켜준다. Handler Mapping(default) : Dispatcher Servlet이 Controller로 매핑하는 방식을 결정 Controller : 로직을 처리한다. ModelAndView : view 이름, data를 담는다. ViewResolver : v..
KOSTA 교육 ( Spring, DI, AOP) 배운 내용 Spring이란 ? DI(Dependency Injection) 의존성 주입 AOP 1. Spring이란? 엔터프라이즈 어플리케이션 개발을 편하게 해주는 프레임워크이다. 2003년에 등장하여 현재(2019)까지 사용되고 있다. 복잡성을 줄여주기 위한 목적을 가지고 있다. EJB사용을 하지 않기 위해 POJO(Plain Old Java Object)를 사용하여 가능하게 하였다. Maven을 사용하여 보다 편리하게 빌드 과정에서 라이브러리를 사용할 수 있다. pom.xml에 dependencies 태그를 추가하여 라이브러리를 추가하면 자동으로 Maven이 생성된다. Maven 문제 발생 시 프로젝트에 빨간 느낌표가 발생한다. 해결 방안 : 툴 종료 → m2 폴더 → Repository 삭제 → 재..
KOSTA 교육 (Git, Software Develope Process, Semi-Project) 배운 내용 Git Software Develope Process Semi-Project 1. Git 여러명이 공유할 소스코드를 버전 관리를 통하여 보다 쉽게 관리하기 위하여 만들어진 시스템 소스 코드가 변경된 이력을 쉽게 확인할 수 있다. 특정 시점에 저장된 코드와 비교하거나 특정 시점으로 돌아갈 수도 있다. 또 내가 올리려는 파일이 누군가 편집한 내용과 충돌한다면, 서버에 업로드 할 때 경고 메시지가 발생하여 중복을 방지한다. 여러사람과 collaboration을 할 때엔 누군가 Push를 하면 항상 Pull하여 오류를 방지한다. 원격 저장소(Remote Repository): 파일이 원격 저장소 전용 서버에서 관리되며 여러 사람이 함께 공유하기 위한 저장소 로컬 저장소(Local Repository)..
소스트리(SourceTree) merge 시 주의사항! 저희는 기본적으로 git flow 방식으로 형상관리를 할 것이기 때문에 각자 본인이름+넘버링 하여 만든 브랜치를 하나의 기능이 완료되면 develop 브랜치에서 merge 해야 합니다. 이 때! 우리는 현재 배우는 과정이고 형상관리 툴에서 어떤 예외상황이 발생할지 모르기 때문에 merge 하기 이전에 반드시 백업을 해주어야 합니다. 우선 저희 중간프로젝트는 eclipse에서 dynamicWebProject환경이기에 war 파일로 백업합니다. Export source files : 소스파일(.java)를 포함시킬지의 여부 Overwrite existing file : 이미 해당 경로에 동일한 이름의 WAR 파일이 존재할때 덮어쓰기 여부 ------ 로컬에서 백업을 완료하였으면 소스트리에서 아래 순서대로 진..
KOSTA 교육 (MVC, CRUD) 배운 내용 MVC 패턴 CRUD 실습 1. CRUD CRUD는 Create, Read, Update, Delete의 약어이다. 즉, 데이터베이스에 데이터를 입력(insert) 하고, 읽어(select) 오고, 수정(update) 하고, 삭제(delete) 하는 DML(Data Manipulation Language) 작업을 의미한다. Client → Controller → Action → DAO → Mybatis → DB 순으로 처리된다. 이전에 했던 예제를 활용하여 MVC 패턴으로 재구성하였다. 게시판 구현을 위한 기본 Setting은 완료되어있다고 가정한다.(안되어있다면 CRUD 시작 날짜에서 참고한다.) 게시글 입력 및 데이터 저장 예제 Insert_form.jsp 게시글을 입력한 후 submit을..
KOSTA 교육 (Paging, Service) 배운 내용 Paging(페이징) 1. Paging(페이징) 게시판을 만들 때 Page표시를 하는 것을 말한다. 페이징 처리를 통해 게시글 수에 비례한 페이지 수를 생성할 수 있다. 페이지 수, 현재 페이지 위치 등은 개발자의 재량에 따라 위치시킬 수 있다. 예제 XML 쿼리 SQL의 count()함수를 사용하여 전체를 count한다. seq를 기준으로 데이터들을 봐야하기 때문에 resultType에 int를 선언한다. 나머지 코드는 검색을 위한 코드이다. 추상메소드 선언 Mapping한 ID와 동일하게 countBoard의 메소드명으로 선언한다. DAO re를 0으로 두고 Mapping 한 후에 re를 return시킨다. 글, 페이지수 구하기 totalCount는 DAO에서 DB와 Mapping 한 객체..
KOSTA 교육( JSP MVC-model2 패턴) 배운 내용 MVC(모델 2) 1. MVC(모델 2) 초창기 사용하던 모델 1 방식에서 발전된 모델로서 모델, 뷰, 컨트롤러 세 영역으로 나눈 패턴이다. 모델 1과 모델 2의 장단점 모델 1 장점 : 고도의 스킬이 필요 없음, 개발 속도가 빠름 모델 1 단점 : 프레젠테이션 로직과 비즈니스 로직이 혼재되면 코드가 복잡해짐 , 개발자와 디자이너의 작업 분리가 힘듬, 유지보수가 힘듬 모델 2 장점 : 비즈니스 로직과 프리젠테이션 로직의 분리로 애플리케이션이 명료해짐, 유지보수와 확장이 용이, 디자이너와 개발자의 작업을 분리하기 쉬움 모델 2 단점 : 개발자의 높은 스킬이 요구됨 Controller(컨트롤러), Model(모델), View(뷰)의 역할 Controller(컨트롤러) : 데이터를 처리하는 역할 S..
KOSTA 교육(Cookie, Session, Expression Language, JSTL, Filter) 배운 내용 Cookie(쿠키) Session(세션) Expression Language(익스프레션 언어) JSTL(JSP Standard Tag Library) Filter(필터) 1. Cookie(쿠키) HTTP 프로토콜의 문제점을 해결하기 위해 클라이언트측에 데이터를 저장하여 사용하는 방법이다. 쿠키 데이터 전달 첫 번째 웹 컴포넌트가 웹 브라우저로 HTML 문서를 보낼 때 전달한 데이터를 함께 보내며, 웹 브라우저는 데이터를 저장해 두었다가 두 번째 웹 컴포넌트를 호출할 때 URL과 함께 웹 서버로 보낸다. 파라미터는 String으로 넘겨준다. Cookie 생성 / Cookie 전달 / Cookie 배열 Cookie 삭제 Cookie 예시 loginForm.jsp 로그인 Form을 만들어 submi..