springboot 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

[프로그래머스] 스킬업/주문관리 API 서버 개발

SpringBoot 공부를 하고자 프로그래머스 스킬업에 있는 주문관리 API 서버 개발이라는 연습 과제를 해보았습니다. SpringBoot를 자세히 모르고, SpringBoot를 사용할 때에는 JPA밖에 사용해보지 않아 문제를 푸는 데 있어 어려움을 느꼈습니다. ... 결국 중도 포기를 하긴 하였지만, 좋은 경험이었던 것 같습니다. 제 첫 스킬업 연습 과제였기에 낯설기도 했지만, 에디터 역시 제가 기존에 사용해오던 에디터와 달라 더 낯설게 느껴졌던 것 같습니다. 문제 자체는 어려운 편은 아니었지만, 제가 사용해보았던 JPA가 아닌 JDBC template를 사용하였다는 점, 그리고 직접 DB를 사용하여 CRUD를 하지 않고, Read를 중점적으로 했다는 점에서 문제를 해결하는 데에 있어 어려움을 느꼈습니..

공부/서버 2022.02.13