[IT국비지원] 개발자 교육 38일 차 : SPRING(2023.09.18)fit.구디아카데미,김지훈 강사님

Nicole Gold·2023년 9월 18일
0

K-digital training

목록 보기
39/60


이하 구디아카데미 김지훈 강사님의 수업자료와 강의 내용 정리, 실습한 내용을 정리함

지하철 파업 너무너무 싫다...🚃

Data Base

Transaction

member manager service

Use case Diagram

view

  1. 경로가 login 이고 method 는 post 타입인 form 생성
  2. id 가 regist 인 버튼에 클릭 이벤트를 걸어서 콜백 함수로 joinForm 으로 보냄
  3. msg 가 공백이 아니면 경고창에 msg 띄움

  1. list 덩어리를 가져와 forEach 문으로 반복해줌. 이름은 member.
  2. 첫 번째 열에는 member 의 id
  3. 두 번째 열에는 링크 생성 / detail 이라는 경로, id의 값은 member 의 id, 출력은 member 의 name 값
  4. 세 번째 열은 member 의 gender
  5. 네 번째 열은 링크 생성 / del 이라는 경로, id 값은 member의 id, 출력은 삭제
  6. msg 가 공백이 아니면 경고창으로 출력

  1. 경로가 join 이고 method 는 post 타입으로 보내는 form 생성

controller

  1. 기본 경로, GET 메서드로 들어오면 매핑해줌

  2. index 메서드 실행하면 index 페이지로 보냄

  3. joinForm 경로, GET 메서드로 들어오면 joinForm 메서드를 실행, joinForm.jsp 로 보냄

  4. join 경로, POST 메서드로 들어오면 params 를 매개변수로 하여 join 메서드 실행

  5. MemberService 클래스를 객체화 해옴(일 시키기 위해)

  6. service 객체의 join 메서드에 params 를 넣어 실행한 반환값을 변수 msg 에 담아줌

  7. model 객체를 이용해서 "msg"라는 이름으로 msg 값을 세팅해줌

  8. index 로 보냄


1. login 경로, POST 메서드로 들어오면 login 메서드를 매개변수 model, session, id의 값, pw의 값을 받아서 실행
2. service 객체의 login 메서드에 id, pw 를 넣어서 실행한 결과를 boolean 타입 변수 success 에 담아줌
3. page 는 기본적으로 index 로 세팅해 줌
4. 만약 success 가 true 면 session 에 "LoginID"라는 이름으로 id 값을 세팅해줌
5. 그리고 page 는 redirect로 /list 요청을 보냄
// 어원은 Re(다시) + direct(요청하다/지시하다)이며, 구체적으로는 웹 브라우저가 웹 서버에 어떤 URL을 요청했을 때, 서버가 리다이렉트를 지시하는 특정 HTTP 응답을 통해 웹 브라우저로 하여금 지정된 다른 URL로 재요청하라고 지시하는 것을 말한다.

