728x90
반응형
[ pinslog/Log.daily() ]AI를 잘 쓰고 있는지 AI에게 물어봤다2026-05-24 14:52:58들어가며AI를 활용한 코드 작성은 어느새 자연스러운 행위가 되었다.지금 작업 중인 사이드 프로젝트도 React Native로 개발하고 있다.나는 원래 안드로이드 네이티브를 주로 개발해왔는데, AI의 발전 덕분에 Flutter나 React Native 같은 다른 스택도예전보다 훨씬 가볍게 시도해볼 수 있게 되었다. 물론 그렇다고 해서 기술 스택에 대한 이해가 필요 없어졌다고 생각하지는 않는다.아직은 사람의 능력을 더 믿는다..! 다만 개인 각각의 전문성이 점점 AI 활용 능력 하나로 덧씌워지고 있는 시점이라는 생각은 든다.같은 AI를 사용하더라도 어떤 사람은단순히 코드를 생성하는 데 그치고,어떤 사람은 문제를 정의하고,범위를 줄이고,결과를 검증하며 더 나은 방향으로 끌고 간다. 그렇다면 나는 AI를 어떻게..
[ pinslog/Log.daily() ]AI로 친구들의 영웅이 되는 법 (feat. 개발자가 AI를 대하는 자세)2026-05-22 01:22:13들어가며이제 너도나도 AI를 알고, 접할 수 있는 시대가 왔다. (사실 온 지 오래됐다.)그렇지만 나에게 AI는 주로 업무 효율을 극대화시켜 주는 도구에 가까웠는데.. 이번에 AI를 통해 실생활의 어려움을 해결하는 경험을 하게 됐고, 그 과정에서AI를 어떻게 바라보고 활용해야 할지에 대한 생각도 조금 바뀌었다. 앗 문제 발견 나와 내 친구들의 취미는 방탈출과 보드게임이다.재밌는 방탈출을 찾아 다른 지역에 원정을 떠난 적도 있을 정도로, 우리는 방탈출에 꽤 진심이다. 이번에도 유명한 방탈출을 하기로 했는데, 이 테마는 말 그대로 정말 유명해서!원하는 날 하려면 티켓팅이 필수였다. 우린 알람까지 걸어놓고 예약을 하기로 했는데..예약 열리는 시간이 급하게 바뀌는 바람에 우리가 확인한 건 모조리 회색으로 변..
[ pinslog/Log.daily() ]가장 훌륭한 코드는 작성하지 않은 코드다: 입사 3주 만에 프로젝트 중단을 건의한 이유2026-04-07 16:39:53들어가며개발자가 오직 나 하나뿐인 새로운 직장에 합류하며 받은 첫 미션은 명확했다.'기존 수기로 진행되던 현장 조사 및 보고서 작성 업무를 자동화하는 앱을 만들 것'하지만 나는 입사 후 3주 동안 단 한 줄의 코드도 작성하지 않았다. (테스트코드 제외)대신 현장 업무 프로세스와 레거시 데이터를 분석했고, 최종적으로'현재 환경에서의 앱 개발은 무의미하며, 전면 재검토가 필요하다'는 리스크 검토 보고서를 경영진에 제출했다.결과적으로 나는 회사를 떠나게 되었지만, 이 3주간의 경험은 4년 조금 모자란 개발자 커리어 중 가장 강렬한 인사이트를 남겼다.'무엇을 만들 것인가?'보다 '왜 만들면 안되는가?'를 치열하게 고민했던 그 과정을 기록해보려 한다. 1. 환상과 현실의 괴리회사가 원한 것은 클릭 몇 번으로 데이..
[ pinslog/Log.daily() ][git] git stash 쓰다 식겁한 이야기2024-07-03 20:55:46개발하면서 git stash 명령어를 요긴하게 사용하고 있었다.A 브랜치에서 작업하다 급하게 B 브랜치로 넘어가야 할때,커밋할 정도는 아니라고 느껴질 때,stash 해놓고 볼일을 보고 돌아와 마저 할 일을 하는 것이 정말 편리했다.이 날도 어김없이 stash 하고 돌아와 apply를 했는데내가 만들어 놓은 파일이 나타나질 않는 것이다.그게 지금 작업의 핵심이라, 사라지면 일을 한 의미가 없어지는 거여서침착하게 마음을 가다듬고 폭풍 검색을 했다.그러다가 어느 블로그에서 stash는 변경사항만 저장하고신규사항은 저장하지 않는다는 것을 알게 되었다. 눈물...작업한 내용은 다행히 로컬에 남아있어 겨우겨우 살려냈다.stash 할 때 신규 작업까지 모두 저장해두려면git stash --include-untrack..
[ pinslog/Log.daily() ][Kotlin] Kotlin Destructuring2023-12-27 18:36:42때로는 객체를 여러 변수로 분해하는 것이 더 편리할 때가 있다. 이를 코틀린에선 구조 분해 할당(구조 분해 선언)이라고 하며, 한번에 여러 변수를 생성할 수 있다. data class Person( val name: String, val age: Int, ) fun main() { val person = Person("David", 30) val (name, age) = person println(name) // David println(age) // 30 } 이는 다음과 같이 컴파일 된다. val name = person.component1() val age = person.component2() 데이터 클래스가 자동으로 componentN() 를 제공하며, 클래스에서 직접 구현하기 위해서는 다음과 같..
[ pinslog/Log.daily() ][Kotlin] takeIf2023-12-26 22:25:37주어진 조건을 만족하는 경우 해당 객체를 반환하는 함수이다. (만족하지 못하는 경우 null을 반환함) takeIf는 단일 객체에 대한 필터링을 도와준다. inline fun T.takeIf(predicate: (T) -> Boolean): T? 주어진 조건 (it.age > 30) 을 만족하는 경우 해당 객체를 반환 그렇지 않은 경우 null을 반환하는 것을 확인할 수 있다. data class Person( val name: String, val age: Int, ) fun main() { val list = listOf(Person("amy", 34), Person("john", 45), Person("tom", 27)) list.forEach { println(it.takeIf { it.age >..
728x90
반응형