스크롤을 항상 최하단으로 유지하는 방법2024. 09. 05.4분팀 프로젝트 진행 중 채팅 봇 개발을 위해 채팅창을 퍼블리싱 하고 있었는데 채팅이 많아져 스크롤이 생겼을 때 항상 최신의 채팅 내역을 보여주기 위해 채팅창의 최하단을 항상 보여주고 싶어서 이것저것 알아봤는데 내가 떠올리지 못했던 방향으로 해결 하게 되어 포스팅을 하게됐다. 만든 채팅창 모습 import React, { useState, useEffect, useRef } from …
Spring Boot의 구조2024. 08. 27.2분백엔드에서 중요한 개념 중 하나인 DTO는 계층간 데이터를 전달하기 위해 사용되는 객체이다. 처음에 이 DTO에 대해 공부할 때 저 계층이라는 것이 프론트엔드 - 백엔드 - DB의 계층을 말하는 것인 줄 알았는데 아니었다. 정확히는 Spring Boot의 구성 요소인 프레젠테이션 계층, 비즈니스 계층, 퍼시스텀스 계층의 3계층을 의미하는 것이었고 그것에 대해서 좀 심도있게 …
Spring Boot의 디렉터리 구조2024. 08. 21.4분몇 번의 프로젝트를 진행하면서 디렉터리 구조는 항상 후반부에 제 발목을 잡았습니다. 치밀하게 계획을 해서 프로젝트에 돌입해도 끝에는 코드가 뒤죽박죽 섞여 정리가 안되는 현상이 반복이 되어서 항상 고민이었는데 이번 프로젝트의 백엔드로 선정한 Spring Boot는 MVC 패턴이라는 정해진 구조 패턴이 있어 이번에는 이를 적극 활용하여 깔끔하게 프로젝트를 끝내는 것을 목표로 잡았습니다. MVC …
8.14 개발 일지 [YOUR.LOL 제작기]2024. 08. 14.0분어제 정상적으로 데이터 안받아와진다는 유저 오늘은 또 잘 됨 ㅋㅋ 개발 일지 AddMatch 컴포넌트를 누를 시 매치 데이터를 추가적으로 받아와 상태 업데이트를 통해 매치 정보를 추가적으로 요청 할 수 있도록 구현 여러 함수에 기능적인 부분 설명 주석 작성 (앞으로 계속해서 추가해나갈 예정) 주절주절일단 오픈 api로 구현할 수 있는 모든 것은 …
그냥 안됐고 이젠 그냥 됨 [YOUR.LOL 제작기]2024. 08. 13.2분받은 피해량과 가한 피해량 막대 그래프를 추가했다. 매치ID를 이용한 매치 정보 요청 API를 백엔드로 옮겼고 클라이언트는 react-query로 리펙토링 했다. 왜정말 잘 되다가 갑자기 안됐다. 중요한 것은 왜 안됐었는지 아직도 모르겠다는 것이었다. 지금 YOUR.LOL의 전적 검색 구조는 여러번의 API 요청을 통해 ZUSTAND 전역 상태를 업데이트를 해가며 일종의 트리거가 되는 상태들의 변화로 …
08.12 개발 일지 + RIOT DATA DRAGON 사용법 [YOUR.LOL 제작기]2024. 08. 12.2분드디어 전적 검색 데이터를 다 정리해서 적용하고 그에 맞게 퍼블리싱을 수정했다. 앞으로 할 것 도넛 차트를 이용해보고 싶어 일단 저렇게 구현은 해놨는데 뭔가 휑하고 양질의 정보가 아닌 느낌이 든다. 개선 방향 고민해보기 +버튼 누를시 추가 전적 로드 로딩시 로딩중임을 명시할 수 있는 div 디자인 해보기 로그인 구현 (spring boot + …
MATCH DATA 활용하기 [YOUR.LOL 제작기]2024. 08. 08.0분전적 검색의 핵심인 매치 정보를 요청하면 저런 형식의 데이터 객체가 10개가 온다. (5vs5 게임이므로) 좀 적어 보일 수 있는데 원래는 8만 글자가 넘는 데이터가 오는데 내가 필요한 것만 추려서 보기 좋게 세팅해뒀다. 이제 저 10개의 데이터 객체 중 내가 검색한 유저가 누구인지 가려내고 그 유저의 데이터를 중심으로 ui를 구성해나가면 될 …
08.07 개발 일지 [YOUR.LOL 제작기]2024. 08. 07.0분전적 검색 페이지 ui를 개편했다. 로컬 상 이라서 그런 것인지는 모르겠지만 다수의 api를 순차적으로 요청하는데 렌더링 속도가 그렇게 늦다는 느낌은 받지 못해서 3-4개의 api를 추가적으로 요청하여 종합적으로는 체이닝은 5개정도 병렬 처리는 2-3개 정도 더 구성해 볼 예정이다. 주절주절솔직히 오늘은 집중이 좀 안돼서 리엑트 + typescript 관련 책을 하나 사서 읽었다. …
의존성 체이닝(구현 편) [YOUR.LOL 제작기]2024. 08. 05.3분React-Query의 Query Key 의존성을 이용한 의존성 체이닝 const { data: account, error: accountError, isLoading: isAccountLoading, } = useQuery<RiotAccount, Error>({ queryKey: ["riotAccount", gameName, tagLine], queryFn: () => fetchRiotAccount(gameName, tagLine), //gameName, tagLine의 의존성 enabled: !!gameName && !!tagLine, }); // 1번 요청 const { data: accountDetail, error: accountDetailError, isLoading: isAccountDetailLoading, } = useQuery<RiotAccount, …
비동기의 동기화 (계획편) [YOUR.LOL 제작기]2024. 08. 02.3분React는 사용자 인터페이스를 구축하는 라이브러리로서, 사용자 경험을 향상시키기 위해 비동기 작업을 필수적으로 처리해야 한다. 비동기 작업은 데이터 페칭, 사용자 입력 처리, 서버와의 통신 등 다양한 측면에서 핵심적인 역할을 한다. 근데 이런 비동기 작업에도 단점이 존재하는데 서로에게 의존성을 가지게 되면서 복잡성이 올라가고 그로 인해 상태 관리가 어려워져 그로 인해 발생하는 오류 …
08.01 개발 일지 [YOUR.LOL 제작기]2024. 08. 01.1분메인 페이지 퍼블리싱 완료 전체를 담기 위해 배율 조정을 했다(50%) 실제로는 더 크다. 앞으로 추가 할 것은 서비스 로고 작업을 할 건데 그게 저 가운데 YOUR.LOL 부분을 대체 할 것이고 배경 사진도 lol에 맞는 동적인 이미지를 추가 할 계획이다. riot api 활용 계획전적 검색 페이지에 필요한 데이터와 그 순서를 정리해봤다. …
구조 분해 할당과 React-Query [YOUR.LOL 제작기]2024. 07. 31.3분java, c ++ 같은 엄격한 언어들을 다루다가 javascript로 넘어왔을때 가장 이질적이었던 문법이 바로 구조 분해 할당이다. const array = [1, 2, 3]; const [a, b, c] = array; console.log(a, b, c); // 1 2 3 사실 이런식으로 할당하는 상상을 안해본 것도 아니고 논리적으로 이해가 안가는 것도 아닌데 막상 진짜 된다고 …
RIOT ID를 가져오는 방법 [YOUR.LOL 제작기]2024. 07. 30.1분Riot IDRiot은 2023년 10월부터 게임 내 닉네임을 없애고 자사 게임 내에서 공통으로 사용하는 Riot ID를 채택했다. 형식은 gameName#tag 의 방식이며 오늘 하루를 허비하게 만든 장본인이다. 원래는 어땠는데 ?리더보드를 만들기 위해 상위 랭커들을 요청했다고 가정하면 현재는 이렇게 데이터가 도착한다. 원래는 저기에 summonerName이라는 필드가 있었고 그게 닉네임 이었어서 요청 1번에 데이터 전처리만 …
07.29 개발 일지 [YOUR.LOL 제작기]2024. 07. 30.0분전체적 색상 푸른 계열로 변경 즐겨찾기 기능을 선수 순위, 팀 순위를 보여주는 div로 변경 json 서버를 제작하여 next 내장 라우팅으로 api 요청 구현 (다음 경기 일정 동적 생성) 주절주절 어제 업로드 하고 귀가 한 줄 알았는데 아니었어서 오늘이나마 업로드 했습니다.(오늘것도 따로 업로드 예정) 라이엇은 api를 따로 신청을 받아서 승인을 내주는데 …
[7월 회고] 자기 객관화 2024. 07. 27.5분선 요약 50여 곳 지원중 서류 2곳 합격 웹 개발 전반적으로 실력이 상향평준화 된 것을 체감하고 상용화 할 수 있는 수준의 프로젝트 경험이 필요함을 느낌 백엔드 개발자로의 전향 이번 프로젝트에 spring boot 까지 접목 시켜서 프론트, 백 가리지 않고 취업 준비 예정 1차 북벌카카오 map SDK를 이용한 프로젝트로 이번 취업 …
종목 변경합니다. [YOUR.LOL제작기]2024. 07. 26.3분API 정리글 작성중이었던 것 캡처본만 봐도 화가 치밀어 오른다. 선 요약pubg api document가 너무 불친절하다. 어떤 점이 불친절하냐면 seasonId라는 파라미터를 요구를 api가 있는데 example이 없어 직접 다른 api에서 필요한 데이터를 찾아다가 넣어야한다. 그래서 모든 api를 순서대로 차근차근 따라가면서 제공 되는 데이터 유형을 파악하고 거기서 파악한 데이터들을 다음 순서의 api에 파라미터로 …
07.25 개발 일지 [YOUR.PUBG 제작기]2024. 07. 25.7분NextAuth로 로그인 구현하기여러 로그인 방식을 지원해주는 NextAuth를 이용하여 카카오, 페이스북 소셜로그인과 일반 로그인을 구현해보았다. NextAuth가 지원하는 로그인 방식을 Provider 라고 한다. 카카오 로그인 방식은 KakaoProvider 이런식으로 작명돼 있고 일반 로그인은 Credential Provider라는 이름으로 기능이 제공되고 있다. CredentialsProvider({ name: "Credentials", credentials: { // 이 부분이 로그인 폼에 들어갈 내용. username: { …
07.24 개발 일지 [YOUR.PUBG 제작기]2024. 07. 24.2분Githubhttps://github.com/yoyoyoun18/your-pubg 오늘 한 일 전체 퍼블리싱 완료하기 (o) 소셜 로그인 구현하기 (x) Jest 찍먹 (x) 내일 할 일 소셜 로그인 구현하기 Jest 찍먹 PUBG api 실습 일일 회고 커밋을 자주 해주려고 노력하는데 코딩을 하다보면 까맣게 잊어버리고 한꺼번에 커밋하는 경우가 많았다. 오늘도 그런 실수를 범하고 한꺼번에 커밋을 했는데 문득 내가 git …
07.23 개발 일지 [YOUR.PUBG 제작기]2024. 07. 23.1분디렉터리 구조next.js는 폴더 단위로 라우팅되는 파일 시스템 라우팅을 지원한다. 따라서 디렉터리 구조가 굉장히 중요해서 본격적으로 개발에 들어가기 전에 디렉터리 구조를 작성해봤다. 오늘 한 일 환경 세팅 메인 페이지 퍼블리싱 내일 할 일 전체 퍼블리싱 완료하기 소셜 로그인 구현하기 Jest 찍먹 일일 회고 진짜 상용화 할 수 있는 서비스를 만들자는 생각으로 …
NEXT.js 프로젝트 계획서 [배틀그라운드 전적 검색 사이트 제작기]2024. 07. 22.1분구인 공고들을 보면 볼수록 Next.js에 대한 수요가 거진 80퍼센트 이상인 것으로 보여 현재 내가 가진 포트폴리오로는 기업의 우대사항을 만족 할 수 없을 것 같아 Next.js 프로젝트를 진행하기로 하였다. 주제배틀그라운드 전적 검색 및 패치노트 서비스 Tech Stack Next.js Express.js Tailwind css Redux Toolkit Mongo DB Docker EC2 Vercel(?) Tanstack Query 프로젝트 …
프로젝트 회고 [지도 검색 서비스 제작기]2024. 07. 17.7분프로젝트 개요프로젝트 기간: 2024.05.22 ~ 2024.07.09 프로젝트 목표: 외부 라이브러리 사용해보기 개발부터 배포까지의 풀 스택 개발 경험해보기 사용자 경험 개선을 위한 성능 향상 고민 프로젝트 배경 및 목적내가 가장 많이 사용하는 서비스가 뭔지를 고민해봤습니다. 이번 프로젝트의 목표가 단순한 기능 구현이 아닌 사용자 경험 개선까지 고려하여 프로젝트의 완성도를 높이는 것에 있기 …
리액트 18 서스펜스 (Suspense)2024. 07. 06.2분React Suspense는 비동기 작업 완료까지 컴포넌트 렌더링을 잠시 멈추고, 로딩 상태를 보여줍니다. Suspense 컴포넌트는 fallback 속성을 사용해 대기 UI를 정의하며, React.lazy로 동적 로딩을 지원합니다. API fetch와 메모리 캐싱 기법을 통해 비동기 데이터 관리를 효율화합니다.
[6월 회고] 이번엔 진짜 좀 다른데..?2024. 06. 28.2분목차 멘토링 지난 6월 남은 6월 다가올 7월 주절주절 멘토링지난 5월 중순 경에 프론트엔드 쪽으로 다시 방향을 잡고 멘토링을 받았었다. 그때는 진로에 대해 갈팡질팡 하고 있었을 때라 전체적으로 우울한 분위기로 멘토링이 진행됐었다. 당시 실시간 녹화 했던 영상을 보면 정말 왜 저렇게 주눅이 들어있나 싶을 정도로 무거웠었다. 그래서 진짜 마지막이라는 생각으로 …
EC2, docker를 이용한 배포 후기 [지도 검색 서비스 제작기]2024. 06. 25.5분프로젝트 링크 지금 경로탐색 기능과 ssr로 구현한 로그인 화면이 나오지 않고 있습니다. 참고해주시길 바랍니다. 프로젝트 아키텍쳐 React는 Cloudfront에, express는 docker를 이용해 aws ec2에 배포했다. 정말 이 한 줄로 표현하는게 너무 아쉬울정도로 역대급 삽질을 경험했다. 그 삽질들 중 기억에 남는 삽질에 대해서 작성해보려한다. UBUNTU학부생때 우분투 라는게 뭔지도 모르면서 컴공 감성이라며 노트북에 …