<p style="margin:0px 0px 10px;color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Apple SD Gothic Neo', 'Malgun Gothic', Dotdum;font-size:14px;">기본적으로 controller는 요청이 들어오면 해당 요청에 해당하는 비즈니스 로직(service)을 호출,</p> <p style="margin:0px 0px 10px;color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Apple SD Gothic Neo', 'Malgun Gothic', Dotdum;font-size:14px;">호출된 비즈니스 로직에서 해당 프로세스을 실행하게 되며, 그 중간중간 DB 접근을 dao를통해 하게 된다.</p> <p style="margin:0px 0px 10px;color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Apple SD Gothic Neo', 'Malgun Gothic', Dotdum;font-size:14px;"><br></p> <p style="margin:0px 0px 10px;color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Apple SD Gothic Neo', 'Malgun Gothic', Dotdum;font-size:14px;">라고 이해하고 있습니다만,</p> <p style="margin:0px 0px 10px;color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Apple SD Gothic Neo', 'Malgun Gothic', Dotdum;font-size:14px;">무슨 말인지는 이해 하나, 직접 코딩을 했을 때 이 경계가 모호해져버립니다.</p> <p style="margin:0px 0px 10px;color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Apple SD Gothic Neo', 'Malgun Gothic', Dotdum;font-size:14px;"><br></p> <p style="margin:0px 0px 10px;color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Apple SD Gothic Neo', 'Malgun Gothic', Dotdum;font-size:14px;">예를 들어 컨트롤러에서 로그인 후 로그인을 체크하는 메서드를 호출했을 때,</p> <p style="margin:0px 0px 10px;color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Apple SD Gothic Neo', 'Malgun Gothic', Dotdum;font-size:14px;">현재 프로세스는 아래와 같습니다.</p> <p style="margin:0px 0px 10px;color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Apple SD Gothic Neo', 'Malgun Gothic', Dotdum;font-size:14px;"><br></p> <p style="margin:0px 0px 10px;color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Apple SD Gothic Neo', 'Malgun Gothic', Dotdum;font-size:14px;">AuthController입니다.</p><pre class="line-numbers" style="overflow:auto;font-family:Menlo, Monaco, Consolas, 'Courier New', monospace;font-size:11px;padding:9.5px 9.5px 9.5px 3.8em;margin-top:0px;margin-bottom:10px;line-height:1.42857;color:#333333;background-color:#f5f5f5;border:1px solid rgb(204,204,204);">@RequestMapping(value="/login/check", method=RequestMethod.POST) public String loginCheck(MemberVo memberVo, String token, Model model) throws Exception { securityService.checkToken(token); HashMap<String, Object> hashMap = authService.login(memberVo); MemberVo resultVo = (MemberVo) hashMap.get("memberVo"); Integer loginState = (Integer) hashMap.get("state"); if(loginState != null) { if(loginState == IAuthService.NO_EMAIL_CERTIFY) { // 이메일이 인증되지 않았다면 이메일 인증 메일 변경 및 재전송 model.addAttribute("msg", resultVo.getEmail() + "메일로 메일인증을 받으셔야 로그인 가능합니다.\\n다른 메일주소로 변경하여 인증하시려면 확인을 클릭하시기 바랍니다."); model.addAttribute("redirect", "member/change/email?id=" + resultVo.getId() + "&token=" + securityService.getToken()); model.addAttribute("redirectCancle", ""); return "message/confirmReplace"; } } return "redirect:/"; }<br></pre> <p style="margin:0px 0px 10px;color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Apple SD Gothic Neo', 'Malgun Gothic', Dotdum;font-size:14px;"><br></p> <p style="margin:0px 0px 10px;color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Apple SD Gothic Neo', 'Malgun Gothic', Dotdum;font-size:14px;">AuthService입니다.</p><pre class="line-numbers language-java" style="overflow:auto;font-family:Menlo, Monaco, Consolas, 'Courier New', monospace;font-size:11px;padding:9.5px 9.5px 9.5px 3.8em;margin-top:0px;margin-bottom:10px;line-height:1.42857;color:#333333;background-color:#f5f5f5;border:1px solid rgb(204,204,204);"><code class="language-java" style="font-family:Menlo, Monaco, Consolas, 'Courier New', monospace;font-size:inherit;padding:0px;color:inherit;background-color:transparent;white-space:inherit;"><span class="token keyword" style="color:#0077aa;">public</span> HashMap<span class="token operator" style="color:#a67f59;"><</span>String<span class="token punctuation" style="color:#999999;">,</span> Object<span class="token operator" style="color:#a67f59;">></span> <span class="token function" style="color:#dd4a68;">login<span class="token punctuation" style="color:#999999;">(</span></span>MemberVo memberVo<span class="token punctuation" style="color:#999999;">)</span> <span class="token keyword" style="color:#0077aa;">throws</span> Exception <span class="token punctuation" style="color:#999999;">{</span> MemberVo resultVo <span class="token operator" style="color:#a67f59;">=</span> memberDao<span class="token punctuation" style="color:#999999;">.</span><span class="token function" style="color:#dd4a68;">selectOne<span class="token punctuation" style="color:#999999;">(</span></span>memberVo<span class="token punctuation" style="color:#999999;">)</span><span class="token punctuation" style="color:#999999;">;</span> HashMap<span class="token operator" style="color:#a67f59;"><</span>String<span class="token punctuation" style="color:#999999;">,</span> Object<span class="token operator" style="color:#a67f59;">></span> hashMap <span class="token operator" style="color:#a67f59;">=</span> <span class="token keyword" style="color:#0077aa;">new</span> <span class="token class-name">HashMap</span><span class="token operator" style="color:#a67f59;"><</span>String<span class="token punctuation" style="color:#999999;">,</span> Object<span class="token operator" style="color:#a67f59;">></span><span class="token punctuation" style="color:#999999;">(</span><span class="token punctuation" style="color:#999999;">)</span><span class="token punctuation" style="color:#999999;">;</span> hashMap<span class="token punctuation" style="color:#999999;">.</span><span class="token function" style="color:#dd4a68;">put<span class="token punctuation" style="color:#999999;">(</span></span><span class="token string" style="color:#669900;">"memberVo"</span><span class="token punctuation" style="color:#999999;">,</span> resultVo<span class="token punctuation" style="color:#999999;">)</span><span class="token punctuation" style="color:#999999;">;</span> <span class="token keyword" style="color:#0077aa;">if</span><span class="token punctuation" style="color:#999999;">(</span>resultVo <span class="token operator" style="color:#a67f59;">==</span> null<span class="token punctuation" style="color:#999999;">)</span> <span class="token punctuation" style="color:#999999;">{</span> <span class="token keyword" style="color:#0077aa;">throw</span> <span class="token keyword" style="color:#0077aa;">new</span> <span class="token class-name">Exception</span><span class="token punctuation" style="color:#999999;">(</span><span class="token string" style="color:#669900;">"아이디 혹은 비밀번호가 맞지 않습니다."</span><span class="token punctuation" style="color:#999999;">)</span><span class="token punctuation" style="color:#999999;">;</span> <span class="token punctuation" style="color:#999999;">}</span> <span class="token keyword" style="color:#0077aa;">if</span><span class="token punctuation" style="color:#999999;">(</span><span class="token operator" style="color:#a67f59;">!</span>memberService<span class="token punctuation" style="color:#999999;">.</span><span class="token function" style="color:#dd4a68;">checkHashedPassword<span class="token punctuation" style="color:#999999;">(</span></span>resultVo<span class="token punctuation" style="color:#999999;">.</span><span class="token function" style="color:#dd4a68;">getPassword<span class="token punctuation" style="color:#999999;">(</span></span><span class="token punctuation" style="color:#999999;">)</span><span class="token punctuation" style="color:#999999;">,</span> memberVo<span class="token punctuation" style="color:#999999;">.</span><span class="token function" style="color:#dd4a68;">getPassword<span class="token punctuation" style="color:#999999;">(</span></span><span class="token punctuation" style="color:#999999;">)</span><span class="token punctuation" style="color:#999999;">)</span><span class="token punctuation" style="color:#999999;">)</span> <span class="token punctuation" style="color:#999999;">{</span> <span class="token comment">//아이디 혹은 비밀번호가 맞지 않다는 메시지를 나타내는 이유는 사용자에게 아이디가 존재하는지 알리지 않기 위함. </span> <span class="token keyword" style="color:#0077aa;">throw</span> <span class="token keyword" style="color:#0077aa;">new</span> <span class="token class-name">Exception</span><span class="token punctuation" style="color:#999999;">(</span><span class="token string" style="color:#669900;">"아이디 혹은 비밀번호가 맞지 않습니다."</span><span class="token punctuation" style="color:#999999;">)</span><span class="token punctuation" style="color:#999999;">;</span> <span class="token punctuation" style="color:#999999;">}</span> TimestampUtil timestampUtil <span class="token operator" style="color:#a67f59;">=</span> <span class="token keyword" style="color:#0077aa;">new</span> <span class="token class-name">TimestampUtil</span><span class="token punctuation" style="color:#999999;">(</span><span class="token punctuation" style="color:#999999;">)</span><span class="token punctuation" style="color:#999999;">;</span> timestampUtil<span class="token punctuation" style="color:#999999;">.</span><span class="token function" style="color:#dd4a68;">setFormat<span class="token punctuation" style="color:#999999;">(</span></span><span class="token string" style="color:#669900;">"yyyy년 MM월 dd일 HH시 mm분 ss초"</span><span class="token punctuation" style="color:#999999;">)</span><span class="token punctuation" style="color:#999999;">;</span> <span class="token keyword" style="color:#0077aa;">if</span><span class="token punctuation" style="color:#999999;">(</span>resultVo<span class="token punctuation" style="color:#999999;">.</span><span class="token function" style="color:#dd4a68;">getBlockDate<span class="token punctuation" style="color:#999999;">(</span></span><span class="token punctuation" style="color:#999999;">)</span> <span class="token operator" style="color:#a67f59;">!=</span> null<span class="token punctuation" style="color:#999999;">)</span> <span class="token punctuation" style="color:#999999;">{</span> timestampUtil<span class="token punctuation" style="color:#999999;">.</span><span class="token function" style="color:#dd4a68;">setTimestamp<span class="token punctuation" style="color:#999999;">(</span></span>resultVo<span class="token punctuation" style="color:#999999;">.</span><span class="token function" style="color:#dd4a68;">getBlockDate<span class="token punctuation" style="color:#999999;">(</span></span><span class="token punctuation" style="color:#999999;">)</span><span class="token punctuation" style="color:#999999;">)</span><span class="token punctuation" style="color:#999999;">;</span> String blockDate <span class="token operator" style="color:#a67f59;">=</span> timestampUtil<span class="token punctuation" style="color:#999999;">.</span><span class="token function" style="color:#dd4a68;">getFormatDate<span class="token punctuation" style="color:#999999;">(</span></span><span class="token punctuation" style="color:#999999;">)</span><span class="token punctuation" style="color:#999999;">;</span> <span class="token keyword" style="color:#0077aa;">throw</span> <span class="token keyword" style="color:#0077aa;">new</span> <span class="token class-name">Exception</span><span class="token punctuation" style="color:#999999;">(</span>resultVo<span class="token punctuation" style="color:#999999;">.</span><span class="token function" style="color:#dd4a68;">getId<span class="token punctuation" style="color:#999999;">(</span></span><span class="token punctuation" style="color:#999999;">)</span> <span class="token operator" style="color:#a67f59;">+</span> <span class="token string" style="color:#669900;">" 회원님은 "</span> <span class="token operator" style="color:#a67f59;">+</span> blockDate <span class="token operator" style="color:#a67f59;">+</span> <span class="token string" style="color:#669900;">"에 차단되셨습니다."</span><span class="token punctuation" style="color:#999999;">)</span><span class="token punctuation" style="color:#999999;">;</span> <span class="token punctuation" style="color:#999999;">}</span> <span class="token keyword" style="color:#0077aa;">if</span><span class="token punctuation" style="color:#999999;">(</span>resultVo<span class="token punctuation" style="color:#999999;">.</span><span class="token function" style="color:#dd4a68;">getLeaveDate<span class="token punctuation" style="color:#999999;">(</span></span><span class="token punctuation" style="color:#999999;">)</span> <span class="token operator" style="color:#a67f59;">!=</span> null<span class="token punctuation" style="color:#999999;">)</span> <span class="token punctuation" style="color:#999999;">{</span> timestampUtil<span class="token punctuation" style="color:#999999;">.</span><span class="token function" style="color:#dd4a68;">setTimestamp<span class="token punctuation" style="color:#999999;">(</span></span>resultVo<span class="token punctuation" style="color:#999999;">.</span><span class="token function" style="color:#dd4a68;">getLeaveDate<span class="token punctuation" style="color:#999999;">(</span></span><span class="token punctuation" style="color:#999999;">)</span><span class="token punctuation" style="color:#999999;">)</span><span class="token punctuation" style="color:#999999;">;</span> String leaveDate <span class="token operator" style="color:#a67f59;">=</span> timestampUtil<span class="token punctuation" style="color:#999999;">.</span><span class="token function" style="color:#dd4a68;">getFormatDate<span class="token punctuation" style="color:#999999;">(</span></span><span class="token punctuation" style="color:#999999;">)</span><span class="token punctuation" style="color:#999999;">;</span> <span class="token keyword" style="color:#0077aa;">throw</span> <span class="token keyword" style="color:#0077aa;">new</span> <span class="token class-name">Exception</span><span class="token punctuation" style="color:#999999;">(</span>resultVo<span class="token punctuation" style="color:#999999;">.</span><span class="token function" style="color:#dd4a68;">getId<span class="token punctuation" style="color:#999999;">(</span></span><span class="token punctuation" style="color:#999999;">)</span> <span class="token operator" style="color:#a67f59;">+</span> <span class="token string" style="color:#669900;">" 회원님은 "</span> <span class="token operator" style="color:#a67f59;">+</span> leaveDate <span class="token operator" style="color:#a67f59;">+</span> <span class="token string" style="color:#669900;">"에 회원탈퇴를 하셨습니다."</span><span class="token punctuation" style="color:#999999;">)</span><span class="token punctuation" style="color:#999999;">;</span> <span class="token punctuation" style="color:#999999;">}</span> <span class="token keyword" style="color:#0077aa;">if</span><span class="token punctuation" style="color:#999999;">(</span>resultVo<span class="token punctuation" style="color:#999999;">.</span><span class="token function" style="color:#dd4a68;">getEmailCertifyDate<span class="token punctuation" style="color:#999999;">(</span></span><span class="token punctuation" style="color:#999999;">)</span> <span class="token operator" style="color:#a67f59;">==</span> null<span class="token punctuation" style="color:#999999;">)</span> <span class="token punctuation" style="color:#999999;">{</span> System<span class="token punctuation" style="color:#999999;">.</span>err<span class="token punctuation" style="color:#999999;">.</span><span class="token function" style="color:#dd4a68;">println<span class="token punctuation" style="color:#999999;">(</span></span><span class="token string" style="color:#669900;">"warning: 회원 로그인 시 이메일 인증이 없으면 출력, 회원 이메일을 다시 적을 수 있는 페이지 제작해야 함."</span><span class="token punctuation" style="color:#999999;">)</span><span class="token punctuation" style="color:#999999;">;</span> hashMap<span class="token punctuation" style="color:#999999;">.</span><span class="token function" style="color:#dd4a68;">put<span class="token punctuation" style="color:#999999;">(</span></span><span class="token string" style="color:#669900;">"state"</span><span class="token punctuation" style="color:#999999;">,</span> IAuthService<span class="token punctuation" style="color:#999999;">.</span>NO_EMAIL_CERTIFY<span class="token punctuation" style="color:#999999;">)</span><span class="token punctuation" style="color:#999999;">;</span> <span class="token keyword" style="color:#0077aa;">return</span> hashMap<span class="token punctuation" style="color:#999999;">;</span> <span class="token punctuation" style="color:#999999;">}</span> System<span class="token punctuation" style="color:#999999;">.</span>err<span class="token punctuation" style="color:#999999;">.</span><span class="token function" style="color:#dd4a68;">println<span class="token punctuation" style="color:#999999;">(</span></span><span class="token string" style="color:#669900;">"warning: 비밀번호 5회 이상 틀릴 경우 비밀번호 찾기 필요"</span><span class="token punctuation" style="color:#999999;">)</span><span class="token punctuation" style="color:#999999;">;</span> timestampUtil <span class="token operator" style="color:#a67f59;">=</span> <span class="token keyword" style="color:#0077aa;">new</span> <span class="token class-name">TimestampUtil</span><span class="token punctuation" style="color:#999999;">(</span><span class="token punctuation" style="color:#999999;">)</span><span class="token punctuation" style="color:#999999;">;</span> Timestamp today <span class="token operator" style="color:#a67f59;">=</span> timestampUtil<span class="token punctuation" style="color:#999999;">.</span><span class="token function" style="color:#dd4a68;">getTimestamp<span class="token punctuation" style="color:#999999;">(</span></span><span class="token punctuation" style="color:#999999;">)</span><span class="token punctuation" style="color:#999999;">;</span> memberVo<span class="token punctuation" style="color:#999999;">.</span><span class="token function" style="color:#dd4a68;">setLoginDate<span class="token punctuation" style="color:#999999;">(</span></span>today<span class="token punctuation" style="color:#999999;">)</span><span class="token punctuation" style="color:#999999;">;</span> memberDao<span class="token punctuation" style="color:#999999;">.</span><span class="token function" style="color:#dd4a68;">update<span class="token punctuation" style="color:#999999;">(</span></span>memberVo<span class="token punctuation" style="color:#999999;">)</span><span class="token punctuation" style="color:#999999;">;</span> <span class="token function" style="color:#dd4a68;">setAuthMember<span class="token punctuation" style="color:#999999;">(</span></span>memberVo<span class="token punctuation" style="color:#999999;">)</span><span class="token punctuation" style="color:#999999;">;</span> <span class="token comment">//세션에 memberVo 추가.(로그인 </span> <span class="token keyword" style="color:#0077aa;">return</span> hashMap<span class="token punctuation" style="color:#999999;">;</span><span class="token punctuation" style="color:#999999;">}</span><span class="line-numbers-rows" style="width:3em;letter-spacing:-1px;border-right:1px solid rgb(153,153,153);"><span style="display:block;"></span><span style="display:block;"></span><span style="display:block;"></span><span style="display:block;"></span><span style="display:block;"></span><span style="display:block;"></span><span style="display:block;"></span><span style="display:block;"></span><span style="display:block;"></span><span style="display:block;"></span><span style="display:block;"></span><span style="display:block;"></span><span style="display:block;"></span><span style="display:block;"></span><span style="display:block;"></span><span style="display:block;"></span><span style="display:block;"></span><span style="display:block;"></span><span style="display:block;"></span><span style="display:block;"></span><span style="display:block;"></span><span style="display:block;"></span><span style="display:block;"></span><span style="display:block;"></span><span style="display:block;"></span><span style="display:block;"></span><span style="display:block;"></span><span style="display:block;"></span><span style="display:block;"></span><span style="display:block;"></span><span style="display:block;"></span><span style="display:block;"></span><span style="display:block;"></span><span style="display:block;"></span><span style="display:block;"></span><span style="display:block;"></span><span style="display:block;"></span><span style="display:block;"></span><span style="display:block;"></span><span style="display:block;"></span><span style="display:block;"></span><span style="display:block;"></span><span style="display:block;"></span><span style="display:block;"></span><span style="display:block;"></span><span style="display:block;"></span><span style="display:block;"></span><span style="display:block;"></span><span style="display:block;"></span><span style="display:block;"></span><span style="display:block;"></span></span></code></pre> <p style="margin:0px 0px 10px;color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Apple SD Gothic Neo', 'Malgun Gothic', Dotdum;font-size:14px;"><br></p> <p style="margin:0px 0px 10px;color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Apple SD Gothic Neo', 'Malgun Gothic', Dotdum;font-size:14px;">현재 경계를 나눌 수가 없어서 제 마음대로 작성해놨습니다만,</p> <p style="margin:0px 0px 10px;color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Apple SD Gothic Neo', 'Malgun Gothic', Dotdum;font-size:14px;">어떤 부분이 어디로 가야할지를 알려주시면 정말 많은 도움이 될 것 같습니다.</p> <p style="margin:0px 0px 10px;color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Apple SD Gothic Neo', 'Malgun Gothic', Dotdum;font-size:14px;"><br></p> <p style="margin:0px 0px 10px;color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Apple SD Gothic Neo', 'Malgun Gothic', Dotdum;font-size:14px;">선배님들의 많은 도움 부탁드립니다!</p>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.