·회고
벌써 2024년의 마지막날이다.되돌아보면 이번년도는 꽤 많은 일이 있던 1년이었다.연초부터 창업 프로젝트가 좌초되고, 수 많은 탈락을 겪기도하고하필 내가 인턴을 시작했을때 업무강도나 역대급으로 강해지거나... 하는 식이었다.상반기 목표로 하반기 돌아보기회사/팀/프로덕트에 기여하기이 부분은 정말 잘해냈다고 생각한다. 짧은 기간이었음에도 불구하고, 많은 양의 업무를 해낼 수 있었다.더불어 회사의 lint룰이나, multi-starter cli를 만들어 생산성을 향상시키는 등의 기여를 할 수 있었고, 덕분에 좋은 피드백도 받을 수 있었다. 회사에서 한 경험을 잘 기록하기이 부분은 완전히 잘한 것은 아니지만, 휘발되지 않을 정도의 정보는 기록해두어서 나의 경험으로 만들어내는데에는 성공한 것 같다. 경험을 블로그..
·문제 해결기
배경여러 번의 리젝과 끝없는 기다림 끝에 개인 프로젝트인 dev-feed을 playstore와 appstore에 배포하는데 성공했다...! 그러나 배포가 끝이 아니다. 나는 앞으로도 컨텐츠를 추가할 생각이다. 그중에 하나가 인기 블로그를 제공하는 것인데, 우선 데이터를 모아보고 싶어 analytics로 해당 데이터들을 모으고자 했다. dev-feed는 react-native로 만들었기에 @react-native-firebase/analytics를 사용하여 google-analytics를 통해 어떤 블로그를 구독했는지를 수집하기로 했다. 그런데, 조금 있다가, 인기 글도 제공하고 싶어졌다. 그래서 뒤늦게 코드를 추가하려다보니, 글조회, 구독 등등... 전반적인 앱의 핵심 기능과 로깅이 붙어있는걸 발견할 수..
고민의 시작이전부터 좋은 코드란 무엇인지 고민해왔다.이런 고민은 팀원과 함께 협업하여 개발해야했던 인턴을 진행하면서 좀 더 심해졌고, 정리되지 않은 상태였다.이번 글로 하여금 생각을 정리해보고자한다. 좋은 코드를 작성하는 방법이라기보다는, 조금 더 근본적인 이해와 내가 해야하는 노력에 대한 글이다. 좋은 코드?좋다라는건 참 모호하다. 좋은 사람은? 좋은 인생은? ~에가 빠진 좋다 라는 가치판단은 머리를 점점 혼란스럽게 할 뿐이다. 목적을 따져보기목적을 따져보자. 코드는 왜 쓰는가? 코드는 불편한 문제를 해결하고, 자동화하여 가치를 제공하기 위해 만들어진다.이런 관점에서는 좋은 코드를 따질 필요는 없다. 왜냐하면 완벽한 제품을 한번 만들면, 더이상 바꿀 필요가 없기때문이다. 하지만, 현대 사회에서 불편한..
요즘 OS수업을 듣고 있는데, 프로세스 스케줄링 관련 부분을 배우고 있다.그러다가 문득, 최근 면접에서 받은, 그리고 제대로 답하지 못했던 이벤트루프는 왜 그런 우선순위로 작업을 실행시킬까? 라는 질문이 떠올라 지금에라도 작성해본다.서론동시성Concurrency(동시성)와 Parallelism(병렬성)동시성과 병렬성은 같은 단어 같지만, 분명히 다른 단어이다.동시성은 동시에 실행되는 것 같이 보이는것병렬성은 실제로 여러 작업이 동시에 처리되는 것이다.동시성에 대해 말할 것이다. 과거, 코어가 하나인 CPU에서 동시성을 해결하는 것은 매우 중요했다.안그러면, 하나의 프로세스만 돌릴 수 있을테니까. JS도 마찬가지다.Javascript는 싱글 스레드이다. 코어가 하나인 CPU인 것이다.여기서 우리는 로직 수..
·문제 해결기
배경2024 관광데이터 활용 공모전에 프론트엔드 개발자로 참여하여 프로젝트를 진행중이다. 앱을 1차적으로 릴리즈하고, 다음 업데이트를 한번 해보니, 스토어 심사를 진행하는 것이 생각보다 시간이 걸리고 불편한 일이라는 것을 느낄 수 있었다. 이런 부분들은 이미 알고는 있었으나, 실제로 경험해보니 더욱 체감이 되었다. 웹뷰를 사용하면 해결할 수 있었겠지만, 초기에 웹뷰를 사용하지 않고, RN으로만 진행하기로 하였기때문에, 다른 방법을 탐색해야했다. 그러다 찾은 것이 Code push다. 어떻게 가능한가?이것을 이해하기 위해서는 RN의 원리에 대해 간단하게 나마 알아보아야한다. React native의 스레드React native는 메인스레드, JS스레드, 백그라운드 스레드(Shadow 스레드)로 구성된다. ..
·회고
엘리스에서 현장실습으로 프론트엔드 인턴십을 진행했다.중간에는 정리하지 못했으나, 끝난 지금 제대로 정리해보고자 한다. 진행한 일들팀원들께서 말씀하시기를... 나는 역대급으로... 바쁠때 들어왔다고 한다.일이 굉장히 많았고(거의 쏟아졌던...), 그래서 밤을 새워가며 개발을 하기도 했지만, 그래도 그만큼 압축적인 경험을 통해 성장할 수 있었다고 믿는다.  나는 크게 네 가지 일들을 진행했다.1. 기존 프로젝트의 우선순위가 높은 버그 픽스들2. 커뮤니티 기능 및 UI개선 스프린트, 버그 픽스3. 커뮤니티 신규 기능 개발4. 디지털 교과서를 위한 클래스룸 신규기능 개발   느낀 점규모가 다르다.가장 크게 느낀 부분은 규모가 다르다..! 라는 것이었다.모듈이 10만개가 넘어가는 거대한 레포지토리에서 작업한다는 ..
·문제 해결기
배경여러가지 라이브러리를 만들어보며, 지금까지 항상 npm에 임의로 버전을 올리고, 패키지를 다운받은 이후에 테스트했었다.그런데 인턴을 하다, eslint룰을 추가하고 잘 적용됐는지 확인해볼 일이 생기게 됐고, 회사 사내의 라이브러리였기에 이때도 이렇게 진행할 수는 없었다. yarn link설명하기에 앞서, 로컬에서 수정하여 프로젝트에 적용시키고자하는 것을 패키지, 실제로 변경된 패키지를 테스트되는 곳을 프로젝트라고 하겠다. yarn link를 사용해서 패키지와 프로젝트를 연결하면 프로젝트의 node_modules/ 와 실제 로컬의 폴더 간의 심볼릭 링크가 생성된다.이 말인 즉슨, 수정한 패키지를 프로젝트에 추가하기 위해 추가적인 배포나 설치과정이 필요하지 않다는 것이다. 그러나 이 때 두 가지 패키지 ..
·회고
되돌아보기2024년이 반이나 지나갔다.세상에,이번 6개월은 눈 깜짝할 새에 지나갔다. 2023 하반기 목표 돌아보기독서량 늘리기2023하반기에서 책을 많이 읽는 것을 목표로 세웠었는데, 운 좋게도 책읽기와 상상력이라는 교양수업을 들을 수 있었고 덕분에 많은 책들을 읽을 수 있었다. 덕분에 최근에는 새로운 취미로 민음사 책들을 모으고 있다.이번 상반기를 통해 책은, 특히 민음사 전집과같은 고전은 때로는 약으로, 때로는 예방주사로 작용할 수 있다는걸 알게 됐다.지식의 전달이라는 관점보다는 경험과 가치를 보다 온전한 형태로 전달받는다는 점에서 더 좋다고 느끼게 됐다. 운동하기근력운동은 아니지만, 틈날 때마다, 한강도로 근처라면 따릉이를 빌려서 타고있다.사실 운동해야한다는 마음가짐보다는 좀 여유를 느끼고, 자전..
pages 파일 기반 라우팅지금까지는 pages에 App.tsx만 있어서 하나의 파일에 대해 html을 만들어서 전송했었다.하지만 Next에서는 pages에 있는 모든 파일이 라우팅되어, 해당 경로로 접근하였을때 페이지를 제공해준다.이번에는 이 기능을 구현해 볼 것이다. pageFiles찾기우선 이를 위해서는 pages의 파일이름들을 가져올 수 있어야한다. 그래서 바벨로 트랜스파일링된 dist/pages내부의 모든 tsx파일을 찾아올 것이다.const PAGES_PATH = 'dist/pages';export const getPagesFiles = async (pagesPath = PAGES_PATH) => { const files: string[] = await new Promise((resolve,..
·생각
의자는 앉기 위해 만들어진다. 침대는 자기 위해 만들어진다. 옷은 입기 위해 만들어진다.본질이 실존에 앞서는것이다. 그렇다면 사람은 무엇을 위해 만들어졌는가? 꽃과 동물은 무엇을 위해 만들어졌는가?이런 질문에 대답하기 위해 많은 철학, 종교가 탄생했다.  하지만, 과학이 발전함에따라 종교의 힘은 점차 축소되고, 결국 남는 건 무의미다.우리는 그냥 존재할 뿐이다. 본질은 아직 존재하지 않는다. 최근의 경험에 관하여나는 꽤나 창업에 관심이 많다. 새로운 가치를 만들어 내고, 이것을 사람들에게 알려 세상을 더 개선하는 것이 나의 꿈, 최종목표이다.그래서 이번 년도 초에 시작한 창업프로젝트에 앱 개발자이자 창업 멤버로 참여해서 3개월간 정말 밥 먹고 일만 할 정도로 일을 했다. 규모가 꽤나 컸음 에도, 팀원들이..
_0422
_0422의 생각