그동안 뭘 했고 앞으로 뭘 할건가 2부
3번째 직장이전과는 다르게 취업에 있어 자신은 있는 상태였다. 짧은 시간이었지만 시간과 노력을 정말 갈아넣었던지라 베이스가 어느정도 다져진 상태였고, 무엇보다 이 업계가 이런 경험있고 현장 대응이 가능한 신입에 목말라 있다는걸 어느정도 알고 있었기 때문에 그렇게 조급하지 않았다. 해서 이번엔 지원서를 난사하기 보다는 상장사 혹은 200명 이상의 비교적 규모가 큰 기업에만 지원을 …
3번째 직장이전과는 다르게 취업에 있어 자신은 있는 상태였다. 짧은 시간이었지만 시간과 노력을 정말 갈아넣었던지라 베이스가 어느정도 다져진 상태였고, 무엇보다 이 업계가 이런 경험있고 현장 대응이 가능한 신입에 목말라 있다는걸 어느정도 알고 있었기 때문에 그렇게 조급하지 않았다. 해서 이번엔 지원서를 난사하기 보다는 상장사 혹은 200명 이상의 비교적 규모가 큰 기업에만 지원을 …
작년 10월에 비전 개발자로써 커리어를 시작해 지난 2월 3번째 회사에 입사하여 현재까지 재직중이다. 그 동안 어떤일이 있었는지 간략하게 기록해보려한다. 첫번째 직장작년 10월 경 10명 규모의 국가 과제 위주를 수행하는 자동화 검사설비 업체에 비전 개발자로 취업했다. 비전팀은 책임님과 나 둘이었고 darknet이라는 c기반의 백본과 yolo라는 객체 탐지 모델을 이용하여 대상 물체의 외관 …
모델 학습을 위해 GPU 활용을 도와주는 CUDA 설치중 특정 작업에서 멈추는 현상을 발견했다. 이런식으로 Visual Studio가 명시된 작업에서 installing이 진행되지 않는 현상이 발생하는데 CUDA 커뮤니티를 뒤져본 결과 Visual Studio 2022가 2월 12일 자로 17.13 버전으로 업데이트 되며 발생한 문제인것으로 확인된다. CUDA 커뮤니티 관련 글 해당 글에서 제시된 해결책은 Visual Studio …
2024년은 참 많은 일이 있었다. 그 많은 일들 중 큰 일들이 일어났던 1, 4, 5, 10, 12월에 있었던 일들을 중심으로 2024년을 회고해보려한다. 1월 유일하게 남아있는 그 때의 흔적 여러 사정으로 진로에 대해 고민하고 있던 1월에 학교 선배 형의 결혼식에 다녀왔다. 카톡으로만 연락이 왔던 터라 그냥 봉투만 할까 하다가 2019년에 선배 …
취업했습니다.올해 다시 개발자로서의 취업에 도전했을 때의 분야는 C# 기반 머신비전 업계였습니다. 그 사이에 여러 가지 현실적인 이유를 들면서 웹 개발로 전환하려 했지만, 이런저런 과정을 거쳐 결국은 처음에 계획했던 C# 머신비전을 다루게 됐습니다. 다행입니다.저의 지난 20대에는 "합격"이라는 단어가 존재하지 않았습니다. 마지막으로 합격이라는 단어를 접한 것이 언제인지 생각해보니, 2014년 대학교 합격 통보를 …
팀 프로젝트 진행 중 채팅 봇 개발을 위해 채팅창을 퍼블리싱 하고 있었는데 채팅이 많아져 스크롤이 생겼을 때 항상 최신의 채팅 내역을 보여주기 위해 채팅창의 최하단을 항상 보여주고 싶어서 이것저것 알아봤는데 내가 떠올리지 못했던 방향으로 해결 하게 되어 포스팅을 하게됐다. 만든 채팅창 모습 import React, { useState, useEffect, useRef } from …
백엔드에서 중요한 개념 중 하나인 DTO는 계층간 데이터를 전달하기 위해 사용되는 객체이다. 처음에 이 DTO에 대해 공부할 때 저 계층이라는 것이 프론트엔드 - 백엔드 - DB의 계층을 말하는 것인 줄 알았는데 아니었다. 정확히는 Spring Boot의 구성 요소인 프레젠테이션 계층, 비즈니스 계층, 퍼시스텀스 계층의 3계층을 의미하는 것이었고 그것에 대해서 좀 심도있게 …
몇 번의 프로젝트를 진행하면서 디렉터리 구조는 항상 후반부에 제 발목을 잡았습니다. 치밀하게 계획을 해서 프로젝트에 돌입해도 끝에는 코드가 뒤죽박죽 섞여 정리가 안되는 현상이 반복이 되어서 항상 고민이었는데 이번 프로젝트의 백엔드로 선정한 Spring Boot는 MVC 패턴이라는 정해진 구조 패턴이 있어 이번에는 이를 적극 활용하여 깔끔하게 프로젝트를 끝내는 것을 목표로 잡았습니다. MVC …
어제 정상적으로 데이터 안받아와진다는 유저 오늘은 또 잘 됨 ㅋㅋ 개발 일지 AddMatch 컴포넌트를 누를 시 매치 데이터를 추가적으로 받아와 상태 업데이트를 통해 매치 정보를 추가적으로 요청 할 수 있도록 구현 여러 함수에 기능적인 부분 설명 주석 작성 (앞으로 계속해서 추가해나갈 예정) 주절주절일단 오픈 api로 구현할 수 있는 모든 것은 …
받은 피해량과 가한 피해량 막대 그래프를 추가했다. 매치ID를 이용한 매치 정보 요청 API를 백엔드로 옮겼고 클라이언트는 react-query로 리펙토링 했다. 왜정말 잘 되다가 갑자기 안됐다. 중요한 것은 왜 안됐었는지 아직도 모르겠다는 것이었다. 지금 YOUR.LOL의 전적 검색 구조는 여러번의 API 요청을 통해 ZUSTAND 전역 상태를 업데이트를 해가며 일종의 트리거가 되는 상태들의 변화로 …
드디어 전적 검색 데이터를 다 정리해서 적용하고 그에 맞게 퍼블리싱을 수정했다. 앞으로 할 것 도넛 차트를 이용해보고 싶어 일단 저렇게 구현은 해놨는데 뭔가 휑하고 양질의 정보가 아닌 느낌이 든다. 개선 방향 고민해보기 +버튼 누를시 추가 전적 로드 로딩시 로딩중임을 명시할 수 있는 div 디자인 해보기 로그인 구현 (spring boot + …
전적 검색의 핵심인 매치 정보를 요청하면 저런 형식의 데이터 객체가 10개가 온다. (5vs5 게임이므로) 좀 적어 보일 수 있는데 원래는 8만 글자가 넘는 데이터가 오는데 내가 필요한 것만 추려서 보기 좋게 세팅해뒀다. 이제 저 10개의 데이터 객체 중 내가 검색한 유저가 누구인지 가려내고 그 유저의 데이터를 중심으로 ui를 구성해나가면 될 …
전적 검색 페이지 ui를 개편했다. 로컬 상 이라서 그런 것인지는 모르겠지만 다수의 api를 순차적으로 요청하는데 렌더링 속도가 그렇게 늦다는 느낌은 받지 못해서 3-4개의 api를 추가적으로 요청하여 종합적으로는 체이닝은 5개정도 병렬 처리는 2-3개 정도 더 구성해 볼 예정이다. 주절주절솔직히 오늘은 집중이 좀 안돼서 리엑트 + typescript 관련 책을 하나 사서 읽었다. …
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, …
React는 사용자 인터페이스를 구축하는 라이브러리로서, 사용자 경험을 향상시키기 위해 비동기 작업을 필수적으로 처리해야 한다. 비동기 작업은 데이터 페칭, 사용자 입력 처리, 서버와의 통신 등 다양한 측면에서 핵심적인 역할을 한다. 근데 이런 비동기 작업에도 단점이 존재하는데 서로에게 의존성을 가지게 되면서 복잡성이 올라가고 그로 인해 상태 관리가 어려워져 그로 인해 발생하는 오류 …
메인 페이지 퍼블리싱 완료 전체를 담기 위해 배율 조정을 했다(50%) 실제로는 더 크다. 앞으로 추가 할 것은 서비스 로고 작업을 할 건데 그게 저 가운데 YOUR.LOL 부분을 대체 할 것이고 배경 사진도 lol에 맞는 동적인 이미지를 추가 할 계획이다. riot api 활용 계획전적 검색 페이지에 필요한 데이터와 그 순서를 정리해봤다. …
java, c ++ 같은 엄격한 언어들을 다루다가 javascript로 넘어왔을때 가장 이질적이었던 문법이 바로 구조 분해 할당이다. const array = [1, 2, 3]; const [a, b, c] = array; console.log(a, b, c); // 1 2 3 사실 이런식으로 할당하는 상상을 안해본 것도 아니고 논리적으로 이해가 안가는 것도 아닌데 막상 진짜 된다고 …
Riot IDRiot은 2023년 10월부터 게임 내 닉네임을 없애고 자사 게임 내에서 공통으로 사용하는 Riot ID를 채택했다. 형식은 gameName#tag 의 방식이며 오늘 하루를 허비하게 만든 장본인이다. 원래는 어땠는데 ?리더보드를 만들기 위해 상위 랭커들을 요청했다고 가정하면 현재는 이렇게 데이터가 도착한다. 원래는 저기에 summonerName이라는 필드가 있었고 그게 닉네임 이었어서 요청 1번에 데이터 전처리만 …
전체적 색상 푸른 계열로 변경 즐겨찾기 기능을 선수 순위, 팀 순위를 보여주는 div로 변경 json 서버를 제작하여 next 내장 라우팅으로 api 요청 구현 (다음 경기 일정 동적 생성) 주절주절 어제 업로드 하고 귀가 한 줄 알았는데 아니었어서 오늘이나마 업로드 했습니다.(오늘것도 따로 업로드 예정) 라이엇은 api를 따로 신청을 받아서 승인을 내주는데 …
선 요약 50여 곳 지원중 서류 2곳 합격 웹 개발 전반적으로 실력이 상향평준화 된 것을 체감하고 상용화 할 수 있는 수준의 프로젝트 경험이 필요함을 느낌 백엔드 개발자로의 전향 이번 프로젝트에 spring boot 까지 접목 시켜서 프론트, 백 가리지 않고 취업 준비 예정 1차 북벌카카오 map SDK를 이용한 프로젝트로 이번 취업 …
API 정리글 작성중이었던 것 캡처본만 봐도 화가 치밀어 오른다. 선 요약pubg api document가 너무 불친절하다. 어떤 점이 불친절하냐면 seasonId라는 파라미터를 요구를 api가 있는데 example이 없어 직접 다른 api에서 필요한 데이터를 찾아다가 넣어야한다. 그래서 모든 api를 순서대로 차근차근 따라가면서 제공 되는 데이터 유형을 파악하고 거기서 파악한 데이터들을 다음 순서의 api에 파라미터로 …
NextAuth로 로그인 구현하기여러 로그인 방식을 지원해주는 NextAuth를 이용하여 카카오, 페이스북 소셜로그인과 일반 로그인을 구현해보았다. NextAuth가 지원하는 로그인 방식을 Provider 라고 한다. 카카오 로그인 방식은 KakaoProvider 이런식으로 작명돼 있고 일반 로그인은 Credential Provider라는 이름으로 기능이 제공되고 있다. CredentialsProvider({ name: "Credentials", credentials: { // 이 부분이 로그인 폼에 들어갈 내용. username: { …
Githubhttps://github.com/yoyoyoun18/your-pubg 오늘 한 일 전체 퍼블리싱 완료하기 (o) 소셜 로그인 구현하기 (x) Jest 찍먹 (x) 내일 할 일 소셜 로그인 구현하기 Jest 찍먹 PUBG api 실습 일일 회고 커밋을 자주 해주려고 노력하는데 코딩을 하다보면 까맣게 잊어버리고 한꺼번에 커밋하는 경우가 많았다. 오늘도 그런 실수를 범하고 한꺼번에 커밋을 했는데 문득 내가 git …
디렉터리 구조next.js는 폴더 단위로 라우팅되는 파일 시스템 라우팅을 지원한다. 따라서 디렉터리 구조가 굉장히 중요해서 본격적으로 개발에 들어가기 전에 디렉터리 구조를 작성해봤다. 오늘 한 일 환경 세팅 메인 페이지 퍼블리싱 내일 할 일 전체 퍼블리싱 완료하기 소셜 로그인 구현하기 Jest 찍먹 일일 회고 진짜 상용화 할 수 있는 서비스를 만들자는 생각으로 …