본문 바로가기

분류 전체보기190

[Dev] 22.12.05. 로그인 사용자 정보 얻기 이번 게시글에서는 게시글 작성에 대한 내용을 종합하여 기록할 것이다. 제목이나 내용은 작성하면 그만이지만, 작성자는 직접 기입하는 것이 아니다. 이에 대한 작업을 잠시 소개하고서 종합적인 내용을 기록하겠다. 작성자 정보 이전의 국비 과정에서 작성자의 정보를 불러오는 방법은 로그인 시 session scope에 저장한 로그인 email의 정보를 가져오는 것이었다. 하지만 이번에는 Spring Security를 사용해서 login processing 했고, 당연하게도 필자가 session scope에 따로 저장한 정보는 존재하지 않는다. 이에 따라 Spring Security에서 로그인 한 사용자의 정보를 가져오는 방법이 필요했는데, 이 방법들을 언급한 블로그들이 있어서 그 내용을 살펴보았다. 이들은 모두 .. 2022. 12. 5.
[Dev] 22.12.05. File Upload (임시, 재개발 예정) 이번에는 게시글 form에 넣을 수 있는 input type file을 받아 저장하는 방법을 간단히 구현만 해두고 넘어가려고 한다. 간단히 구현만 해놓는 이유는 후에 AWS에 올릴 때 저장 방식이 달라질 것으로 생각하고 있기 때문이다. String realPath=request.getServletContext().getRealPath("/upload"); C:\Users\kyuhwan\AppData\Local\Temp\tomcat-docbase.8080.7322970183685590318\upload 우선 국비 과정에서의 프로젝트 중에 내용을 가져왔다. 당시에는 개발 tool로 eclipse를 사용했고, file upload를 위한 WebContent 하위의 경로를 얻기 위해 ServletContext의.. 2022. 12. 5.
[Dev] 22.12.04. 게시글 작성 항목 중 링크에 대하여(2) : 작업 사실 직전 게시글에서 연관 관계에 대한 이런 저런 내용을 다뤘지만 사실 게시글에 작성하는 link 정보는 양방향 관계가 필요 없었다. 게시글은 작성한 link의 정보가 필요하지만, link 정보는 자신이 어떤 게시글에 작성되었는지에 대한 정보가 필요 없다는 말이다. 지난 게시글에 생각보다 시간을 많이 들인 이유는 언젠가 양방향 연관 관계에 대해 알아야 할 필요가 있을 것이라 생각해서 에러도 직접 온몸으로 마주치기 위함이었다. 조금 더 생각해보면 어떤 유저가 좋아요를 눌렀는지 그 최근 정보를 mouse over 시에 보이면 좋겠다는 생각도 했지만, 계획했던 기능 중에서는 아직 양방향 연관 관계를 필요로하지 않는다. 작업 전개 또 습관적으로 하나의 객체로 DTO의 역할과 Entity의 역할을 동시에 수행하도.. 2022. 12. 4.
[Dev] 22.12.04. Content Write (게시글 작성) Form Data 글쓰기는 게시판의 형태를 가진 사이트의 기본적인 기능이라고 할 수 있다. Contents를 작성할 수 있는 form을 넣고, 그에 맞는 data를 server로 보내 DB에 저장하는 과정을 거치게 된다. 이 과정에서 필자의 실수로 그리 이상하지도 않은 어이없는 오류에 부딪혀서 꽤나 많은 시간을 소모했다. 하지만 반대로 새로 고민하게 된 내용도 존재하니, 그에 대한 이야기와 작업 내용을 기록하고자 한다. 우선 글을 쓰는 기능, 즉 contents를 작성하는 것은 기본적으로 form에 작성된 내용을 server로 보낸다는 것에서는 동일하다. 하지만 이전의 회원 가입 form에서 server로 보낼 때와의 차이점은 이번에는 file이 있다는 것이다. private MultipartFile imageFile; .. 2022. 12. 4.
[Dev] 22.12.02. 게시글 작성 항목 중 링크에 대하여(1) : 양방향 연관 관계 내용을 작성하기 앞서... 게시글 작성 항목 중에 링크에 대한 내용을 먼저 다뤄보려고 한다. contentform.html 참고 링크 링크 추가 우선 간단히 언급만 하고 넘어갈 내용부터 작성해본다. Form을 구성하고 있는 input element 의 이름이 같은 경우에는 이들을 또다른 hidden input에 연결해서 넣어 받을 필요가 없다.(민망하지만 필자가 그랬다.) 그런데 이들은 input element의 이름이 같은 경우에는 controller에서 List 로 받는 것이 가능하다. 본격적인 내용 전개에 앞서 이를 언급하는 것은 과거 프로젝트에서 필자가 택했던 방식에 이상함을 느꼈기 때문이다. (물론 당시에도 이상함을 느꼈으나, 해당 내용을 강사님께 질문하지 않았던 것을 후회한다.) 그 방식은 다.. 2022. 12. 2.
[Dev] 22.11.22. Logout 로그아웃 로그아웃 기본적인 로그아웃은 간단하다. 우선 로그아웃 버튼의 thymeleaf href 경로를 /logout 으로 표기한다. SpringSecurityConfig.java @Override protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests(request -> request.antMatchers("/", "/signinform", "/signin", "/duplcheck") .permitAll() .anyRequest().authenticated() ) .formLogin(login -> login.loginPage("/loginform") .loginProcessingUrl("/login").. 2022. 11. 22.