▼ What ? 이번 주에 GDSC - Web 커리큘럼 마지막 주차 시간을 가졌다. 웹 개발의 마무리가 무엇일지 생각해봤을 때 떠오르는 것은 바로 내가 개발한 웹 서비스를 다른 사람들도 이용할 수 있도록 AWS를 이용해 인터넷에 서버를 배포하는 작업일 것이다. 따라서, 서버 배포를 해보는 과정을 끝으로 GDSC - Web 커리큘럼 정리를 마무리해보려고 한다. ▼ 서버 배포 AWS 라이트세일 라이트세일 메인 화면에서 "인스턴스 생성" 을 클릭한다. 를 선택하고 블루프린트는 을 선택하고, 를 선택하면 된다. 고정 IP 생성 / 방화벽 해제 AWS 서버에 접속하려면 고정 IP와 방화벽 해제가 필요하다. 고정 IP 생성 ➜ AWS 라이트세일 메인 화면에서 "네트워킹" 탭으로 이동해 아래처럼 생성해주면 된다. 방..
▼ What ? 7주차엔 게시물/댓글 추천(좋아요) 기능, 답변을 작성했을 때 작성한 답변 위치로 스크롤 되는 기능을 구현해보고 게시물/댓글을 작성할 때 마크다운 문법이 적용되도록 했으며, 마지막으로 구현한 것은 검색 기능 정도였던 것 같다. ▼ 추천 엔티티 변경 - Question, Answer 일단 질문 추천한 사람이면 Question 엔티티에, 답변 추천한 사람이면 Answer 엔티티에 추가해줘야 한다. Question 엔티티 ➜ voter(추천인) 속성 추가 ➜ 추천인은 중복되서는 안되기 때문에 voter 타입을 List가 아닌 Set으로 해야 한다. ... import java.util.Set; import jakarta.persistence.ManyToMany; ... public class ..
▼ What ? '회원가입' 과 '로그인/로그아웃' 까지 복습하고 정리해봤는데, 양이 많아서 글쓴이를 표시하는 기능과 글을 수정하고 삭제하는 기능에 대해선 따로 정리해보려고 한다. ▼ 글쓴이 표시 Question & Answer 엔티티에 글쓴이 속성 추가 Question 엔티티 수정 Question 엔티티에 'author' 속성을 추가하자. ➜ 여러 개의 질문(many)이 한 명의 작성자(one)에게 작성될 수 있으므로 '@ManyToOne' 을 적용해줘야 한다. ... import jakarta.persistence.ManyToOne; import com.gdsc.webboard.user.SiteUser; ... public class Question { ... @ManyToOne private Sit..
▼ What ? 시험이 끝나고 오랜만에 진행한 GDSC 커리큘럼 6주차엔 웹 개발의 꽃이라고도 볼 수 있는 '회원가입'과 '로그인/로그아웃' 기능을 구현해보는 시간이다. (벌써 로그인을 구현해볼 차례라니..) 그리고 이후에 과제로 진행된 부분은 '글쓴이 표시'와 '수정/삭제 기능' 을 구현하는 것이다. 질문과 답변을 저장할 때 작성자 아이디도 함께 저장되도록 하여 글쓴이가 표시될 수 있도록 하고, 작성한 질문과 답변을 수정하거나 삭제할 수 있는 기능을 추가해보려고 한다. ▼ 회원가입 회원 정보 엔티티 질문, 답변을 엔티티를 생성했던 것처럼 회원 정보를 위한 엔티티를 생성해주는데, 회원 정보 엔티티에 필요한 속성(attribute)은 무엇이 있을까? ➜ 최소한 'username(사용자 ID)', 'pass..
▼ What ? 5주차에 배웠던 내용들을 이어서 마지막으로 '스프링 시큐리티' 라는 것에 대해서 정리해보려고 한다. 스프링 시큐리티 환경설정을 위해 수동으로 'SpringFilterChain' 을 빈(Bean)으로 등록하는 과정에서 '@Configuration' 애너테이션을 사용하는데, 수동/자동으로 빈을 등록하는 과정이 잘 기억나지 않았고 빈에 대한 이해도 아직 부족한 것 같아 다시 찾아보고 공부해보는 시간을 가졌다. ▼ 스프링 시큐리티 (Spring Security) 스프링 시큐리티 ? "스프링 시큐리티" 는 스프링 기반 애플리케이션의 권한과 인증을 담당하는 스프링의 하위 프레임워크이다. ➜ 쉽게 말해서 "인증(Authenticate)" 은 로그인을 의미하고, "권한(Authorize)" 은 그렇게 ..
▼ What ? 이번 주차엔 웹사이트의 내비게이션바, 페이징 기능, 게시물의 일련번호와 답변 개수를 표시하도록 구현해보고, 스프링 시큐리티가 무엇이며 어떤 원리로 동작하는지에 대해 알아보는 시간을 가져보았다. ▼ 네비게이션바 (Front-End) 네비게이션바 생성 메인페이지로 돌아갈 수 있는 기능을 추가하는 것이다. ➜ 모든 페이지에서 공통적으로 보여야 하므로 layout.html 템플릿에 추가하자 ! [ .../main/resources/templates/layout.html ] ... WEBBOARD 로그인 " WEBBOARD " 를 클릭하면 메인페이지로 이동 가능 부트스트랩(Bootstrap)은 창의 크기를 줄이면 아래처럼 네비게이션 바에 있는 링크들은 작은 메뉴 버튼 " ≡ "으로 숨긴다. 🔻 하..