P-프로젝트(S3 Presigned URL 적용, Spring)
·
회고록/S3
서론해당 포스팅은 P-프로젝트를 진행했을때 프로필, 게시글 이미지 업로드를 위하여 S3를 사용했을때, Presigned URL 방식을 적용하여 업로드 속도 및 보안 측면에서의 이점을 가져왔었던 내용으로 작성해보려고 한다.S3 이미지 업로드먼저 Presigned URL 방식에 대해 얘기해보기전에, S3 업로드 방식에 대한 내용을 다루어보겠다.AWS S3는 AWS Simple Storage Service의 줄임말로, 말 그대로 아마존에서 제공해주는 파일 서버의 역할을 하는 서비스라고 생각해주면 될거같다. 별도로 파일을 저장해주기에 개발자가 따로 용량을 추가하거나 성능을 높이는 작업을 최소화 할 수 있도록 도와준다아래는 내가 노션에 문서화했던 S3 초기 설정 내용이다Presigned URL 이란 ?모든 객체는..
Weeth(출석 마감 자동화, Spring)
·
회고록/자동화
서론출석기능3기, 4기에 함께 활동했던 개발 동아리 Leets는 매주 목요일 19시에 정기모임 시간을 가진다. 동아리의 원활한 운영을 위해 출석을 관리해줄 수 있는 기능이 필요했고, Weeth 출석 기능을 통해 매주 정기모임 전 4자리 출석 코드를 입력하여 출석을 진행하는 방식을 도입하여 운영되고 있었다. 동아리 원은 정기모임이 시작되기 전 출석 코드를 입력해야 하며, 입력이 정상적으로 이루어지면 출석이 인정된다정기모임이 끝난뒤, 마감된 출석에 대해서는 아래의 내용처럼 완료된 출석에 대해서 조회를 할 수 있도록 하는 기능 또한 구현되어있었다만약 정기모임에 출석하지 않는다면 아래의 사진처럼 패널티가 부여되고 3번의 패널티를 받으면 동아리 활동이 제한되도록, 성실하게 참여하는 멤버들에게 동기 부여, 원활한 ..
P-프로젝트(JWT 를 통한 인증/인가, Spring)
·
회고록/JWT
서론해당 포스팅은 P-프로젝트를 진행하면서 진행했었던, Spring Security에서 사용되는 JWT 인증/인가 에 대해 작성해보겠다Spring Security는 애플리케이션에서 인증/인가 에 대한 설정을 편리하게 도와주는 역할을 해준다위 사진들을 보면 알 수 있듯이, Filter는 클라이언트의 요청이 서버에 도달하기 전에 실행되어 JWT 토큰의 유효성을 검사하고, 해당 토큰에 기반한 사용자 인증을 수행한다  따라서 Filter 가 하나의 영역에서 인증 인가를 수행하는 " 단위 " 라고 봐주면 될거같다 1. 사용자 토큰 검증을 통한 인증/인가 를 수행하는 JWT Filter 를 만들어서 유효성 검사(토큰이 유효하지 않거나 존재하지 않는 경우, 예외를 발생)2. 인증 성공시, 검증된 토큰을 기반으로 사용..
P-프로젝트(스왑 메모리, DevOps)
·
회고록/스왑 메모리
서론이번 회고는 서버의 메모리 부족 문제를 해결하기 위해 Swap 메모리를 생성하고 적용한 경험에대해 작성해보려고 한다.P프로젝트를 진행하면서 Github Actions, EC2, RDS, 도커를 이용해서 CICD를 구축했었는데, 당연히 유료는 대학생 입장에서 너무 부담스러웠었기에 AWS 프리 티어를 사용했었다. t2.micro 인스턴스는 1GB RAM만 제공하는데, 여러 가지 서비스를 동시에 돌리다 보면 메모리가 부족해서 서버가 자동으로 다운되는 문제점이 있었다문제점 위 사진의 내용처럼 CPU 사용량이 100%에 가까워지게 되면서, CPU의 모든 크레딧이 소진되어 네트워크 출력이 0이 되어서 서버가 자동적으로 다운됐던 것이다. 해당 문제를 해결하기 위해 난 스왑 메모리를 설정하여 이를 해결했는데, 해당..
가치택시(무한 스크롤, Spring)
·
회고록/무한 스크롤
서론이전에는 무한 스크롤에 대해서 weeth에서만 구현되어있는 형태만 봤었고, 직접 구현해본 경험은 없었다. 이번 프로젝트를 통해 처음 무한 스크롤을 적용하면서 백엔드 페이징 방식 선택, API 요청 최적화 등등 의 개념과, 무한 스크롤으로 구현을 해야하는 이유, 무한 스크롤의 개념 등을 세세하게 공부했었다먼저 무한 스크롤을 구현해야하는 이유는 무엇일까?첫번째로 프론트엔드에서 원활한 데이터 로딩을 도와줄 수 있다. DB 측면에서 대량의 데이터를 제공하는 서비스에서는대량의 데이터를 한 번에 불러오면 성능 저하가 발생할 수 있고, 사용자 기기의 리소스를 과도하게 사용할 위험이 있다. 따라서 무한 스크롤을 구현하면 초기 로딩 시 필요한 데이터만 가져오고, 이후 사용자의 스크롤에 따라 추가 데이터를 동적으로 불..
가치택시(수동 매칭, Spring)
·
회고록/매칭 로직
서론매칭 알고리즘 이후 나는 수동매칭이라는 새로운 API를 맡아서 작업을 시작하게 되었는데,원래 초기 업무분담에서 내가 맡은 부분은 아니였지만, 프로젝트 진행중 변경사항으로 인해 내가 해당 작업을 맡게됐다사실 프로젝트 최종발표가 2월 6일이였기에 일주일 ?? 정도의 매우 촉박한 기간에 작업을 맡게되어서 걱정이 많았지만, 프로젝트를 진행하면서 충분히 있을 수도 있는 일이라고 생각하기도 했었고, 이전 매칭 알고리즘 회고록에서도 작성했었듯이 난 내가 맡은 파트가 너무 적어져서 팀원들에게 미안한 마음이 있었어서, 해당 파트를 맡아달라는 주영이의 요청에 당연하게도 수락하게 되었다 !(+ 작업 볼륨은 중요한게 아니라고 걱정하지말라고 얘기해준 팀원들에게 너무 고마웠다🙏)게다가, 프론트 분들의 작업도 생각을 해야해서..
가치택시(매칭 알고리즘, Spring)
·
회고록
서론방학이 시작되고 Leets 4기에서 프로젝트를 시작하게 되었고, 내가 참여하여 시작한 프로젝트의 주제는 " 교내 학생들의 택시 이용시, 요금과 시간의 부담을 줄여줄 수 있는 택시 매칭 서비스 " 였다.해당 자세한 내용은 아래의 게시글을 참고해주면 더욱 좋을거같다 가치택시(무중단 배포)서론2025년이 되었다. Leets 에서 가치택시라는 새로운 프로젝트를 진행중이다프로젝트의 구상은 가천대학교 학생들 대상으로 AI 공학관 또는 기숙사까지 택시를 공유해서 탑승할 수 있는 서비스huncozyboy.tistory.com설문조사프로젝트 페르소나, 서비스의 대상을 가천대학교 교내 학생을 시작으로 특정했기때문에가천대학교의 학생들의 의견이 중요하겠다고 판단이 되어, Google Forms를 제작하여 학생들을 대상으로..
Weeth(무중단 배포, DevOps)
·
회고록/DevOps
서론Weeth얼마전에 포스팅을 했었던 가치택시라는 가천대학교 학생들 대상으로 AI 공학관 또는 기숙사까지 택시를 공유해서 탑승할 수 있는 서비스보다 더 먼저 시작되었던, 그리고 현재까지 진행하고있는 프로젝트가 있다 2024년 1학기 Leets 3기에서 진행했었던 Weeth라는 동아리 관리 서비스이다위 사진을 보면 알 수 있듯이 Weeth의 주요기능은 동아리 일정 + 캘린더, 출석+패널티, 게시판, 회비, 멤버(조회) 등 크게 5가지로 나누어져있다. 먼저 해당 5가지 주요 기능들에 대해서 간단히 설명해보겠다먼저 캘린더 기능을 통해 Leets 동아리의 일정을 한 눈에 볼 수 있고, 동아리 운영진만 관리할 수 있게 구현하였다또한 출석은 정기모임 당일에 직접 제공되는 출석 코드를 사용해 출석을 진행한다. 정기모..
가치택시(무중단 배포, DevOps)
·
회고록/DevOps
서론2025년이 되었다. Leets 에서 가치택시라는 새로운 프로젝트를 진행중이다프로젝트의 구상은 가천대학교 학생들 대상으로 AI 공학관 또는 기숙사까지 택시를 공유해서 탑승할 수 있는 서비스를 출시하고자 하는 것이였다.위 사진을 보면 알 수 있듯이, 네이버 지도 기준으로 가천대학교의 AI 공학관 + 기숙사 + 운동장까지 가려면가천대학교 1번 출구 즉, 정문 기준에서 도보로 24분이나 걸리는 것을 알 수 있다.게다가 거리뷰를 보면 알 수 있듯이 해당 거리는 엄청난 경사로 이루어져있어, 강의를 들으러 갈때에도 체력 소모가 심하고 여름에는 더더욱 문제가 심하다. 해당 내용의 대책으로 가천대 무당이라는 가천대학교 교내 셔틀버스를 운행중이지만, 1교시 전이나 붐빌때는 줄이 너무 길어 강의를 듣기위해 걸어서 올라..
P-프로젝트(구글 OAUTH, Spring)
·
회고록/소셜 로그인
서론팀 구성3학년 2학기, 12주 수업이 모두 끝나고 과에서 진행하는 P프로젝트를 시작하게 되었다.누구와 팀을 해야되지 정말 많은 고민이 있던 중, Leets 동아리도 같이 하고있고 평소에 잘알던 승현이와 팀을 꾸리게 되었다.나와 승현이가 백엔드였기에 P-프로젝트 팀은 프론트 2분을 추가로 구해서, 우리는 총 프론트 2명 + 백엔드 2명으로4명의 팀 구성을 완료하게 되었다. 하지만 프론트 팀원 1명은 백엔드 경험만 있었고 이번 프로젝트에서 프론트를 처음 맡았었고, 다른 프론트 팀원인 현지는 처음 개발 프로젝트를 하는 것이였기 때문에 팀 구성때부터 완성은 할 수 있을까 ? 라는 걱정이 많았던 것은 사실이였다.본론초기 진행사항AI와 관련해서 자신이 있던 사람도 없었고, 팀원 모두와 협의한 결과 클라우드 분야..