전체 글 183

[Riot API] 비동기 전적조회 리팩토링으로 응답속도 개선하기 (2차)

1차 리팩토링: 구조 개선 + 비동기 전환처음 진행한 리팩토링에서는 다음과 같은 개선을 통해 구조적 안정성과 기본적인 성능 향상을 도모했습니다:외부 API URL 하드코딩 문제 → HttpInterface와 RestClient 기반으로 추상화하여 가독성과 유지보수성 향상전적 조회 10건을 순차적으로 호출하던 방식 → CompletableFuture와 ThreadPool을 활용한 비동기 처리 방식으로 전환이 과정을 통해 기존 평균 2~3초 걸리던 요청을 1초 미만으로 단축하는 데 성공했습니다. 그러나... 성능은 아직 충분하지 않았다비동기 구조로 전환한 이후, 내부 처리 시간 자체는 약 500ms 수준으로 빨라졌지만실제 사용자에게 반환되는 응답 시간은 900~1000ms 수준으로 여전히 차이가 존재했습니다..

티모지지 2025.07.08

TIMO.GG를 만들면서

작년 12월부터 지금까지, 내 머릿속 절반은 TIMO.GG로 가득 차 있었다고 해도 과언이 아닌 것 같다..작년 디자이너분이 만들어주신 귀엽고 정감 가는 로고와 캐릭터 덕분에, 이 프로젝트에 더 큰 애정을 갖게 된 것 같다. 대학 생활 중 정말 다양한 프로젝트를 해봤지만, 실제 서비스로 운영까지 간 적은 없었다. (대부분 비즈니스 모델의 한계 때문이었다)그래서 이번에는 ‘우리가 좋아하고 직접 써볼 수 있는 서비스’를 만들고, 끝까지 운영까지 해보자는 목표를 세웠다. 이 프로젝트를 진행하며 가장 집중한 부분은 무엇이었을까?사용자 중심적 사고 회원가입 플로우 단순화기본 닉네임 자동생성티모대위-a12b42(랜덤UUID 활용)오직 OAuth 로그인 통한 비밀번호 미사용→ 유저가 빠르게 서비스를 경험하는 것이..

티모지지 2025.07.07

[책 후기] 컴퓨터 밑바닥의 비밀

이 책을 읽게 된 이유취준 단톡방을 통해 처음 접하게 되었다. 요즘 취준하면서 부족한 CS를 채우려고 노력하는데 이 책의 목차를 보고 꽤 중요한 개념들이 있어서 바로 빌렸다.특히 CPU, 메모리 관리, 스레드, 프로세스, 동기/비동기, 블로킹/논블로킹 이러한 개념들은 알아도 계속 학습을 안하면 휘발되어서 다시 한번 숙지하자는 목표도 있었다. 어떠한 내용들이 있었나운영체제에서 하드웨어까지 전반적으로 필요한 개념들은 모두 주제로 등장한 것 같다. 이 책의 목표는 책 제목처럼 컴퓨터 밑바닥의 비밀을 아는 것, 즉 컴퓨터 내부의 동작원리를 파헤치는 것이다. 그런 관점에서 의문형으로 깊숙이 들어가는 구성이 도움이 되었다.[목차 일부] 대부분의 주제, 소제목이 의문형으로 되어있다.나에게 도움이 된 부분추상화이 책에..

책 후기 2025.07.07

[책 후기] 디자인패턴의 아름다움

바로 이전에 책을 읽고 디자인 패턴은 객체지향의 핵심인 역할, 책임, 협력 관점에서 반복되는 문제들을 해결하기 위해 개발자들이 자주 사용하는, 검증된 기법들을 정리한 것임을 알게 되었다. 그래서 디자인 패턴에 대해 좀 더 자세히 알아보기 위해서 읽게되었다. GoF의 디자인패턴 책이 유명하지만 학교 전자 도서관에서 지원을 안해서 선택하게 되었다.별점 (3.5/5) (후반부 디자인패턴쪽은 처음 접한 개념은 혼자 이해하기 쉽지 않았다.) 초반부는 객체지향 패러다임에 대해 소개해주는 부분이 있었고중반부는 코드 리팩토링 관점 후반부는 디자인패턴의 여러 개념및 적용 예시를 보여주었다. 특히 오늘 플라이웨이트 기법의 객체 재사용 측면에 대해 알게되었는데 Integer의 비교 기법에서 == 이 어떨 때 true이고 ..

책 후기 2025.07.04

@Transactional은 어떻게 동작하는걸까?

