Project11 AWS 프로젝트 배포과정 Intro : 이번에 프로젝트를 AWS에서 EC2로 배포를 하였는데, 블로그와 GPT 참조를 해서 배포만 해보았지 정리를 하여서 나중에 배포를 할일이 다시 생길때를 대비해서 다시 정리하기로 했습니다. ✅ 사용한 AWS 서비스 * EC2 : 애플리케이션 서버 운영 (Tomcat 기반) * RDS : 데이터베이스 관리 (MySQL/MongoDB) * S3 : 정적 파일 저장 (이미지 동영상) * 그외 : CloudFlare : HTTPS 적용 및 DNS 관리 ✅ 프로젝트 배포 단계1. AWS 계정 생성 후 IAM 사용자 및 권한 설정https://ap-northeast-2.signin.aws.amazon.com/oauth?client_id=arn%3Aaws%3Asignin%3A%3A%3Aconsole%2F.. 2025. 1. 31. 깃허브 액션에 대해서 * GitHub Acitons : GitHub 저장소에서 CI/CD(Continuous Integration / Continuous Deployment)를 자동화할 수 있는 도구.즉 코드 변경이 있을 때 빌드, 테스트, 배포 등의 작업을 자동으로 수행할 수 있도록 도와주는 기능. 1. GitHub Actions의 핵심 개념 : GitHub Actions는 이벤트 기반으로 동작. 즉, 특정 조건이 충족되면 자동으로 실행. 1) Workflow - GitHub Acitons에서 실행되는 자동화 작업 단위. - github/workflows/ 디렉터리에 yaml 파일로 저장됨. 2) Event ( 이벤트 ) - GitHub Actions가 언제 실행될지 결정하는 조건이다. - Ex) push : 코드.. 2025. 1. 30. 인게임 제한시간 구현사항 1. GameController에 ready 메소드, start 메소드, sendQuiz 메소드, checkQuiz 메소드가 존재. -> Solid 원칙은 클래스(또는 컴포넌트)는 하나의 책임만 가져야 하며, 단일 변경 사유만 있어야 합니다. 라는 사유를 지키기 위해서 QuizController에 sendQuiz 메소드와 checkQuiz 메소드를 분리해서 코드 복잡성을 줄임. 2. Create Quiz 버튼을 누르는순간 WebSocket과 통신을 하여 문제를 가져와야함. -> 문제를 가져오는 순간에 모든 클라이언트에 30초 제한시간( 실시간 )과 남은퀴즈를 -1 감소 시켜야함. 1) 시간과 남은 퀴즈 감소는 js 코드에서 구현. 2) 저장한 문제를 가져오는것은 Spring에서 구현 -> Create.. 2025. 1. 23. 인게임 유저 관리 ( 중복 계정, equals()와 hashcode() 오버라이드 ) Intro* 동일 계정으로 동일 방에 여러번 입장을 하면 입장이 안되어야 하는게 정상이다.그래서 Set 자료구조를 사용하여 동일한 유저들은 중복해서 추가를 막는 방식으로 생각하였다.* 하지만 같은 UserID, RoodID를 가짐에도 동일 객체로 인식하지 않는 문제가 발생하였다.* 객체의 값으로 동일성을 비교하려면 클래스 안에 equals() 함수와 hashcode() 함수를 @Override 하여 동등성을 보장해야한다. 아래는 코드 문제점이다. Set inGameUserSet = game.getGameUser();// 동일 사용자지만 다른 인스턴스라 중복 허용InGameUser user1 = new InGameUser(1L, 100L, "Alice", "USER", false);InGameUser us.. 2025. 1. 5. DDL ( Data Definiton Language ) 작업 * DDL ( Data Definition Language ) :- 테이블을 생성하고 스키마( 구조 )를 정의하는 작업.- 테이블, 인덱스, 뷰, 스키마 등을 정의 ( 생성, 수정, 삭제 ) 하는 SQL 명령어문들을 통틀어 이르는 말. 간단하게 취준하면서 게시판 API 들을 만들어 보고 있는데, 정리할겸 DDL 작성 과정을 정리하려고 한다. 1) db 보기show databases; - 현재 사용중인 MySQL 서버에 존재하는 모든 DB 목록을 확인하는 명령어.- 사용자의 권한에 따라서 보여지는 DB가 다를수 있다.- 굳이 table 생성에 필수 명령어는 아님. 2) db 사용use boardDB; - 현재 사용 중인 DB를 boradDB로 설정해주어, 이후에 실행되는 쿼리 ( CREATE TABLE,.. 2024. 12. 21. 이전 1 2 다음