Todo 리스트 6

[괴발개발] TODO 웹 개발 노트 - 도커(Docker) 배포

먼저 docker를 사용해서 배포를 했습니다. ssh 역시 적용하고자하였으나 잘 되지않아 일단 localhost에서만 하도록 하였습니다. 기존에는 테스트 단계였기에 인-메모리 DB인 H2 데이터베이스를 사용하였습니다. 현재는 mysql 8.0 데이터베이스를 적용하였습니다. 먼저 DB를 docker에 저장하면서, 어플리케이션을 같이 실행(배포)하기 위해 docker-compose.yml를 사용해서 배포를 했습니다. application.yml에 있는 정보 일부를 docker-compose.yml로 넘깁니다. 그리고 ./gradlew build를 사용해서 빌드를 하고 jar를 생성하여 도커에 배포합니다. version: "3" services: database: image: mysql container_na..

Spring/괴발개발 2022.02.21

[괴발개발] TODO 웹 개발 노트 - 예외처리 및 완료

0. 권한 없이 admin.html 접속 ✅ (로그인 폼으로 이동) 1. 회원가입 값 하나도 안 넣고 해보기 ✅ (빈칸임을 알려줌) 2. 회원가입 값 이메일만 넣고 해보기 ✅ (빈칸임을 알려줌) 3. 회원가입 값 비밀번호만 넣고 해보기 ✅ (빈칸임을 알려줌) 4. 로그인 그냥 해보기 (아무거나) 🚫 (error 라고만 알려줌) -> ✅(html 예외처리) 5. 회원가입 제대로 해보기 ✅ (로그인 폼으로 정상 이동) 6. 로그인 제대로 하기 ✅ 7. 일반 계정으로 admin.html으로 접속하기 ✅ (접근 불가 페이지임을 알려줌) 8. 글 작성 값 하나도 안 넣고 해보기 ✅ (빈칸임을 알려줌) 9. 글 작성 값 제목만 넣고 해보기 ✅ (빈칸임을 알려줌) 10. 글 작성 값 내용만 넣고 해보기 ✅ (빈칸임을..

Spring/괴발개발 2022.02.20

[괴발개발] TODO 웹 개발 노트 - 권한 부여

기존에 존재했던 코드를 거의 다 갈아엎었습니다. 아무래도 RESTful API를 본인 어플리케이션에서 사용하면서 권한을 부여하기에는 조금 무리가 있는 것 같았기에 갈아엎었습니다. (JWT가 문제였는 데, JWT를 사용하여서 해더를 통해 권한을 부여하여야하는 데, 이를 관리하기 위해서는 쿠키에 값을 저장을 해야합니다. 그럼 결국에는 코드 갈아엎는 것은 동일하였기에 코드를 그냥 갈아엎고, RESTful를 포기하였습니다.) @EnableWebSecurity @AllArgsConstructor @Configuration public class SecurityConfig extends WebSecurityConfigurerAdapter { private MemberService memberService; @Bea..

Spring/괴발개발 2022.02.19

[괴발개발] TODO 웹 개발 노트 - 회원가입과 비밀번호 암호화

원래는 그냥 평문으로 저장을 하고자하였지만, 최소한의 암호화는 해야한다고 생각이 들어 암호화를 하도록 하였습니다. 일단, 먼저 기존 엔티티 중 회원(Member) 엔티티 코드를 조금 수정하였습니다. UserDetails 이라는 인터페이스를 구현을 합니다. 일종의 권한 및 핵심 사용자 정보를 편하게 저장시켜주는 인터페이스이기에 사용합니다. 자세한 내용은 이 글을 참조해주세요. (잘 정리되어 있어 도움이 많이된 글입니다.) @ElementCollection(fetch = FetchType.EAGER) @Builder.Default private List roles = new ArrayList(); @Override public Collection

Spring/괴발개발 2022.02.18

[괴발개발] TODO 웹 개발 노트 - 엔티티 설계

TODO 웹 개발에는 기본적으로 갖추어야하는 조건에는 회원가입과 글 작성이 있습니다. 회원가입은 기본적으로 회원 엔티티가 필요할 것이고, TODO 게시글도 따로 저장을 해야하기에 엔티티가 필요합니다. 그리고 TODO 게시글의 수정 및 삭제는 작성자만이 할 수 있어야고, 동시에 회원이 총 몇개의 글을 작성했는 지 역시 알게 하고 싶었기에 양방향 연관관계로 매핑하였습니다. 회원과 TODO 게시글의 관계는 일대다이고, TODO 게시글과 회원의 관계는 다대일입니다. Member.java @Getter @Setter @NoArgsConstructor @AllArgsConstructor @Builder @Entity public class Member { @Id @GeneratedValue(strategy = Ge..

Spring/괴발개발 2022.02.17

[괴발개발] TODO 웹 개발 노트 - 준비과정

괴발개발 첫 번째 토이 프로젝트는 TODO 리스트 기능이 있는 간단한 웹 개발입니다. 기본적으로 갖추어야하는 기능들은 다음의 7가지가 있습니다. 회원가입과 로그인 기능 글 작성 기능 글 수정 및 삭제 기능 로그아웃 기능 글 체크 기능 회원 삭제 기능 글 조회 기능 그리고 시간이 여유롭다면 개발할 기능들은 다음의 3가지가 있습니다. 글 하트 기능 OAUTH2를 사용한 로그인 프로필 사진 기능 기본 기능 7가지, 추후 개발 기능 3가지 합하여 총 10가지의 기능을 20일안에 모두 끝맞치고 Docker에 무사히 배포하는 것까지가 목표입니다. 프론트는 SpringBoot에서 지원해주는 템플릿엔진 사용할 것입니다. (React 사용을 할 까도 생각을 하였으나, React까지 적용한다면 시간이 오래걸릴 것 같기 때..

Spring/괴발개발 2022.02.16