본문 바로가기

포트폴리오

(10)
[포트폴리오/주차장 서비스(with turu parking)] - (5) Github Actions를 활용한 CI/CD 자동화 Github https://github.com/mii2026/sw15 GitHub - mii2026/sw15 Contribute to mii2026/sw15 development by creating an account on GitHub. github.com 목차 1. 들어가며 2. Github Actions와 CI/CD 자동화 3. 자동화 테스트 4. 마치며 들어가며 이번 글에서는 프로젝트의 CI/CD 자동화 과정에 대해서 정리해보려고 한다. Github Actions에 대한 내용과 pull request 시 프로젝트 빌드, 도커 이미지화를 거쳐 EC2 환경에 업로드하여 실행하는 과정을 자동화하는 내용에 대해 소개하겠다. Github Actions와 CI/CD 자동화 더보기 보통 CI/CD 자동화라고 ..
[포트폴리오/주차장 서비스(with turu parking)] - (4) 도커를 활용한 AWS EC2 서버 배포 Github https://github.com/mii2026/sw15 GitHub - mii2026/sw15 Contribute to mii2026/sw15 development by creating an account on GitHub. github.com 목차 1. 들어가며 2. 프로젝트 빌드 및 도커 이미지 생성 3. ec2 환경에서의 실행 4. 마치며 들어가며 프로젝트 개발보다 만만치 않았던 것이 서버 배포였다고 생각한다. 이번 글에서는 스프링 프로젝트를 빌드하고 도커 이미지로 만들어 서버에서 컨테이너를 띄워서 실행했던 과정까지를 정리해보려고 한다. 프로젝트 빌드 및 도커 이미지 생성 더보기 스프링 프로젝트 배포를 위해 처음에는 EC2환경에서 빌드해서 실행하는 방식으로 진행하려 하였다. 그런데 팀..
[포트폴리오/주차장 서비스(with turu parking)] - (3) redis 연동 및 jwt 발급 Github https://github.com/mii2026/sw15 GitHub - mii2026/sw15 Contribute to mii2026/sw15 development by creating an account on GitHub. github.com 목차 1. 들어가며 2. jwt(Json Web Token 3. redis를 통한 Session관리 4. 마치며 들어가며 이번 글은 redis 연동 및 jwt 발급에 관하여 정리해보려고 한다. 참고로 redis와 mysql의 경우 도커 컨테이너를 이용하여 띄웠다. 그렇게 하는 편이 나중에 서비스 배포시에 간단하기 때문에 개발할 때 부터 도커 컨테이너를 이용하였다. jwt(Json Web Token) 더보기 회원 가입 방식으로는 jwt 방식을 채용하였..
[포트폴리오/주차장 서비스(with turu parking)] - (2) 백엔드 개발 Github https://github.com/mii2026/sw15 GitHub - mii2026/sw15 Contribute to mii2026/sw15 development by creating an account on GitHub. github.com 목차 1. 들어가며 2. 패키지 분리 3. 로그인 관련 기능 개발 4. 마치며 들어가며 이번 글은 주차장 서비스의 백엔드 서버 개발에 관하여 작성하려고 한다. 코드에 관해서는 설명이 필요한 부분 위주로만 간단하게 정리하였다. 개발에는 Spring Boot를 사용하였고 IDE로는 Intellij를 사용하였다. 패키지 분리 더보기 백엔드 서버의 클래스들은 위와 같이 패키지 별로 정리하였다. Config, Controller, Dto, Entity, Se..
[포트폴리오/주차장 서비스(with turu parking)] - (1) 서비스 설계 Github https://github.com/mii2026/sw15 GitHub - mii2026/sw15 Contribute to mii2026/sw15 development by creating an account on GitHub. github.com 목차 1. 들어가며 2. 프로젝트 개요 3. 서비스 설계 4. 마치며 들어가며 이번에 휴맥스 모빌리티에서 인턴으로 근무하며 진행하였던 주차장 서비스에 관해 블로그에 순서대로 정리해보려고 한다. 이번글에서는 프로젝트 개발 시작전, 서비스 설계를 진행하였던 내용에 대해 정리해보려한다. 구체적인 기능의 설명에 관해서는 git의 readme에 정리해 두었기에 블로그의 글에서 따로 정리하진 않을 계획이며, 블로그에는 개발 과정에 대해서만 정리할 생각이다. 프..
[포트폴리오(Knight Online)] - 룸 단위 위치 동기화 종강하자 마자 조금씩 진행하던 포트폴리오를 이악물고 달려서 완성시켰다. 프로젝트를 진행하면서 크고작은 시스템들을 설계하고 구현하였고, 오늘은 그중에서도 구현할 당시에 애를 많이 먹었던 위치동기화에 대해 정리하는 글을 작성해보려한다. 동기화? 먼저 동기화란 무엇일까? 위키 백과를 인용해 보자면, '동기화(同期化, synchronization)는 시스템을 동시에 작동시키기 위해 여러 사건들을 조화시키는 것을 의미한다.' 라고 하는데, 컴퓨터 과학 분야에서의 의미는 조금 다르다. 컴퓨터 과학에서 동기화는 클라이언트와 서버 데이터베이스상의 데이터일치를 의미한다. 게임에서의 동기화도 이런 의미로 사용되는 용어로 볼 수 있다. 그럼 다시 본론으로 들어가서 위치 동기화란 무엇인가? 앞에서 언급하였듯이 동기화는 클라이..
[포트폴리오(Knight Online)] - 보상 시스템 구현 https://teachingforme.tistory.com/33?category=1138179 [포트폴리오(Knight Online)] - 퀘스트 시스템 구현 이번에는 포트폴리오에서 구현한 퀘스트 시스템에 대해 정리해보려고 한다. 퀘스트 시스템의 경우 인터넷에 정보가 꽤나 있는 편이었지만, 내가 원하는 체계적이고 확장성이 있는 방식의 퀘스 teachingforme.tistory.com 이전에 퀘스트 시스템을 구현하면서 보상 시스템을 구현하지 않아서 미완성이라는 언급을 했었는데, 이번에 보상 시스템을 구현하여 이 글에서는 구현한 보상 시스템에 대해 정리를 해보려고 한다. 사실 완성한지는 오래되었는데, 학기중에 졸업작품이며 과제며 바빠서 이제야 정리글을 쓰게되는것 같다. 오래되서 아예 까먹어 버리기 전에 ..
[포트폴리오(Knight Online)] - 비동기 버그 관련 수정 지난번 퀘스트 시스템을 구현하면서 비동기 문제 때문에 참 골치가 아팠는데, 결국 원인을 찾긴 하였다. 디버깅을 해도 이게 발생을 할 때도 있는데, 안할 때가 많아서 원인을 찾기가 쉽지 않았다. 이번 글에서는 원인을 찾은 과정과 해결책에 대해 정리해 보려고 한다. 현재 NPC 출력 대사를 퀘스트의 진행 상태에 따라 다르게 출력되도록 해놨는데, 서버로부터 퀘스트 진행 상태를 정상적으로 받아왔음에도 NPC의 출력대사가 퀘스트 진행상태와 맞지 않았다. 예를 들어 퀘스트를 이미 클리어 했는데 퀘스트 진행 중일 때의 대사가 출력된다던가 말이다. 문제의 원인을 찾는 과정 별거 없었다. 버그가 발생할 것 같은 지점에 break point를 걸고 버그가 발생할 때까지 디버깅하는 방법 말곤 없었다.(노가다) 결국 원인을 ..