본문 바로가기

프로젝트 - Kupica13

[project-kupica] spring security 도입, use case 작성 현황 및 use case 생각할 부분 현황 및 use case 익명사용자 위주의 시스템은 구성이 되었습니다. 따로 허가와 인증 없이 관리자 페이지를 만드는 것은 위험하다 생각하여 관리자 페이지를 만드는 것이 미루다 보니 악의적인 공격 행위에 대해 빠르게 대처하기 힘들다는 점을 인식하게 되었습니다. 현재 게시글 관련 서비스가 잘 동작하고 있고 API 문서도 많이 만들어져 지금이 spring security를 적용해 보안적인 부분을 보완하자는 결론에 이르렀습니다. 그래서 가장 먼저 시도한 것이 회원, 비회원, 관리자의 사용자 권한이 나뉨으로 기존 게시글 서비스에 어떠한 변화가 생길 것인가를 use case로 표현하였습니다. 생각할 부분 보안이라 함은 web, 데이터 종속성 관련 라이브러리 만큼이나 핵심적인 .. 2023. 8. 13.
[kupica v1.1.0] 정규화와 post 테이블 분리 v1.0.3 ERD 정규화 post 테이블 분리 (post, image) v1.0.3 ERD 정규화 현재 Kupica 서비스는 게시글 당 하나의 사진만 등록할 수 있습니다. 따라서 후보키로는 post_id, source, cached_image_url, download_key가 있습니다. 이 중에서 post의 유일한 식별을 의도한 속성인 post_id를 기본키로 채택하였습니다. 제 1 정규화를 따졌을 때 속성명이 중복되지도 않고 모든 튜플들의 속성값에는 atomic한 단일값들이 들어가게 되어있습니다. 제 1 정규화에는 문제가 없어 2 정규화로 넘어가겠습니다. 제 2 정규화를 따졌을 때 후보키가 non prime atrributes인 pasword, caption, earsed_flag, created_d.. 2023. 7. 18.
[kupica v1.0.3] ERD (수정) 수정 caption -> nullable eraseFlag -> erasedFlag created_at -> created_date_time updated_at -> updated_date_time ERD 앞으로 일정 앞으로 추가될 회원, 댓글, 추천 등의 기능에 따라 테이블이 확장될 전망입니다. JPA에 대한 더 깊은 공부가 필요하다 느낍니다. tool : drawio 긴 글 읽어주셔서 감사합니다. 부족한 점이 있다면 부디 알려주시면 감사하겠습니다. 2023. 7. 11.
[kupica v1.0.3] AWS 아키텍처 AWS 아키텍처 릴리즈 과정 v1.0.0 ~ 1.0.2를 거치고 정식 출시에 성공하였습니다. 인프라로는 AWS를 사용 중입니다. 지금까지 AWS 아키텍처를 도표로 나타내었습니다. 사용된 아이콘들은 AWS 공식 사이트를 통해 얻었습니다. https://aws.amazon.com/ko/architecture/icons/ AWS 아키텍처 아이콘 아키텍처 다이어그램은 설계, 배포, 토폴로지에 관해 커뮤니케이션할 수 있는 유용한 방법입니다. 이 페이지에서 다이어그램을 구축하는 데 도움이 되는 AWS 제품 아이콘, 리소스 및 기타 도구가 aws.amazon.com 읽어주셔서 감사합니다. 부족한 점이 있다면 부디 알려주시면 감사하겠습니다. 2023. 7. 10.
[Kupica] 2023.06.01 일자 현황 현황 생각할 부분 앞으로 일정 현황 많은 부분에서 준비가 끝나가고 있습니다. 서비스 자체는 정상적으로 동작하나 디자인적으로 부족하고 예상치 못한 잔버그도 존재합니다. 사진마다 가로 세로의 비율이 다르니 그에 따른 템플릿을 따로 생성하려 합니다. ex) 그런데 사진 중 일부는 다음과 같이 가로가 더 긴데도 이러한 템플릿을 가집니다. 이미지의 가로와 세로가 더 긴 차이를 클라이언트 쪽 코드에서 판단을 하고 해당되는 요소를 만들게 구현하였습니다. 이러한 현상이 새로고침을 해서 새로 사진을 얻어올때마다 결과가 달라집니다. 이 부분에서 아직 버그가 잡히지 않습니다. 그리고 또 다른 문제로는 현재 aws 프리티어 모델들을 통해서 서비스를 운영하는데 질 좋은 사진을 다루자는 목표에 사진의 질을 지키려하니 사진 한 장.. 2023. 6. 1.
[kupica] 23.05.22 일자 현황 현황 생각할 부분 앞으로 일정 현황 전체적으로 서비스 준비를 마쳐가고 있습니다. 도메인도 하나 구매하여 aws의 리눅스 서버와 연결하였습니다. 하지만 생각보다 잔버그도 많고 디테일하게 개발해야하는 부분도 많이 남아있습니다. 현재까지 CRUD 중점적인 굵직한 로직은 다 구현되었고 product 환경에서도 문제 없이 동작을 합니다. 생각할 부분 서비스를 개발하면서 배포를 공부하니 생각보다 복잡한 부분이 많았습니다. springboot에선 여러 application 파일을 둬서 각 환경에 맞게 환경을 구성할 수 있습니다. 아직 배포에 대해 깊이있게 공부는 못하였지만 완전 자동화 방식으로 돌아가게 한다는 글을 읽은적이 있습니다. 그런 부분을 고려하며 github에 소스를 올리니 github에는 어떤 환경을 기준.. 2023. 5. 22.
보안에 민감한 문서 (application.yml) 윈도우환경에서 리눅스(ubuntu) 서버로 전송하기 (pscp 사용) 발단 정리 의견 발단 최근 서비스를 리눅스 서버에 (aws ec2) 배포를 하려하는데 실수로 aws 키 정보를 같이 github에 올려버렸습니다. 오래지나지 않아 aws쪽으로부터 key 유출에 대한 피드백 메일이 왔습니다. 정확히는 aws key 정보가 있는 application.yml 파일을 github에 push해버려서인데 그래서 이 부분을 개선하기 위해 방법을 모색하여야했습니다. 정리 환경 OS : windows 10 Home 22H2 PowerShell 버전 : 5.1.19041.2673 Linux Ubuntu (aws ec2) : 22.04 제가 채택한 방법으로는 application.yml 같은 보안적인 요소가 중요한 설정파일들을 리눅스 서버로 직접적으로 통신해 전달하는 것 입니다. 이 중에도.. 2023. 5. 19.
테스트 코드 네이밍 전략을 공부하며 생각한 것 발단 정리 의견 발단 Project Kupica를 개발하며 간단한 기능에 대한 구현이 끝나고 배포 직전의 상황에 왔습니다. 테스트 코드에 대한 부분이 허술하기도 하고 네이밍 전략 등에 너무 무관심 했던 것 같아 공부를 하였습니다. 정리 메서드명_기대결과_테스트상태 메서드명과 기대 결과, 상태를 테스트명으로 나타냅니다. 단점: 메서드명이 바뀔 때마다 매번 직접 바꿔야합니다. 예시 isMan_False_GenderEqualsWoman test[테스트기능] test를 접두어로 테스트할 기능이 뒤에 추가됩니다. 예시 testIsNotManIfGenderEqualsWoman 테스트할 기능 test 접두어를 생략하여 기능만을 직관적으로 나타냅니다. 예시 IsNotManIfGenderEqualsWoman When_테.. 2023. 5. 3.