프로젝트/글로런 (5) 썸네일형 리스트형 [글로런] 지연로딩 이용하기 프로젝트 진행하며 발생했던 이슈를 정리하려다보니, 프로젝트 자체의 이슈보다는 스프링이나 JPA 등 사용한 기술과 직접적으로 연관된 이슈가 많네요. 따라서 문제 상황만 확인하고, 자세한 내용은 별도의 글로 정리하도록 하겠습니다. 우선 문제 상황은 코스에 대한 소개 column 입니다. 지금 코스 테이블의 설계는 위와 같습니다. 코스에 대한 소개를 별도의 테이블로 분리해둔 상황이죠. 주석으로 쓰여있듯이, 자주 조회되는 값이 아니고 조회 시 부담되는 값이기 때문입니다. 예를 들어 코스의 목록을 보여줄 때는 제목이나 작성자는 보여지지만, 그 소개는 보여지지 않습니다. 만약 MyBatis를 이용한다면 조회할 column에서 introduction을 제외하는 것으로 충분할 수도 있겠지만, JPA를 이용하여 Cour.. [글로런] 배포 (3) - AWS EC2 배포하기 이제 마지막으로 AWS EC2에 서버를 올려서 배포하도록 하겠습니다. 서비스 링크 : 글로런 JAR를 서버에 올리는 수동 배포 방식을 이용했습니다. 1. EC2 인스턴스 생성 먼저 서버를 올릴 EC2 인스턴스를 생성합니다. AWS에서 EC2를 검색한 후, '인스턴스 시작' 버튼을 누릅니다. 그럼 인스턴스 생성을 위한 설정을 하는 페이지가 나오고, 옵션을 선택해주면 됩니다. 저는 다음과 같이 진행하였습니다. OS - Ubuntu 18.04LTS t2.micro (프리 티어) 키 페어 생성 (RSA, .ppk) 인스턴스에 연결하기 위한 access token과 비슷한 역할 SSH 연결 시 MobaXterm을 이용할 것이므로, .ppk 형식으로 생성 보안 그룹 - SSH, HTTPS, HTTP 위치 무관 트래.. [글로런] 배포(2) - 이미지 AWS S3 에 저장하기 DB를 로컬에서 AWS RDS로 전환한 것에 이어, 강의나 코스 커버에 첨부되는 이미지를 로컬이 아니라 AWS S3에서 관리하도록 전환하겠습니다. 1. S3 버킷 생성하기 AWS에서 S3를 검색하면 위와 같은 화면이 나오고, '버킷 만들기' 버튼을 클릭합니다. 버킷 생성 옵션을 입력해주고 생성하면 됩니다. 이름 등을 설정해주고, 기본 옵션에서 크게 변경할 것은 없습니다. 퍼블릭 액세스를 허용하면 개발할 때는 조금 편할 수 있지만, 실제로 모든 퍼블릭 액세스를 열어둘 경우는 없으므로, 이번 프로젝트에서도 이후에 '버킷 정책'을 통해 접근을 제어하는 것으로 하겠습니다. 2. IAM 사용자 생성하기 AWS에서 자격을 증명할 때는 AWS에서 생성한 계정을 직접 이용하기 보다는 IAM을 이용하는 것이 바람직하다고.. [글로런] 배포(1) - AWS RDS로 전환하기 이번엔 배포를 위해 먼저 DB를 로컬DB에서 AWS RDS를 통해 생성한 DB로 전환하겠습니다. 간단한 프로젝트이므로 EC2 내에서 DB를 사용해도 되겠지만, DB를 별도로 관리하는 것이 일반적이므로 나중을 위해서라도 일반적인 사례를 따르겠습니다. 마찬가지의 이유로 이미지 저장소 또한 S3 저장소로 전환할 예정입니다. 1. RDS MySQL 생성하기 저는 프리티어를 사용중이므로, 프리티어 인스턴스 조건에 맞춰 생성하도록하겠습니다. AWS는 프리티어의 경우 월별 750 시간 무료로 사용가능하므로 하나의 인스턴스만 이용하면 무료로 사용가능합니다. (※참고 - 프리티어 요금 정리 글) 먼저 AWS에 접속하고 가입한 후, 검색창에 'RDS'를 검색하고 이동하면 다음과 같은 화면이 나옵니다. '데이터베이스 생성'.. [글로런] 프로젝트 개요 2월부터 공부 겸 만들어보고 싶은 서비스가 있어 개발해왔는데, 완성하기 급급해서 진행한 내용을 정리하지 못했습니다. 현재 UI/UX 수정과 배포 정도만 남았지만, 지금이라도 프로젝트를 되돌아보고 있었던 이슈들을 정리해두려고 합니다. 1. 프로젝트 개요 프로젝트 명: 글로런 개요: 텍스트와 이미지로 된 강의를 수강하거나 등록할 수 있는 웹 플랫폼 개발 인원: 개인 프로젝트 개발 기간: 23/02 ~ 23/03 깃허브: https://github.com/LimYooyeol/glolearn 링크: 글로런 (PC 환경에서 정상적으로 이용할 수 있습니다) 2. 개발 환경 백엔드 Java 17, Spring Boot 2.7.8 JPA MySQL 프론트엔드 HTML, CSS, JavaScript Thymeleaf B.. 이전 1 다음