기본 콘텐츠로 건너뛰기

Dolphin 3

100자 이내의 짧은 글을 쓸 수 있는 게시판 제공.

Dolphin Project에서 가장 메인 서비스는 예적금 시뮬레이터이므로, 다른 기능 구현은 차후로 미뤄뒀지만, 사용자와 소통할 수 있는 최소한의 기능은 제공하는게 맞다는 생각이 들어 아주 단순한 게시판 기능을 제공합니다.

사용자가 글을 쓰려면 로그인을 먼저 해야합니다. 글을 등록 후 삭제할 때 글 작성자를 식별할 수 있어야 하기 때문입니다.
게시판은 Dolphin Frontend Main 페이지에 자리잡았습니다. 사용자가 가장 먼저 만나게 되는 웹페이지이므로 적당하다고 생각합니다.

다음은 로그인을 하기 전 사용자가 볼 수 있는 메인 페이지입니다.
글 상단에는 작성일(MMM-dd-yyyy)과 작성자 고유번호(#numbers)가 노출됩니다.
Dolphin 은 네이버 로그인을 사용하기 때문에, 사용자를 식별할 수 있는 정보는 저 고유번호가 됩니다.

하단에는 글 내용이 자리잡습니다. 스크린샷에서는 Hello, world!! 라는 문구가 보이네요.
글은 최대 100자까지 허용합니다.

버튼 두개(Newer, Older) 는 페이징 버튼인데, Newer는 최근페이지로 이동을 하며, Older는 지나간 글을 보는 페이징버튼입니다.
기본 페이지 사이즈는 20개입니다.

오른쪽으로 보이는 글 작성 폼은 현재 로그인 하기 전이므로 textarea 는 disabled 처리되어 있고 Login버튼이 자리잡고 있습니다.

다음은 사용자가 로그인 한 뒤의 메인페이지입니다.

변경된 부분은 사용자 고유번호 뒤에 Remove 버튼이 나타났습니다. 해당 글 작성자가 로그인한 사용자일 경우에만 보이게 됩니다.

오른쪽 글 작성 폼도 이제 활성화 되었습니다.
아주 단순한 Textarea 창과 Submit 버튼이 자리잡고 있습니다.

다음은 작성자가 아닌 다른 사용자가 로그인한 경우 입니다.

사용자 고유번호(#54097272) 옆에 Remove 버튼이 사라진것이 확인됩니다.
Remove 버튼이 사라졌다고 해도, 주소창에 /comment/remove/글번호 를 입력하면 서버가 응답은 하겠지만, 세션 사용자가 글 작성자와 같은지 서버에서 다시 비교하기 때문에 사용자가 글이 임의로 삭제되는 문제는 없습니다.

소스코드는 Github를 확인해주세요.

이 블로그의 인기 게시물

Dolphin 2

별도의 회원가입 없이 소셜 로그인 기능 제공으로 간편한 로그인 가능. Dolphin 프론트엔드는 회원가입 절차가 따로 없고, 간단하게 소셜 로그인 기능을 제공함으로써 회원가입, 인증절차를 생략했습니다. 우선, 간단하게 국내에서 잘 알려진 네이버의 API를 사용합니다. 네이버 개발자센터 웹사이트 에서 네이버 아이디로 로그인 기능을 살펴봅니다. 개발 문서를 자세히 살펴보고 API 신청을 합니다. 애플리케이션의 이름을 정하고 필요한 정보를 필수/선택에 체크합니다. 밑으로 내려보면 로그인 API 서비스 환경 부분에서 환경 추가 셀렉트박스에서 PC 웹을 선택하면 다음과 같은 입력폼이 나타납니다. 서비스 URL은 내 웹애플리케이션의 URL이 될 예정입니다. 지금은 개발상태이므로 localhost를 입력했습니다. Callback URL은 네이버 OAuth 인증 url로 호출하면, 인증절차 후 네이버에서 리다이렉트해줄 url을 뜻합니다. 저는 /naver/login 으로 했습니다. 등록이 완료되면 client-id와 client-secret 값을 제공해줍니다. 이 값을 이용해서 인증처리를 할 수 있습니다. spring.io 웹사이트의 튜토리얼 문서를 보면 Facebook 소셜 로그인 기능에 대한 설명이 자세하게 나와있습니다. 이 부분을 참고합니다. Spring Boot and OAuth2 pom.xml 파일에 의존성을 추가하고 Application 클래스에 @EnableOAuth2Sso 애너테이션을 선언합니다. 튜토리얼대로 application.yaml 파일(application.properties)에 설정 정보를 입력합니다. clientId, clientSecret 값은 네이버 개발자센터에서 받은 대로 입력합니다. accessTokenUri는 네이버의 경우 https://nid.naver.com/oauth2.0/token 입니다. userAuthorizationUri는 네이버의 경우 https://ni...

냉장고 가계부 프로젝트 35

Spring security 프레임워크에서 form login 방식으로 인증할 경우 Remember-Me 서비스를 제공할 수 있다. Remember-Me 서비스를 이용하면 쿠키에 인증토큰을 저장해두고 일정기간동안(default: 2주) 쿠키에 토큰이 있다면 인증처리를 해준다. 기본적으로 별도의 설정이 없다면 세션은 30분 만료시간으로 정해져있다.(WAS 마다 틀리다.) 세션 시간이 만료되면 세션에 저장된 정보가 날라가므로 다시 로그인을 해야한다. Remeber-Me 기능을 이용하면, form login에서 인증을 성공적으로 진행하는 경우 임의의 인증토큰을 생성해서 쿠키에 저장해두고 쿠키가 만료되기 전까지 쿠키값을 확인해서 인증을 진행한다. 별도의 설정을 하지 않으면 in-memory 기반의 쿠키저장소를 이용해서 쿠키 토큰인증을 하며, JDBC같은 저장소를 별도로 사용할 수도 있다. WebSecurityConfig 클래스에 다음과 같이 간단한 설정만으로 remember-me 기능을 추가할 수 있다. @Configuration @EnableWebSecurity @RequiredArgsConstructor public class WebSecurityConfig extends WebSecurityConfigurerAdapter { private final MemberUserDetailsService userDetailsService; @Override protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .antMatchers("/", "/signup").permitAll() .requestMatchers(PathRequest.toStaticResources().atCommonLocations()...