사용자의 요청 정보가 바뀌어버리는 리다이렉트와 요청 정보는 그대로 유지한 체 서버 내부의 동작만 바뀌는 포워드는 적절히 사용되어야 한다.
리다이렉트는 클라이언트의 요청에 의해 서버의 DB에 변화가 생기는 작업에 사용된다. 예를 들어 DB의 유저 테이블을 변경하는 회원가입과 같은 경우에는 리다이렉트가 사용되어야 요청을 중복해서 보내는 것을 방지할 수 있다.
포워드는 특정 URL에 대해 외부에 공개되지 말아야 하는 부분을 가리는데 사용하거나 조회를 위해 사용된다. 스프링의 경우 /WEB-INF에 있는 view에 대한 정보들이 외부에 직접 공개되지 말아야 할 때 내부에서 포워딩을 통해 /WEB-INF 경로를 가리키도록 한다. 예를 들어 kotlinworld.com/95 로 요청을 하면 kotlinworld.com/WEB-INF/95를 응답하는 형식이다.

  1. 로그인 실패하면 msg 라는 키에 "아이디 또는 비밀번호를 확인하세요!" 라는 메시지를 담음

  2. 반환값은 page

  3. 경로가 list 로 들어오는 녀석을 처리해줌
    list 메서드는 매개변수 model 과 session으로 실행됨

  4. page 기본값은 index 이며 msg 기본 세팅은 "로그인이 필요한 서비스입니다."

  5. 로그인 여부를 판단하기 위해 if 문 실행

  6. session에 loginID 값이 널이 아니면 page 에 list 를 담고 msg 에 환영합니다를 담음

  7. 그리고 객체화해온 service의 list 메서드의 실행값을 list 라는 키에 세팅함.

  8. msg 에는 msg 값을 세팅

  9. 반환값 page

  1. 경로가 del 로 들어오고 메서드는 get 타입으로 들어오는 녀석을 처리해 줌
  2. 매개변수로 model, id 의 파라메터 값, session 을 갖는 메서드 del 실행
  3. page 기본 값은 index
  4. 만약 session 의 "loginID"가 널이 아니면 page 에 list 경로로 보내는 코드를 넣음
  5. MemberService 를 객체화 해옴
  6. service 의 del 메서드를 id 를 매개변수로 하여 실행
  7. null 일 경우 msg 에는 "로그인이 필요한 서비스입니다." 라고 넣음
  8. 반환값은 page

service

  1. join 메서드 실행 시 msg 의 초기값은 "회원 가입에 실패했습니다."

  2. db 가 필요하기 때무넹 MemberDAO 를 객체화해옴

  3. dao 의 join 메서드를 params 값을 넣어 실행한 반환 값을 row 에 담음

  4. row 가 0보다 크면 msg 에는 회원가입에 성공했습니다를 띄움

  5. 매개변수 id 와 pw 를 받는 login 메서드를 실행하면 MemberDAO 를 객체화 해옴

  6. 반환값은 dao 의 login 메서드를 실행한 결과

DAO

(초기값 세팅)
1. Connection 멤버변수 conn 을 선언해 줌
2. PreparedStatement 멤버변수 ps 도 선언해줌
3. ResultSet 멤버변수 rs 도 선언해 줌

  1. 생성자로 생성
    context를 ctx 에 담아줌
    ctx 로 db 경로를 찾아서 데이터 소스화하여 ds 에 담아줌
    ds 에 커넥션을 실행하여 conn 에 담아줌

  2. close 메서드 실행하면
    rs 가 null 이 아닐 때 rs 를 닫아주고, ps 가 null 이 아닐 때 ps를 닫아주고 conn 이 null 이 아닐 때 conn 을 닫아준다.

  1. param 매개변수를 갖는 join 메서드를 실행하면
    변수 sql 에 insert 문을 실행하고 값은 아직 정해지지 않았기 때문에 ?로 한다.
  2. 커넥션에 prepareStatement 메서드를 사용하여 sql 문을 db 에 전달한다.
  3. ps 에 첫 번째 인자값에 id 라는 키로 들어오는 값을 세팅한다.

  1. id 와 pw 를 매개변수로 하는 login 메서드를 실행하면
  2. 변수 sql 에 sql 실행문을 담음. id를 셀렉트해 올 건데, 이때 id와 pw가 일치해야 함. 물음표는 무엇이 들어올지 아직 알 수 없음.
  3. success 의 기본값은 false 로 설정해줌
  4. 커넥션을 통해 sql 문을 db 에 전달하여 ps 에 담는다.
  5. ps 의 첫 번째 인자값은 id 라는 키로 들어오는 값을 세팅해 주고
  6. 두 번째 인자값은 pw 로 들어오는 값을 세팅해 준다
  7. sql 구문을 실행하여 결과값을 rs 에 담아준다
  8. rs 에 다음 요소가 있는지 없는지 여부를 판별하여 success 에 담는다.
  9. 자원을 반납한다.
  10. 반환값은 success
profile
JAVA 개발자로 가는 길

0개의 댓글

관련 채용 정보