머리말프로젝트를 하다보면 @Transactional을 자주 쓰게 된다. 근데 이게 내부적으로 어떻게 동작하는지는 몰랐다. 그냥 마법처럼 스프링에서 관리해주는 어노테이션이라고 막연하게만 생각했다. 사용하기는 너무 쉽다. 트랜잭션이 필요한 곳에 메서드나 클래스에 @Transactional을 추가하면 된다. 근데.. 누군가 나에게 이것의 동작원리를 물으면 나는 뭐라고 답해야되나..(음... 지피티한테 물어볼게 잠깐만) 그래서 이번 기회에 한번 파헤쳐보려고한다. 본문일단 이것을 왜 사용해야될까? 먼저 트랜잭션의 사용이유를 알아보자. 트랜잭션이란 All or Nothing 원칙으로 작동한다.즉, 하나의 논리적 작업 단위에 포함된 모든 연산이 성공하면 커밋(Commit)하고, 하나라도 실패하면 모든 작업을 롤백(R..

개발 2025.07.01

[Riot API] RestClient + HttpInterface 도입 한 이유 (1차)

🚨상황 발단 사이드 프로젝트로 진행 중인 Tim.gg 서비스가 있다. 기능 중에 라이엇 외부 API를 활용하는 부분이 있다. 이 기능의 목적은 최근 10개의 매치 정보를 가져와서 승/패 횟수를 파악하는 것이다. 팀원의 기존코드로 작성했을 때 HttpClient로 작성되었었다. 작동하는데에는 문제가 없었지만 무언가 읽기 힘들다는 느낌이 들었었다.보면 알겠지만 URL을 일일이 메서드 안에 정의해줘야 한다. 매번 반복되는 HttpRequest, HttpResponse도 코드의 양을 늘이는 주범이다. 코드의 또 하나 문제인 부분이 여기서 List으로 매치정보를 가져오고 있다. 그 후 일일이 동기 방식으로 MatchSummaryDTO에 저장하고 있다.10개의 정보를 하나씩 해결하니까 웹사이트에서 은근히 처..

티모지지 2025.06.30

[팀 구르미즈] 6~7주차 활동

9월 3~4주차 진행상황 공유하려고 한다.이 앱을 학교측에서도 사용하면 좋을 것 같아 창업동아리를 신청하였다. (내일 합격 팀 발표 날인데 두구두구..) 9월 하반기는 추석 연휴도 껴있어서 정신없이 시간이 지나갔던 것 같다. 현재 완성된 와이어프레임 기반으로 디자인도 거의 완성 완료하였다.(디자인 파트 정말 수고하셨습니다ㅎㅎ)  유저 측 디자인은 위와 같다. 디자인팀에서 1차적으로 디자인을 끝내고 피드백을 통해 완성되었다. 다들 열심히 피드백 해준 결과이다~!어드민쪽 디자인이다. 유저/어드민 메인 컬러를 다르게 한 것이 눈에 띄는 특징이다. 아래 일반/기간/반복 페이지만 약간 수정하면 디자인은 끝날 것 같다. 프론트 측은 폰트, 컬러세팅 같은 기본 설정을 완료하고 UI 작업 중이다.백엔드는 서버 환경 세..

[팀 구르미즈] 4~5주차 진행상황

무더웠던 9월 1~2주차 진행상황을 기록하고자 한다.현재 와이어프레임은 거의 완성 되었고 디자인은 작업 진행 중이다.프로젝트 주제는 강의실 예약 플랫폼으로 재학생, 관리 담당 교직원 모두에게 유용하도록 구성하였다.메인 페이지는 위와 같다.지도를 띄워 아래 건물 리스트에서 클릭하면 위치를 표시하도록 구성하였다.상단의 날짜, 인원 정보를 선택하여 필터링 기능을 적용하였다. 위 페이지는 유저 입장에서 강의실 예약 페이지로 원하는 건물에 들어가서 자신이 원하는 강의실을 선택하여 강의실의 정보를 확인할 수 있다.이후 개인정보와 사유를 기입하여 신청하도록 플로우를 설계하였다.신청현황 페이지에서 자신의 예약 이력을 확인할 수 있다. 어드민 페이지에서도 마찬가지로 위와 같은 식으로 강의실 현황을 확인할 수 있다.강의실..

[팀 구르미즈] 2~3주차 활동

8월 31일 유니브 2차 스터디를 통해 우리 구르미즈팀 2~3주차 진행 상황 발표 시간을 가졌다. 발표 목차는 아래 순서로 진행하였다. 기획 파트사용자관리자 디자인 파트 일정 소개   우리의 앱 이름은 빌리지(Billage)로 하게 됐다! 센스있는 앱 이름인 것 같다 ㅋㅋ (상우형👍) 아래는 현재까지 진행중인 사용자 와이어프레임 부분이다 (총 3개 페이지) 재학 인증 부분은 우리가 직접 학생증 이미지 파일을 확인하면서 유저를 승인할 예정이다.     아래는 관리자 플로우 부분이다. 아직 와이어프레임이 완성되지 않아서 아이데이션으로 설명하였다. (총 3개 페이지) 우리의 디자인 컨셉은 이름에 걸맞게 빌리지 이미지를 추가할 예정이고 메인 컬러는 보라색, 노란색을 통해 멋지게 꾸며볼 예정이다. (디자인, 앱..

[팀 구르미즈] 1주차 활동

첫 주차 미션은 위와 같았다. 우리학교 유니브 노션을 기반으로 앞으로 회의록이나 각종 정보들을 공유할 예정이다.🧑‍💻프로젝트 아이디어 선정 팀원들의 다양한 아이디어 제안이 나왔다.우리 팀이 직접 처음부터 끝까지 하는 프로젝트인 만큼 직접 사용할 수 있고 접근성이 좋은 아이디어가 좋다고 생각했다.투표를 통해 진행한 결과 '학교 강의실 대여 앱'이 압도적인 투표 수로 선정 되었다👏👏학교 강의실을 빌리려면 항상 과사에 전화해서 사용가능 여부를 확인해야 한다. + 신상정보도서관 스터디실 빌리는 것처럼 강의실도 어플화하면 편리하고 접근성이 좋아질 것 같다.  아이디어 선정이 됐으니 바로 다 같이 필요한 기능들을 생각해보았다. 일단 앱의 큰 틀은 학교측이 권한을 갖게 하도록 어드민/일반 유저 두 역할로 나누..