목록problem solving (84)
코딩항해기
[과제/Spring] 수업 실습 코드에 게시글 검색 추가하기기존 수업을 진행하던 spring 프로젝트에 게시글 검색 기능을 추가할 예정이다.계속 개인 실습해오던 코드와 대체로 유사한데 테이블이나 DTO나 조금씩 다른 부분이 있어서 수업 진행 코드로 대체minibcake.tistory.com 기존에 페이지 이동 방식으로 구현했던 검색기능을 비동기 방식으로 변경한다. 원래,,, checkNull.js 재사용성을 위해 여러 input태그를 검사했는데 로직을 추가하면서 변경했다.//check-null 요소가 빈 값이라면 form 전송을 막는 JS//재사용성을 위해 요소가 여러 개 일 수 있다고 가정//버튼 클릭, Enter 검증window.onload = ()=>{ const check = document..
현재 실습 테이블에서 id값을 PK로 사용하고 있으므로 중복된 아이디로 회원가입을 시도하면 false가 뜰 수 밖에 없다.이러한 상황을 미리 방지하기 위해 유효값 검사(id 중복검사)를 통해 미리 사용자에게 고지할 수 있다. 해당 기능을 구현할 예정이며, id 중복검사를 통과하지 못했을 시에는 회원가입을 진행할 수 없도록 한다. 먼저 회원가입을 진행할 페이지가 필요하다. 아이디 비밀번호 이름 ..
기존 수업을 진행하던 spring 프로젝트에 게시글 검색 기능을 추가할 예정이다.계속 개인 실습해오던 코드와 대체로 유사한데 테이블이나 DTO나 조금씩 다른 부분이 있어서 수업 진행 코드로 대체했다. (환경통일) 검색 기능 구현하기검색은 작성자 검색, 게시글 내용 검색 두 가지비동기 (페이지이동X)가 아닌 페이지 이동 방식으로 구현추가로 작성자 id가 아닌 이름으로, 검색어가 유지되도록 구현하려고 한다. 현재 검색종류와 검색어를 입력 받는 부분이 없으므로, View에 해당 form을 추가했다. 작성자 내용 검색 ${data} '${boardDTO.keyword}'에 대한 검색 결과가 없습니다. 만약 condition과 keyword에 대한 데이터가 있다면 (=이미 검색을 한 상..
로그인 기능 없이 게시글 기능을 구현한다.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..
현재 배운 내용으로 board insert 구현하기 1. 글 작성 페이지로 사용자의 요청 받기2. 요청 추출하기 (/boardWrite)3. 요청 처리하기 (boardWriteController)4. 응답하기 (메인페이지로 이동, main.do) 톰캣 서버 세팅을 해본다고 했는데, 서버는 켜지는데 페이지 접근이 되지 않는다..ㅠ 해서 테스트를 해보지 못했기 때문에 오류가 있을 수 있다. 1번을 수행하기 위해서는 사용자로부터 입력을 받을 페이지가 필요하다.게시글 작성 페이지 글 작성을 완료하면 boardwrite.do요청이 POST형식으로 가게 된다.이 요청은 web.xml에 작성된 .do로 끝나는 모든 요청을 받는 DispatcherServlet인 ds로 가게 된다.여기에 사용된..
기존 memberDAO와 boardDAO에 Service와 ServiceImpl 추가하기Client(Class)에서 new 지시자 사용없이 출력하기 아직 DAO에 new가 가득한데 이 new를 제거하는 진도까지 나가진 않았다.기존 DAO까지는 동일하며 이번 과제에서 DAO에 추가된 부분은 @Repository 어노테이션 뿐이었다.따라서 Service와 ServiceImpl만 추가된 형태이다. 먼저 ServiceImpl의 메서드 시그니처가 DAO와 통일되는 것이 중요하기 때문에 구현할 인터페이스 Service를 만들었다.public interface MemberService { List selectAll(MemberDTO memberDTO); MemberDTO selectOne(MemberDTO membe..
1. 빈칸채우기import java.util.Scanner;public class Solution { public static void main(String[] args) { String message = "Let's go!"; System.out.println("3\n2\n1"); System.out.println(message); }} 2. 디버깅문제public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int angle1 = sc.nextInt(); int angle2 = sc.ne..
[intellij] 두 가지의 워치를 만들어 전원을 키고 끄는 메서드를 구현해보자결합도를 낮출 것Spring 컨테이너를 활용할 것메인메서드 매개변수 String[] args를 활용할 것int-method를 설정할 것scope를 설정할 것 (기본 singleton)lazy-init를 설정할 것 먼저 결합도를 낮추기 위해 인터페이스를 활용해 오버라이딩 할 수 있다.인터페이스를 활용해 구현부를 강제하면 업캐스팅해 사용할 수도 있고 메서드 시그니처를 통일 할 수 있다. 워치 인터페이스package test;public interface Watch { void turnOn(); void turnOff();} 사과워치package test;public class AppleWatch implements ..
[연습] 커뮤니티 사이트로 JSP 프로젝트 V, C파트 연습 - 사전설계중중프 , 중프에서 Model파트를 맡게 되어 전체적인 JSP 프로젝트 구조의 이해가 떨어질 것 같아 개인 프로젝트로 VC파트를 추가해 간단한 사이트를 진행해보기로 했다. 중프 팀플에 영향을 주지minibcake.tistory.com 사전 설계를 기반으로 웹페이지를 만들었다.아직 기능은 없는 페이지지만 EL식과 JSTL은 적용된 상태이다. board.jsp boardInfo.jsp boardWrite.jsp join.jsp login.jsp main.jsp(추후 로그인 여부에 따라 버튼이 달라지도록 설계할 것) mypage.jsp CSS가 굉장히 중구난방이지만 연습 대상은 아니므로,,,, 일단은 이대로 넘어가도록 하겠다...
중중프 , 중프에서 Model파트를 맡게 되어 전체적인 JSP 프로젝트 구조의 이해가 떨어질 것 같아 개인 프로젝트로 VC파트를 추가해 간단한 사이트를 진행해보기로 했다. 중프 팀플에 영향을 주지 않도록 간단하게 여유로운 계획으로 설계하여 프로젝트를 진행할 예정이며, 혼자 진행하는 프로젝트지만 최대한 각 파트를 구분해 팀플 하듯이 진행해보려고 한다. 일단 사전에 팀플이라면 팀 회의를 통해 정했을 기능, 각 파트끼리 약속된 값을 일부 엑셀에 정리했다.VC파트가 서로 어떤 값을 미리 전부 정해야할지 가늠이 되지 않아 일단 일부 값만 정리했다. [ 개인 프로젝트 진행 목적]1. JSP 웹 프로젝트 구조, 흐름 이해하기2. View 파트 연습하기3. Controller 파트 연습하기4. VC파트에서 사전에 정해..