목록전체 글 (36)
어쩌다보니 iOS 개발자
처음엔 기술부터 고민했다. (나는 아직 대표가 아니라, 개발자였다.)RAG AI를 만들겠다고 마음먹고 제일 먼저 붙잡은 고민은 이런 것들이었다.RAG 데이터를 어떤 구조로 저장해야 할까?토큰 사용량을 줄이려면 데이터를 어떻게 쪼개고 저장해야 할까?LLM이 대답을 잘하게 하려면 아키텍처를 어떻게 짜야 할까?그럴듯한 고민이었다. 그런데 이게 끝없는 반복의 시작이었다.다시 하고, 수정하고, 또 다시 하고다시 하고 수정하고, 또 다시 하고 수정했다.데이터를 힘들게 모았다가 갈아엎고, 또 모았다가 또 고쳤다.그러다 저작권 문제에 부딪혔다. "이거 써도 되나?" 혼자 끙끙 앓았다.상업적으로는 사용할 수 없다는 조건을 보고는 "그럼 어떻게 하지?" 또 고민했다.그러다 문득 이런 생각도 들었다.나는 돈을 벌려고 이걸 ..
이직, 그리고 1년 2개월AI로 개발하는 방식을 겪고 나서, 앱 개발자에서 서버 개발자로 이직하기로 마음먹었다. 다니던 회사를 그만두고 3개월을 고생한 끝에 2025년 8월에 이직에 성공했다.그때는 이력서에 AI를 적으면 면접에서 거부반응을 보이는 회사가 대부분이었다. 채용 공고에서도 AI를 언급한 곳은 한두 군데뿐이었다.1년 2개월이 지난 지금은 개발자가 아닌 대표들이 직접 개발을 하고 있다. 그러다 보니 대표들은 개발자가 필요하다고 느끼지 못하게 됐다. 우리 회사 대표도 그중 한 명이었다. 50명이 넘던 개발자는 10명만 남았고, 나는 회사를 떠난 40명 중 한 명이 되었다.솔직한 고백사실 이렇게 될 줄 알았다. AI를 쓰면 쓸수록 대표들이 언젠가 이렇게 생각하게 될 거라는 걸 1년 전부터 알고 있었..
"예쁜 쓰레기"를 만들지 않기 위하여모든 문제 해결은 똑같은 순서를 따른다. 문제를 인지하고, 불편함을 느끼고, 현황을 파악하고 분석한다. 그다음 어떻게 해결할지 고민하고, 시도한다. 시도한 뒤에는 수치를 보고 개선할지, 다른 방안으로 갈지, 혹은 A/B 테스트처럼 비교하며 검증할지 결정한다.이건 개인의 삶에서도, 회사라는 조직에서도 동일하게 반복된다. 회사가 만들어지는 과정 자체가 이 사이클의 산물이다. 누군가 어떤 문제를 인지했고, 그 불편함을 해결하기 위해 회사를 차렸다. 그리고 같은 문제를 함께 고민할 사람들을 뽑아, 그 문제를 같이 풀어간다.AI 이전, 문제는 '일부'의 몫이었다AI가 등장하기 전까지 이 사이클—특히 앞부분인 '문제 정의'와 '방향성 설정'—은 CEO, CPO, PM, PO, 마..
1) 스코프와 “외부 스코프” 스코프(scope): 변수를 “어디서 접근할 수 있는지”의 범위외부 스코프(outer scope): 지금 함수 기준으로 바깥에 있는 스코프function outer() { let x = 10; function inner() { console.log(x); // inner 입장에선 x가 "외부 스코프 변수" }} 2) 렉시컬 스코프(Lexical Scope)란? 한 줄로: 함수의 스코프(외부 변수 참조 기준)는 “호출 위치”가 아니라 “작성 위치”로 결정된다. 예시:let a = "global";function test() { console.log(a);}function run() { let a = "run"; test();}run(); // "global"..
✅ 결론부터자바스크립트는 싱글 스레드이며,이벤트 루프는 Call Stack이 비었을 때 대기 중인 작업을 실행하도록 조정하는 반복 제어 메커니즘이다.비동기 작업은 JS 밖에서 병렬로 수행될 수 있지만, JS 코드 실행은 항상 단일 스레드에서 순차적으로 이루어진다. 🔎 그렇다면 왜 이벤트 루프를 알아야 할까? 비동기 실행 순서를 예측하고, 실제 버그를 해결하기 위해서다. 1️⃣ 실행 순서를 정확히 예측하기 위해setTimeout(() => console.log("A"), 0);Promise.resolve().then(() => console.log("B"));왜 B가 먼저 실행될까? 이벤트 루프를 모르면 “그냥 그렇다”가 된다.이벤트 루프를 이해하면: Microtask → Task 순서 때문이라고 설명..
🎯 최종 결론호이스팅을 알아야 하는 이유는 호이스팅으로 인해 의도 하지 않는 버그가 발생되는 걸 막기 위해서입니다. 실무에서는 호이스팅에 절대 의존하지 마세요!- ❌ var, function 선언식 사용 금지- ✅ const/let + 함수 표현식/화살표함수 + "위 선언, 아래 사용"ESLint로 방지{ "extends": ["eslint:recommended", "plugin:react/recommended"], rules: { // 호이스팅 방지 규칙 "@typescript-eslint/no-use-before-define": [ "error", { functions: true, classes: true, ..
안녕하세요. 엔디엘입니다. 갑자기 왜 iOS -> Android로 작업하다가 이걸 하나 ㅎㅎ 궁금해 하실분은 아무도 안계시겠지만.. 현재 직장 대표님에게 사실대로 말씀드리고 육아휴직을 신청하여 이직을 준비하고 있었지만... 사실 육아휴직 비용으로 저희 가족이 생활하기에는 너무 부족하더라구요. 그래서 육아휴직중에도 월 150만원 이상만 넘지 않는다면 괜찮다고 하여.. 우연한 계기로.. 프리랜서를 하게되었습니다.!! 어떤 앱인지는 말씀드리지 못하겠지만 기존에 많은 인도 개발자들이 손을 건너왔다고합니다.. 듣기로는 빌드도 안되고 배포한건 안드로이드 최소버전 조건이 안맞아서 안되고.. 현재 출시된 버전은 이것저것 할때마다 앱은 죽고.. 다른 개발자가 맡다가 그냥.... 안한다고 하셨다고 하더라구요.. 일단 제가..
안녕하세요. 엔디엘입니다. 앞으로 Cursor IDE로 RN 개발을 해보려고 합니다. iOS를 개발할때는 워낙 자동완성, 스닙펫 등이 잘 되어 있어서 편한지 몰랐는데 VScode로 RN개발을 시작하고 나니정말 편하게 개발했었구나 라는게 느껴졌습니다. 그래서 어쩔 수 없이 개인적으로 해당 프로젝트에 맞는 스닙펫을 추가하였고 코드를 치는 시간을 단축하면서 개발을 해왔었습니다. 근데 이제 그걸 Cursor가 기똥차게 지원을 해준다고 하니.. 안해볼 수 없겠죠.. 사실 늦은감이었지만.. 지금이라도 무료 기간 2주동안 사용하면서 정말 필요할지 아니면 Vscode로 그대로 개발해도 문제없을지 경험을 해보겠습니다. IDE만 변경하는거라서 세팅할건 따로 많이 없을 것 같네요. 이제부터 Claude, Perplexit..