본문 바로가기

고매의 기록

(187)
[git] 하나의 repository에 2개 이상의 프로젝트 폴더 넣기 나의 경우에는 backend, frontend를 하나의 repository에 넣기 위해서각각의 repository를 지우고 하나로 다시 repository를 구성했다. 예를 들어서 최상위 폴더가 Fruits이고,banana 프로젝트와 apple 프로젝트를 최상위 폴더에 넣어줘야한다. 그런데, Fruits 폴더에서만 git add를 해버리면banana, apple 폴더 자체는 add가 안 된다. 아래 명령어들을 요약해서 기재한다. echo "# [최상위 repository 이름]" >> README.mdgit initgit add README.mdgit commit -m "first commit"git branch -M maingit remote add origin [최상위 repository URL]gi..
30살, 2024년을 정리하며 (feat. 결혼, 이직, 석사 졸업) 이슈들과 빅 이벤트들이 총 집합되었던 2024년, 연말을 맞아 지난 한 해 정리를 해보고자 한다.너무 TMI인 것들은 빼려고 노력했지만 마음처럼 안 됐을 수 있음.  1월  지금의 남편과 결혼을 결심하고 본격 결혼 준비를 시작한 달이다.우리가 연애를 대략 3-4년 정도했으니, 서로가 언젠가는 결혼을 할 것이다라는 전제가 있었지만 누구 하나가 강력하게 밀어 붙이기 쉽지 않았고, 결혼 준비가 제대로 됐다는 생각이 전무했다. 그래서 사실 결혼이라는 것은 막연하기만 한 그저 먼 나라 이야기 같았다. 그러다가 1월 어느 평범했던 주말, 할게 없었던 우리는 문득 남편의 제안으로 데이트 겸 결혼 박람회를 가보게 되었는데...(우리 둘 다 호기심 많은 편) 절대 계약만큼은 하지 않기로 약속하고 박람회장에 들어선 우리는..
맥 M1 플러터 파이어베이스 연동 오류 해결 플러터에서 파이어베이스 연동을 하는 과정에서 다음과 같은 오류를 발견했다.     아주 지긋지긋했다 몇 시간동안 이 오류를 본건지...Launching lib/main.dart on iPhone 14 Pro in debug mode...Running pod install... 8.2sRunning Xcode build...Xcode build done. 6.4sFailed to build iOS appError (Xcode): unsupported option '-G' for target'x86_64-apple-ios15.0-simulator'Cou..
React 주민등록번호 컴포넌트 1. 목적[인수 조건]Given개발자는 주민등록번호 유효성 검증을 위한 정규식을 이용한다.코드가 길어질 경우 라이브러리 React-hook-form을 사용할 수 있다.text input 2개로 구성된 컴포넌트로 구현한다.When주민등록번호 컴포넌트 GUI와 유효성 검증하는 함수로 각각 분리한다.Then1. 00년생 이전/이후와 생년월일, 성별 케이스별로 나누어주민등록번호의 뒷 번호 첫 번째 자리까지 유효성 검증을 진행한다.2. 실시간으로 유효성 검증이 진행된다.3. 올바르지 않은 주민번호 입력시 가이드 텍스트가 표시된다. [설명]보상 안내 받는 이와 예금주의 주민등록번호를 받았을 때 실시간 유효성 검증 기능이 있는 주민등록번호 컴포넌트를 구현한다.케이스는 00년생 이전과 이후로 나뉘며앞, 뒷 번호 자릿수..
AWS Secret Manager 목적Next.js 프레임워크 내에서 .env 파일 내의 S3 관련 Secret Key 노출을 방지할 수 있는 방법을 모색함빌드 후 배포시 .env 파일이 유실되어 릴리즈 버전에서 s3 접근에 리스크 존재, 이를 방지하기 위함AWS Secret Manager사용 방법https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-secrets-manager/import * as AWS from "@aws-sdk/client-secrets-manager";const client = new AWS.SecretsManager({ region: "REGION" });// async/await.try { const data = await client.l..
[Typescript] type 및 try-catch 시 return 처리 // psuedo codeclass Person { name: string; foo() { console.log(this.name); } constructor(name: string) { this.name = name; }}const p = new Person('kim');console.log(JSON.stringify(p));console.log(JSON.parse(JSON.stringify(p)));function bar(): string { let result = ''; // result가 try에서도 catch에서도 사용해야 할 경우 (부득이) try { result = 'success'; ..
Dynamic Route - Slug 목적정확한 세그먼트 이름을 미리 알지 못하고 동적 데이터에서 경로를 생성하는 경우 요청 시 채워지거나 빌드 시 사전 렌더링되는 동적 세그먼트를 사용할 수 있다.Next.js의 Slug를 적극 활용해야 하는 이유App routing의 Slug 기능을 사용하여 동적 라우팅(Dynamic Routing)을 구현하려고 한다. 이 기능은 일반적으로 다음과 같이 사용된다.// app/blog/[slug]/page.tsxexport default function Page({ params }: { params: { slug: string } }) { return My Post: {params.slug};}이렇게 path param(segment)으로 온 param 데이터를 사용할 수 있는 것이 장점이다.그런데, ..
Xlsx parsing + react-table 분석 계기https://bizinsight.atlassian.net/wiki/pages/createpage.action?spaceKey=Software&title=1.%20Excel%20%ED%8C%8C%EC%8B%B1B2B 여행자 보험 가입 서비스 프로젝트에서 가장 중요한 기능인 Excel 파싱 기능 관련하여 어떤 라이브러리를 사용할지 기술 검토를 했었다. 그 결과, xlsx 라이브러리(SheetJS)를 사용하는 것이 가장 적절하다고 판단하여 개발팀에 공유를 하였다. 그렇다면, 이 xlsx 라이브러리로 어떤 기능들을 구현해야 할지 보다 디테일하게 분석을 해보려고 한다.필요한 기능정해진 양식의 엑셀 파일에 원하는 정보를 리스트업하고, 해당 엑셀 파일을 정확하게 읽어오는 것정확하게 읽어온 데이터를 UI 상..