본문 바로가기

반응형

전체 글

[국민취업지원제도 일경험프로그램 47일차] 결재시스템 다시 시작⑥ 46일차 특이사항 1. 히스토리 영역 - 글을 쓰면 히스토리 영역에도 입력이 되어야 한다. - 입력인가? 아니면 조회인가? - 게시글 입력 mapper 그리고 게시글 조회 mapper? 2. 특정 멤버는 자신이 쓴 글만 볼 수 있고, 특정 멤버는 모든 게시글을 볼 수 있게 만들었다. // 메인화면 @RequestMapping(value = "/login/main", method = RequestMethod.GET) public String mainPage(Model model, HttpSession session) throws Exception { MemberVO loggedInMember = (MemberVO) session.getAttribute("loggedInMember"); if (loggedI.. 더보기
[국민취업지원제도 일경험프로그램 46일차] 결재 시스템 프로젝트⑤ 46일차 특이사항 1. 프로그래밍은 문제해결 과정이다. 나프잘 시리즈를 읽어보자. 2. spring공부를 잘했는지 확인하는 방법 유튜브 영상을 봤는데 뭔소리인지 못 알아들었다. 아직 공부가 덜 된듯? 3. 어제 너무 피곤해서 일찍 잠들었다. 해결하지 못한 문제를 해결해보자. 안 풀리는 문제 1. 지금 세션에서 memid를 받아와서 글을 작성하고 있다. 글쓰기 창에 id가 아니라 memname이 출력되면 좋겠다. memname을 어디서 받아와야 할까? 그것이 문제다. 작성자 : 2. memid이 포함된 input 태그를 hidden으로 넘겨주고, 표시만 해주는 방법을 사용했다. 번호 : ${listSeq} 작성자 : ${loggedInMember.memname} 3. 문제는 해결됐으나 이것이 최선의 방법인.. 더보기
[국민취업지원제도 일경험프로그램 45일차] 결재 시스템 프로젝트④ 45일차 특이사항 1. /login/insert로 이동하고 새로고침하면 계속 글이 추가됨. 새로고침을 url요청으로 인식하는 것 같다. 2. 글쓰기 버튼 누르면 게시글 번호, 작성자 이름을 가져와야함 - 컨트롤러에서 model에 데이터 저장해서 write.jsp로 가져옴. 3. 세션에 저장된 member 정보가 시간이 지나서 사라진다. web.xml에서 시간 설정해주기. 4. 자신이 쓴 글만 보이도록 한다. mapper를 다시 고쳐줘야할 것 같다. 5. memid를 memname으로 대체하려고 하는데 그럼 join을 해야한다. 다시 해보자. 6. 계속 이런식으로 나온다. 도대체 모르겠다. 7. list에는 memid값이 들어있고, list2에는 memname값이 들어있다. memname값을 가져오기 위해.. 더보기
결재시스템 테이블 JOIN, write.jsp 만들기 테이블 조인해서 특정 컬럼값 가져오기 요구사항 : MEMNAME을 조인해서 가져와야함. 게시글은 사원 아이디가 노출되는 것이 아니라 닉네임이 노출되는 것 같다. 네이버 카페에 들어가보면 아이디가 노출되지 않고 닉네임이 노출된다. 보통 이런식으로 하는 것 같다. 1. SH_EMP 테이블. 이곳에 MEMNAME이 있다. 2. SH_BOARD 테이블. 3. 두 테이블의 공통컬럼은 MEMID 다. MEMID를 기준으로 조인해서 MEMNAME을 조회할 수 있다. SELECT A.memname, b.boardno, b.title, b.content, b.flag, b.memrank, b.regdate, b.signdate FROM SH_EMP A,SH_BOARD B WHERE A.MEMID=B.MEMID; 4. m.. 더보기
[국민취업지원제도 일경험프로그램 44일차] 결재 시스템 프로젝트③ 특정 사용자에게만 버튼 보이기 44일차 특이사항 1. 로그인 했는데 게시글 리스트 조회가 되지 않는다. - 로그인 요청 url과 게시글 리스트 조회 url이 동일해서 발생하는 문제다. - /login/login url 요청에 게시글 리스트 조회 기능을 넣어줬다. 과장, 부장만 대리결재 버튼이 보인다 1. 제약사항 중에 과장, 부장만 대리결재 버튼이 보인다는 조건이 있다. - 세션에 저장된 회원 정보를 확인하여 memrank가 boss, king인 경우만 '대리결재'버튼이 활성화 된다. - jstl문을 사용해보자. ${member.memname}(${member.memrank})님 환영합니다. 근데 작동이 안 됨. 무엇이 문제인가? member 객체가 session에 저장되어 있다. 그런데 왜 안되지? 문법이 잘못됐나? 2. 살펴보니 .. 더보기
MVC 패턴 : 모델, 뷰, 컨트롤러의 역할 MVC패턴 하나의 디자인 패턴으로 사람들이 써 보니까 유지보수하기 좋고 편리해서 계속 사용되고 있다. 백엔드 기반의 웹 애플리케이션 개발의 기본 모델이 되었다. 패턴의 목적은 화면과 데이터 처리를 분리하여 코드 간 종속성을 줄이는데 있다. 구성요소 간 역할을 명확하게 해서 코드를 쉽게 분리하여 협업이 용이하도록 만든다. MVC는 모델, 뷰, 컨트롤러의 약자다. Model - 데이터를 처리하는 영역이다. 사용자가 편집하길 원하는 모든 데이터를 가지고 있어야 한다. 일반적으로 DB와 연동을 위한 DAO클래스와 데이터 구조를 표현하는 DO, DTO, VO, 엔티티 클래스 등으로 구성된다. View - 화면 구성을 담당하는 영역이다. 사용자가 보는 페이지다. 뷰는 데이터를 받아서 화면에 표시해준다. 직접 데이터.. 더보기
[국민취업지원제도 일경험프로그램 43일차] 결재 시스템 프로젝트② 43일차 특이사항 1. 로그인 기능은 구현했는데 유효성 검사가 어렵네 - 아이디 체크, 비밀번호 체크를 따로 해줘야 한다. - VO에 회원 정보를 모두 저장한다. 로그인 아이디 체크, 비밀번호 체크 1. 사용자가 입력한 아이디와 비밀번호를 컨트롤러에서 받는다. - @requestparam? 2. 받은 아이디와 비밀번호를 DB와 비교한다. 3. 아이디가 일치하지 않는 경우 alert를 띄운다. 4. 비밀번호가 일치하지 않는 경우 alert를 띄운다. 5. 둘다 일치하면 회원 정보를 세션에 저장하고 로그인이 된다. 6. 만든 코드 : 로그인은 가능하지만 비번, 아이디 입력을 잘못하면 nullpointexception이 계속되고 있음. try catch문을 사용하면 오류창이 바로 안 뜨기는 한데 오류를 해결한.. 더보기
[국민취업지원제도 일경험프로그램 42일차] 결재 시스템 프로젝트 42일 차 특이사항 1. 정확하게 알아야 된다. 기억도 날카롭게 해보자. 2. api 사용 3. 결재 시스템 개발 시작 문제 복습 1. 여기서 오류를 찾는 문제다. index(number) name(varchar(4)) addr(varchar(10)) phone(number) 1 yoon seoul 010-1111-1111 2 park pusan 010-2222-3333 3 hwang daegu 010-4444-5555 - phone 컬럼에 하이픈이 들어가는 데이터를 추가해도 오류가 발생하지 않고 음수가 나오더라. 에러발생은 아니지만 좋은 결과는 아니다. - varchar(4)로 설정되어 있는 name 컬럼에 hwang이 5글자라 오류다. 2. DQL에는 SELECT가 포함된다. SELECT는 DML이기.. 더보기

반응형