본문 바로가기
TIL

[TIL] 2022년 3월 3주차

by happyhelen 2022. 3. 16.

 

 

 

 

  • 코드는 깃헙에 올리므로 여기서는 공부한 내용을 요약하는 식으로 정리합니다.

 

 

 

 

 

3월 14일

 

  • personUpdate.jsp 파일에 113 라인에 value="${requestScope.psdto.seq }" 로 주고 type="hidden" 으로 보이지 않게했다. 이 value (회원번호) 를 PersonUpdateEnd 에서 사용하기 위한 태그이다. 또한 회원번호는 primary key 로 수정하면 안되니까 readonly 로 키보드 타이핑을 막아두었다.
  • 이전까지는 각 매핑에 대한 서블릿을 하나씩 만들었다. 하지만 앞으로 FrontController 라는 서블릿을 하나만 만들고, Command.properties 를 읽어와서 매핑이 되도록 한다. 
  • 그래서 컨트롤러를 잘 작성하는 것이 중요하다.
  • 이제부터 세미 팀프로젝트를 시작한다.

 

세미 팀프로젝트

  • 조원들과 상의해서 프로젝트의 주제, 업무 분담, 프로젝트 일정을 정하고 공유했다.
  • 기능별(회원관리, 제품관리, 게시판관리) 로 팀 내 조를 만들었다.
  • 프로토타입을 만들기 시작했다. (3/16일까지)
  • 그 이후에 DB 모델링에 들어간다. (3/17일까지)

 

 

 

 

 

 

 

3월 15일

 

  • 서블릿 파일 내 init 메소드는 was 구동 후 처음에 딱 한번 읽어오는데, property 를 읽어와 저장해두는 것이 목적이다.
  • 그리고 doGet 메소드에서 저장해둔 property 인스턴스를 읽어와서 forward 혹은 sendRedirect 를 하도록 작동시킨다.
  • properties 파일은 = 을 중심으로 왼쪽이 key, 오른쪽이 value 로 클래스를 나타낸다. key 에 해당하는 url 로 이동시 해당 클래스로 이동한다는 것이다.
  • property 의 이름으로 Controller 클래스를 만들고, 모든 controller 을 한번에 제어(관리)하기 위해 부모클래스를 만들어 controller 에 상속시킨다.
  • 또한 무조건 돌려야 하는 메소드를 강제화하기위해 인터페이스를 만들고, 이 인터페이스를 implements 하는 추상컨트롤러를 abstract 로 만든다. 후에 이 추상컨트롤러를 상속받은 컨트롤러들은 인터페이스에 명시된 메소드를 강제적으로 오버라이딩해야한다. 
  • 폼태그에서 post 로 전송시 한글이 깨져서 나오므로 필터를 생성해준다. => @WebFilter("/*")
  • forward 는 url 변화가 없고 전송한 데이터를 받아서 쓰는, 즉 DB에 변화가 생기지 않는 단순조회시 사용되고, sendRedirect 는 url 변화가 있고 데이터를 받아서 쓰지 않아도 되는, 즉 DB에 변화가 생기는 작업(로그인, 회원가입, 글쓰기 등)시 사용된다.
  • /MyMVC 까지만 쳐도 시작페이지가 나오게끔 하려면 property 에 /=연결컨트롤러파일명 을 입력하고, <welcome-file>index.up</welcome-file> 을 설정한다.

 

세미 팀프로젝트

  • 조원들과 상의해서 헤더와 푸터의 범위를 정했다. 
  • 일단 오늘까지 받은 조원들의 프로토타입을 약간 수정하고 취합 및 정리해서 다시 조원들과 공유했다.

 

 

 

 

 

3월 16일

  • MVC 패턴의 회원가입 기능을 만들기 시작했다.
  • 헤더와 푸터 코드를 작성시, 기능별로 나누고 jsp 로 합치는 연습을 했다. 이렇게하면 나중에 헤더 또는 푸터에 변경사항이 있을 때 그 파일만 수정하면 헤더 또는 푸터를 적용한 모든 파일에 자동으로 적용되어서 코드를 수정하고 관리하는 데 좋다. 또한 반복적으로 사용되는 헤더와 푸터를 모든 파일에 사용하지 않아도 한줄로 대신할 수 있어서 코드가 간결해진다.

 

