목록분류 전체보기 (444)
코딩항해기
팀 개발 계획 설계 개인 개발 계획 설계 (1011수정)더보기(코드리뷰 제외 전체 설계 및 팀 회의 등의 팀 활동 계획은 작성하지 않음 / 코드리뷰 월 , 회의 화,목) 이런 저런 상황이 바뀌면서 (파트 변경, 이관 파트 변경, 수업 진도로 인한 설계, 코드 변경 등..) 개인 개발 계획을 수정했는데, 블로그 글을 업데이트 한 줄 알고 있었다..(1015수정 (글 업데이트 1019))
Layered Architecture (계층화 아키텍처)소프트웨어 개발에서 일반적으로 흔히 사용되는 아키텍처의 개념으로 각 구성 요소들의 관심사 분리를 달성하기 위해 책임을 가진 계층으로 분리한 아키텍처이다. 관심사의 분리 (Separation of Concerns)책임(관심사)을 기준으로 다른 책임(관심사)를 분리하는 것 관심사 분리 필요성하나의 계층에 관심사가 여러 개 존재한다면 해당 계층의 응집도가 떨어지고, 결합도가 높아진다.각 계층의 관심사를 기준으로 분리해 계층의 응집도를 높이고 결합도를 낮출 수 있다.응집도가 높아지고 결합도가 낮아지면 재사용성과 유지보수성이 올라간다. 2-Layered Architecture (2-Layered 아키텍처) 일반적으로 프레임워크 기반의 웹 프로젝트를 보면 ..
기존 수업을 진행하던 spring 프로젝트에 게시글 검색 기능을 추가할 예정이다.계속 개인 실습해오던 코드와 대체로 유사한데 테이블이나 DTO나 조금씩 다른 부분이 있어서 수업 진행 코드로 대체했다. (환경통일) 검색 기능 구현하기검색은 작성자 검색, 게시글 내용 검색 두 가지비동기 (페이지이동X)가 아닌 페이지 이동 방식으로 구현추가로 작성자 id가 아닌 이름으로, 검색어가 유지되도록 구현하려고 한다. 현재 검색종류와 검색어를 입력 받는 부분이 없으므로, View에 해당 form을 추가했다. 작성자 내용 검색 ${data} '${boardDTO.keyword}'에 대한 검색 결과가 없습니다. 만약 condition과 keyword에 대한 데이터가 있다면 (=이미 검색을 한 상..
이클립스에서 기본 코드 태그인 TODO FIXME XXX외에도 사용하고 싶은 코드 태그를 추가하고 싶을 때는 Window - Preferences - Java - Task Tags에서 추가할 수 있다. 이클립스 또한 기본 태그 외에 커스텀 태그는 이클립스 설정이기 때문에 해당 태그 설정이 없는 사람이 본다면 일반 주석으로 보이게 된다. 선택한 코드를 Remove 해서 삭제할 수도 있으며 New를 눌러 추가할 수도 있다. Tag에는 사용할 코드 태그 명을 입력하면 되고 Priority는 어느 중요도를 갖느냐는 이야기이다.High로 갈 수록 눈에 잘 띄는 구조로 되어있고 OK를 누른 뒤 Apply를 누르면 추가된다. 사용해보면 코드 태그 색상이 변경되어 보이게 된다.코드 태그들은 Show View -..
// TODO, // FIXME 와 같은 코드 태그를 인텔리제이에서도 설정할 수 있다. 코드 태그를 사용하면 주석을 하이라이팅하거나 한 눈에 모아볼 수도 있고 스크롤에서 해당 위치에 표시가 되기 때문에 원하는 위치를 더욱 빠르게 찾을 수 있다. (색상이 변경돼 눈에 띄는 모습) (스크롤 부분에 마우스 오버하면 해당 주석을 띄워주는 모습) 기본으로 설정되어 있는 TODO와 FIXME는 바로 사용할 수 있으며 기본 설정된 색상으로 표시된다. 만약 커스텀 태그를 추가하고 싶다면 Flie - Settings - Editor - TODO에서 추가할 수 있다. 지금 보면 기본으로 들어가있는 todo와 fixme, 그리고 커스텀해서 넣은 KS가 있는 것을 확인할 수 있다.제거할 코드 태그를 선택하고 -를 누르면 제..
[JSP] JDBC - 필터 검색 (Model 파트/HashMap 사용)기존 방식에서는 검색 쿼리를 실행시키기 위해 C에서 컨디션값을 받아와 해당 고정된 쿼리를 불러와 값을 넣어 필요한 데이터를 반환했다. 이 방식의 단점은 단일 검색이 아니라 다양한 조건이minibcake.tistory.com placeholderNum = filterKeywordSetter(pstmt,filters,placeholderNum); //필터 검색 검색어 if(placeholderNum 필터 검색 부분에서 이 부분에 대해 계속 신경쓰이고 다른 처리 방법이 있을 것 같아 다른 방법을 계속 찾아보다 개선 방법을 찾았는데, 블로그에도 같이 기록해두면 나중에 더 놓치지 않을 것 같아 기록으로 남긴다. 함수 내에서 예외가 발생하..
[DBMS] Oracle에서 MySQL로 데이터 이관 (CSV/DBeaver)CSV (Comma Separated Values)표 형태의 데이터를 저장하는 파일 형식이다. 각 줄은 하나의 행에 해당하고 각 열 사이에는 쉼표(Comma)를 넣어 구분하며 이 때 모든 행은 같은 개수의 열을 가져야한다. 줄minibcake.tistory.com 지난 번 Oracle에서 MySQL로 데이터 이관 작업을 하며 데이터를 옮기는 작업과 DAO의 쿼리문을 수정하는 작업을 팀원끼리 2개의 DAO씩 분배해 작업 했다. 파트 분배이번에는 Spring 기초 구조 진도를 나갔기 때문에 기존 JSP기반 Controller 코드를 Spring으로 변경해 옮기는 작업을 진행했다. 마찬가지로 담당한 파트 구분없이 페이지 기준 2개로 ..
pageContext (PageContext)pageContext 객체는 JSP 기본 내장 객체 중 하나로 따로 선언하지 않아도 사용 가능하다. pageContext는 JSP 페이지에 대해 1:1로 연결된 객체로 JSP 하나 당 하나의 pageContext 객체가 생성된다. pageContext 객체를 이용하면 pageContext.reqeust.contextPath를 통해 http://localhost:[포트번호]/[프로젝트명]에 해당하는 컨텍스트 루트를 얻을 수 있다. 이는 JAVA에서 pageContext.getReqeust().getContextPath()와 동일하다. request 객체를 반환하는 메서드 외에도 다양한 메서드를 가지고 있다.메서드반환타입설명getRequest()ServletReq..
WEB-INF 하위에 있는 jsp 파일에 webapp에 있는 css을 적용하려고 하니 css가 적용되지 않는 문제가 발생했다.관련을 찾아보니 ${pageContext.request.contextPath} 를 통해 해결한 사례가 있어 해당 방식을 적용해봤다. 이제 css가 정상 적용되는 것을 확인할 수 있다. 이 방법은 동적으로 경로를 구성하는 방법이라고 하는데, 현재 페이지를 기준으로 컨텍스트 루트를 반환하므로 파일 주소에 변경이 있어도 따로 수정할 필요가 없는 방법이라고 한다. pageContext 객체는 javax.servlet.jsp.PageContext 클래스를 상속해 웹 컨테이너가 JSP 실행시 자동으로 생성해서 제공하는 내장 객체이다. [JSP] 내장 객체 (pageContext)pag..
로그인 기능 없이 게시글 기능을 구현한다.Controller 위주로 작성할 예정이다.게시글 작성하기게시글 목록보기게시글 상세보기 기초 세팅더보기DB구성 (테이블)CREATE TABLE BOARD( NUM INT PRIMARY KEY AUTO_INCREMENT, -- 자동 증가 TITLE VARCHAR(30) NOT null, -- 제목 CONTENT VARCHAR(30) NOT NULL -- 내용); JDBC (DAO)@Repositorypublic class BoardDAO { private final String SELECTALL = "select NUM, TITLE, CONTENT from board"; private final String SELECTONE = "SELECT NUM, T..