목록분류 전체보기 (50)
유리의 개발새발
자, 오늘은 드디어 DB 세팅을 할 겁니다.라고 말했지만, 사실 오늘 주제는 그게 아닙니다. 요즘 세상에 누가 DB를 직접 세팅함?제 역할은 "기도", "욕하기" 입니다. 프로그래밍하다 보면 그런 순간 있죠. “분명 이렇게 말했는데…” → 전혀 다른 코드가 나와 있음“아니… 그게 아닌데…” → 근데 또 그럴듯하게 돌아감 -> 여기서 그냥 넘어가면 나중에 더 힘들어져요.저는 꽤 자주 겪습니다. 그래서 저는 “누가 뭘 망치든 내가 복구할 수 있게” 시스템을 짭니다.사람도 못 믿고 AI도 못 믿고 과거의 나도 못 믿습니다.1. DB 세팅할 때 error_log 테이블을 무조건 만들어 둡니다저희 형들이 틀릴 수 있습니다.나중에 서버가 터질 때 저희 형들에게 욕 하지말고 로그를 보여줍니다.CREATE TABLE ..
자! 이번에는 SNS 로그인을 붙일겁니다.벌써부터 귀찮죠? 어쩌겠어요 해야죠.지원 대상은Android: 네이버, 구글, 카카오iOS: 애플, 구글, 카카오입니다.많기도 해라.제가 정한건 아니고요.저희 로드형이 정했습니다. 여기서 중요한 점은 "구현"이 아니고, "이해"라고 생각합니다.구현은 저희 형들이 할테지만, 이게 지금 어떻게 동작하고 있는지 이해를 하는 것이 저의 몫이라고 봐요. 이게 어떻게 동작하는지를 이해하지 못하면 문제가 생겼을 때 저는 아무것도 못 합니다.Access Token은 어디서 오고ID Token은 왜 필요한지서버에서는 뭘 검증하는지리프레시는 언제 일어나는지iOS에서 애플 로그인이 왜 까다로운지이걸 모르면 형은 또 말합니다.“이게 정상 동작입니다.”그리고 저는 또 생각합니다.“그런가..
자, 지난 시간에 프로젝트 템플릿을 세팅했습니다.이제 만들면 되겠죠? 그.런.데 막상 앱을 만들려고 하니까문제가 하나 생겼습니다. 뭐부터 만들어야 하죠? 탭 메뉴는 몇 개? 무슨 기능이 들어가야 하지? 프라이머리 컬러는 뭘로 하지?분명 서비스는 만든다고 했는데, 정작 서비스의 모습은 아무것도 없습니다. 기획 0의욕 0방향성 0 생각을 해보다가, 불현 듯 떠오른 생각이 있습니다.건방지게 내가 왜 생각이란걸 하지? 생각은 형들이 하는건데? 제가 할 일은 방향 제시입니다. “독서 모임 서비스 만들어줘.” 이 정도면 충분하지 않습니까?탭 구성?, 컬러 시스템?, 기능 정의? 그런 건 저 따위가 하는게 아닙니다. 형들에게 부탁합니다.너는 MVP 설계를 도와주는 시니어 프로덕트 엔지니어야.독서 모임 서비스 MVP를..
자, 지난 시간에 서론이 꽤 길었습니다.쓸데없이 진지했죠.이번 시간에는 기본 프로젝트 세팅을 하겠습니다.아직은 우리 형들이 나설 차례가 아닙니다.기술 스택이번 조합은 이렇습니다.React Native (CLI)ExpressMySQL아주 전통적이고, 아주 무난하고, 아주 안전한 선택입니다.재미는 없지만, 배신도 잘 안 합니다.📱 React Native — CLI 선택 이유Expo로 갈까도 잠깐 고민했습니다.그게 그거 같기는 한데, 조금이라도 자유도가 높은걸 택했습니다.문제가 생겼을 때 내가 다 해결해야 한다는 뜻이기도 하지만, 어차피 제 인생도 다 제가 해결하고 있으니까요.🖥 서버는?Nest로 갈까 잠깐 고민했습니다. 구조도 깔끔하고, 데코레이터도 간지나고, 왠지 있어 보이니까요.하지만 곰곰이 생각해봤..
오늘 아침, 멍하니 누워 있다가 문득 이런 생각이 들었습니다."이제 뭐 하지?"한참 고민을 해봤는데, 뭘 해야 할지 모르겠더군요.그래서 일단 커피나 사 마시려고 일어나 카페에 갔습니다. 아메리카노를 주문하는데, 글쎄… 잔액 부족이 뜨는 겁니다.심지어 2,000원짜리 커피인데 말이죠.어이가 아리마셍.취업을 안 한 지, 못 한 지 오래되긴 했죠.'쉬는 청년'이 42만 명이라던데, 아니 내가 쉬고 싶어서 쉬냐?‘쉼당하는 청년’이라고 정정해줘.아무튼 그래서 결정을 했습니다. 아니, 정확히 말하면 ‘결정 당했습니다’.제가 할 줄 아는 건 앱 만들기 정도뿐이니, 저희 형들과 함께 앱을 만들어 커피값이라도 벌어보려 합니다.내가 쓸 수 있는 기술을 전부 쑤셔 넣은 서비스를 하나 만들자.아.무.튼. 무슨 프로젝트를 할까..
vscode에서 플러그인으로 claude code for vs code 쓰는데, 이런 오류가 계속 뜬다.API Error: 400 due to tool use concurrency issues 뜻은 대충 이거다.툴 호출을 동시에 여러 개 처리하다가 구조가 꼬였다는 말.그래서 나더러 어쩌라고?네, 엔트로픽 버그입니다. --- 해결법이라고 돌아다니는 것들.claude에서 직렬 실행 구조로 작성세션 껐다 켜기캐시 삭제VSCode 리로드플러그인 재설치그래서 다 해봄.난 안되던데?그래서 아예 클로드 코드를 재설치하고, 캐시 지우고 해봄 1. 클로드 코드 재설치2. rm -rf ~/.vscode/extensions/anthropic.claude-code-2.1.19-darwin-arm643. (vscode에서) C..
린트 / 프리티어 설정→ 코드 스타일을 자동으로 통일하고 리뷰 비용을 줄이기 위함Node / 패키지 매니저 버전 고정→ 로컬·CI·팀원 간 환경 차이로 인한 오류를 방지가로모드 중지→ UI 설계 복잡도를 낮추고 예외 케이스를 줄이기 위함시스템 다크모드 무시 설정→ 디자인 의도와 다르게 자동 반전되는 문제를 방지폰트 스케일 고정 설정→ 기기 접근성 설정에 따른 레이아웃 붕괴를 예방StatusBar 정책 설정→ 화면 전환 시 상태바 깜빡임과 스타일 불일치를 방지SafeArea 정책 설정→ 노치·홈 인디케이터 영역 대응을 일관되게 처리패스(alias) 설정→ 상대 경로 난립을 막고 파일 이동 비용을 줄임env 설정→ API 주소·키 등을 코드와 분리하여 관리환경별 설정(dev / staging / prod)→..
자, 오늘은 RN에서 채팅 기능을 구현해 보겠습니다.채팅 기능은 예전에 한 번 다뤄본 기억이 있는데, 그때는 소켓을 클래스로 만들어서 관리했었습니다.제가 한 건 아니고, 회사에서 이미 클래스로 해두었더군요. 네 뭐 그랬습니다.아. 무. 튼 이번에는 커스텀 훅으로 만들 예정입니다. 우선 라이브러리부터 설치하죠.npm i @react-native-community/netinfo // 네트워크 연결 여부 확인, 이벤트 리스너(addEventListener)로 네트워크 상태가 바뀔 때마다 콜백을 실행할 수 있음.npm i socket.io-client 커스텀 훅을 만들까요?import { useCallback, useEffect, useRef, useState } from 'react';import { AppS..
공식 문서를 기반으로 한 번 해보져.https://reactnative.dev/docs/legacy/native-modules-intro Native Modules Intro · React NativeSometimes a React Native app needs to access a native platform API that is not available by default in JavaScript, for example the native APIs to access Apple or Google Pay. Maybe you want to reuse some existing Objective-C, Swift, Java or C++ libraries wireactnative.devAndroid에서 먼저 시작..
지난 시간에는 RN 앱에 Firebase SDK를 붙여봤습니다.이번에는 백엔드에서 FCM을 직접 호출하는 부분을 구현해 보겠습니다.(저는 애플 개발자 계정이 없으니, Android 기준으로만 테스트합니다 🙏) 1. Firebase Admin 설정Firebase 콘솔 → 프로젝트 개요 → 프로젝트 설정 → 서비스 계정“새 비공개 키 생성” 버튼 클릭 → JSON 키 파일 다운로드이 파일을 Express 프로젝트 루트에 둡니다.이 키가 백엔드에서 Firebase Admin SDK를 초기화하는데 사용됩니다. Springr과 Express 중... 음..... Express로 하겠습니다!Node.js로 설정하고 다운ㄱㄱ그리고 그걸 백엔드 프로젝트 루트에 둡니다! 다음으로 패키지 설치npm i firebase-..