세미 팀프로젝트

  • 기능 조별로 완성된 프로토타입을 취합해서 한눈에 보기 쉽게 ppt 로 정리하고 메모란에 해당 프로토타입에 대한 설명과 만든 조원의 이름을 적어서 조원들과 공유했다. 오븐으로 프로토타입을 작성했는데 취합하는 기능이 없어서 ppt 를 사용했다.
  • DB 논리 모델링을 각 기능조별로 진행했다.

 

 

 

 

 

 

 

3월 17일

  • git 사용법과 eclipse 연동하는 법, commit 및 push, merge 하는 방법을 익히고 여러번 연습했다. 팀프로젝트 할 때 깃허브로 프로젝트를 관리하는 것은 매우 중요한 부분이라서 계속 연습하면서 어떻게 작동되는지 흐름을 파악했다.
  • gitignore 에 대해 익혔다. .class 파일을 올리지 않아도 프로젝트를 import 하면 자동으로 .class 파일이 생성되므로 .class 파일은 git 에 올리지 말라는 의미이다. 본 세미프로젝트에서는 java 와 eclipse 를 사용하므로 이 둘에 대해서만 gitignore 를 적용시켰다.
  • git 은 빈 폴더는 받아주지 않으므로, src 밑에 폴더 및 파일을 생성하지 않고 git 에 올리면 해당 프로젝트를 import 한 사람은 src 폴더가 존재하지 않는다는 에러를 만나게 된다. 그러러면 팀장이 src 밑에 꼭 폴더 및 파일을 생성해서 git 에 올려야 import 받은 사람에게도 src 폴더가 올바르게 생성된다.

 

세미 팀프로젝트

  • 팀원들과 같이 프로젝트와 git 을 연결하고 브랜치를 check out 하는 것을 연습했다.
  • 막히는 부분이 있으면 화면공유를 하고 서로 설명해주었다.
  • 오늘까지 각 기능 조별로 DB 논리 모델링을 받아서 취합했다. 내일 같이 보면서 수정할 부분이 있으면 수정해야겠다.
  • 헤더, 푸터, db 물리모델링을 기능 조별로 맡아서 내일까지 결과물을 카톡방에 공유하기로 했다.

 

 

 

 

 

 

3월 18일

  • 그저께 했던 MVC 패턴의 회원가입 기능을 이어서 작성했다.

 

세미 팀프로젝트

  • 취합한 DB 논리 모델링을 보면서 같이 수정할 부분을 수정했다. DB 를 한 조원분이 맡아서 해주시듯이 계속 수정해주었는데 너무 고마웠다. 덕분에 DB 를 잘 넘겼다.
  • 만들어진 헤더, 푸터, db 물리모델링을 모든 조원들과 같이 보면서 수정하고 서로 피드백을 해주었다.
  • main branch 에 commit 및 push 하기 전에 sub_main branch 에 우선 commit 및 push 를 해서 실수를 줄이자는 한 조원분의 의견이 나와서 상의한 결과 본 프로젝트에 의견을 적용하기로 했다.

 

 

 

 

3월 19-20일

  • 일요일에 팀원들과 프로젝트와 원격 DB 를 연동하기로 해서 프로젝트에 기본 환경설정(헤더푸터 파일, property 파일, 공통적으로 사용되는 interface, abstract controller, 여러 controller 들) 을 해서 프로젝트를 만들었다.
  • 깃에 올리고 각 조원의 이름으로 된 branch 와 sub_main branch 를 만들어두었다. 
  • 주말에 잠깐 모든 팀원과 시간을 맞춰서 git 에서 프로젝트를 import 하게 설명해주고, 학원 원격 DB 에 각자 프로젝트를 연동시켜서 원격 db 에 모두 연결되었는지 테스트까지 마쳤다.
  • 다음주부터는 진짜 코드를 작성하면 된다.

'TIL' 카테고리의 다른 글

[TIL] 2022년 3월 4주차  (0) 2022.03.21
[TIL] 2022년 3월 2주차  (0) 2022.03.07
[TIL] 2022년 2월 5주차 ~ 3월 1주차  (0) 2022.02.28
[TIL] 2022년 2월 4주차  (0) 2022.02.21
[TIL] 2022년 2월 3주차  (0) 2022.02.15