시험 기간 직전에 겨우 (미)완성했다. 남은 5전공을 끝낸 후 회원수정하는 화면과 api만 추가하면 끝날 것 같다.
처음에는 과제를 간단하게 생각했지만 왜 프론트와 백 분야가 나뉘어져 있는지 정말 뼈저리게 느낀 과제였다.
JPA는 ‘헤론’에게 배우면서 또 머스테치와 부트스트랩은 이전에 정리한 책과 공식문서를 참고해 만들었고 기간은 1~2주가 걸렸던 것 같다.
이미지의 경우 cort기타에 이메일을 통해 문의 후 단순 과제용일 경우 출처 표기만 명확히 하면 된다는 답변을 받았다.
콜트기타 홈페이지
세션은 특히 많은 시간이 걸린 곳이다. 당장 제출 전 시험기간이 있었기 때문에 최대한 간단한 방법으로 구현했다. Model과 HttpSession을 이용했다.
로그인을 하게 되면
HttpSession session = request.getSession();
session.setAttribute("memberId", memberId);
session.setAttribute("isLogin", true);
이 코드를 통해 현재 로그인한 유저의 Id와 로그인 했는지 bool값을 session객체에 넣게 된다.
이후 세션값이 필요할 때 ex)내 정보 조회 시
@GetMapping("/member/my-info")
public String memberMyInfo(HttpSession session, Model model) {
boolean isLogin;
if(session.getAttribute("isLogin") == null) {
isLogin = false;
}
else {
isLogin =true;
}
if(isLogin) {
Long id = (Long)session.getAttribute("memberId");
Member member = memberService.findByIdAndReturnMember(id);
model.addAttribute("member", member);
return "member-info";
}
else {
return "member-login";
}
}
session으로 부터 불러오고 model에 현재 로그인한 member객체를 주는 식으로 할 수 있다.
코드를 복사하면서 봤는데 굳이 isLogin이 없어도 될 것 같다. 또 memberService로 바로 접근해도 되는 건지 controller를 거쳐야 하는 건 아닌 지…. 도와줘요 헤론@!!!
memberService가 아닌 memberController를 거치도록 수정했다.
이번 과제를 하면서 에이잭스(축구팀에 있는 아약스로 읽었더니 개발쪽에서는 에이잭스로 읽어야한다고,,,) 사용법을 확실히 익혔다. 회원가입창에서 ‘가입하기’버튼을 눌렀을 때 코드이다.
var main = {
init: function () {
var _this = this;
$('#btn-signup').on('click', function () {
_this.signup();
});
},
signup : function () {
var data = { //Json으로 보낼 data
loginId: $('#inputId').val(),
password: $('#inputPw').val(),
email: $('#inputEmail').val()
};
$.ajax({ //url로 POST요청 보내기
type: 'POST',
url: '/member/create',
datatype: 'json',
contentType: 'application/json; charset=utf-8',
data: JSON.stringify(data)
}).done(function(response) {
if(response.isSuccess) {
alert("가입완료되었습니다.");
window.location.href='/';
} else {
alert(response.message);
}
}).fail(function(){
alert("요청이 실패하였습니다.");
});
}
가비아에서 구매한 도메인이 있었기 때문에 ec2와 연결을 해줬다. 하지만!
gourderased.shop(안전하지 않음)을 누르면 접속은 되지만 왜 인증서가 올바르지 않다고 뜬다...아마 Let's encypt부분에서 잘못된 부분이 있는 것 같다.
일단 도메인은 나중에 해결하기로...!!
제대로 되지는 않았지만 무중단 배포를 해놨기에 접속이 가능하다
https://gourderased.shop:8080 을 도메인에 입력하면 들어갈 수 있다.
종강 후 페이징과 소셜 로그인도 넣을 예정이다..!
와 !! 고생하셨어요~! 소셜 로그인이 기대 됩니당!