피카소 경매 사이트는 사용자가 경매 항목을 올리면 관리자가 그 경매 항목에 대해 승인을 한 후 경매가 등록된다. (위 사진에서는 관리자 승인 단계가 생략되어있다.) 승인을 받은 경매 작품은 사용자가 지정한 경매 시작 일자에 맞추어 경매 예정 -> 경매 진행중 과 같이 상태가 바뀐다. 이러한 작업을 관리자가 모두 전담하기엔 너무나도 공수가 컸고 DB 내의 Event Schedular를 이용하기에는 DB 서버의 무게가 무거워질 수 있다고 판단되어 서버 단의 스케쥴링을 이용하여 경매 작품들의 상태값을 변경하기로 결정했다. 스케쥴링의 방식에 대해서는 이후 작성할 스케쥴링 코드에서 자세히 서술할 것이다. 0) 사전 설정 @Slf4j @EnableScheduling // Schedule사용을 위한 Annotatio..
피카소 경매 사이트는 사용자가 등록한 경매 작품의 상태값이 변경됨에 따라 사용자에게 메일을 보내는 서비스를 제공한다. 메일의 종류는 대략 9~10가지인데, 대표적으로는 경매 등록 성공 메일 경매 등록 미승인 메일 경매 작품 낙찰 메일 경매 작품 유찰 메일 내가 입찰한 경매 작품의 상황에 대한 메일 등등이 있다... 종류가 많다 보니 위 사진과 같은 화면처럼 메일을 발송하려면 HTML 템플릿화하여 관리해야 했다. 코드를 보면 알 수 있듯이 종류가 너무 많아 모두 구현하지는 못했다... ㅠ 메일 발송은 스케쥴링과 매우 밀접한 관련이 있는데 스케쥴링에 대해서는 이후에 따로 포스팅 할 예정이다. 아래 Github PR에 자세한 코드가 나와있다. [feat] 메일 발송기능 구현 완료 by donsonioc2010..
피카소 프로젝트 자체가 미술 경매 사이트였기 때문에 파일 업로드는 필수 불가결한 기능이다. 필자의 팀은 서비스에 올라오는 모든 사진을 NCP의 Object Storage에 올려놓고 관리하기로 하였다. 만약 파일이 업로드 될 경우, 자동으로 피카소 팀의 서버와 연결된 Object Storage에 파일이 저장되게 하는 것이다. 코드는 아래 PR에 자세히 나와있다. [feat] 파일업로드 기능 구현 (공통기능) by donsonioc2010 · Pull Request #26 · donsonioc2010/picasso data.sql을 통한 최초 SpringBoot실행시 데이터 기입하는 파일 추가 Server 실행별 포트분리 개발서버 : 80번 포트사용 로컬서버 : 8080번 포트 사용 의존성 추 github...
0) CI/CD 환경 구축 6명의 팀원이 진행하는 프로젝트이다보니, CI는 불가피한 선택이라고 생각했다. 자동 배포 환경 구축에 관심이 많았었는데 마침 팀원 중 한명이 예전에 사놓은 도메인이 있었고 그 도메인을 이용하여 CD까지 구현해보기로 의견이 모아졌다. 다음은 프로젝트의 Action 페이지이다. GitHub - donsonioc2010/picasso: temp name temp name. Contribute to donsonioc2010/picasso development by creating an account on GitHub. github.com 1) CI with Github Action 여러 다른 선택지가 있으나 주어진 시간에 비해 해야 할 작업이 너무 많았다. 레퍼런스가 많고 이미 다른 ..
1) 프로젝트 개요 NCP를 이용하여 간단한 미술품 경매 사이트를 만들었다. 이전 프로젝트(TIFY)에서 사용하던 AWS가 아닌 NCP를 이용했기 때문에 새로운 플랫폼에 대한 적응이 필요했다. Picasso 경매 예정작 NEW more picasso.jong1.com 1-1) 사용 언어 & 프레임워크 FrontEnd Thymeleaf를 이용하여 서버사이드 렌더링을 사용하였기 때문에 컴포넌트 별 작업이 매우 어려웠다. 그런 이유로 Bootstrap을 적절히 활용하였고, JS를 학습할 시간이 많지 않아 ajax를 사용하기 위해서는 jQuery를 사용해야 했다. BackEnd MyBatis를 쓰는 방법도 있었으나, 하나하나 쿼리를 짜고 객체를 매핑하는 방식은 짧은 기간 동안 해야 하는 프로젝트에는 맞지 않다고..