분류 전체보기

    [React Native] doctype이 이미 표시되었습니다(Already seen doctype)' 해결법

    어제 오후부터 머리를 아프게 만들었던 에러를 해결했다. 상황 어제 오전까지 안드로이드 빌드에 성공했는데 오후부터 갑자기 gradle의 project configure 과정에서 다음과 같은 에러가 뜨면서 실패했다. ... [Fatal Error] {라이브러리1}.pom:3:10: doctype이 이미 표시되었습니다. [Fatal Error] {라이브러리2}.pom:3:10: doctype이 이미 표시되었습니다. ... FAILURE: Build failed with an exception. * What went wrong: Could not determine the dependencies of task ':app:compileDebugJavaWithJavac'. > Could not resolve all ..

    약 2개월차 스타트업 신입의 회고 - 면접편

    이전 글에도 잠깐 언급했지만 필자는 작년 12월 20일부터 스타트업에 다니게 되었다. 생각보다 조금 늦어졌지만 이번 글에는 필자가 약 2개월간 동안 겪었던 신입으로써의 경험담과 회고를 풀어내고자 한다. 면접 이전 면접 이전 시점으로 되돌아가보자면, 필자는 사회복무요원 복무의 막바지였다. 남아있던 연차를 몰아서 쓰던 중, 로켓펀치(채용 사이트)에 서 메시지가 왔다. 그 곳에는 이력서를 공개 상태로 올릴 수 있는데, 해당 이력서를 보고 관심을 갖게 되었다는 내용의 메시지였다. 필자는 복무가 끝나면 취업하는 것이 플랜 A였기에 흔쾌히 승낙했다. 1차 면접 보통 면접과는 다르게 1차 면접은 임원 면접(형식의 인사 담당자님과 1대 1 면접), 2차 면접은 기술 면접으로 보았다. 1차 면접은 건대 근처 카페에서 가..

    2021년을 돌아보며

    2020년과 다르길 바랬던 2021년은 결국 비슷하게 흘러갔다.하지만 필자에게는 어느 정도 변화가 있던 해였다. 지난 글처럼 2021년을 뒤돌아보고 2022년에는 어떻게 할 것인지에 대해 적어보고자 한다. 회고 공부 개발 내적으로는 Go언어 실력을 갈고 닦았다. 여러 책을 보며 Go언어 코드를 유연하게 쓰는 방법, 테스트 주도 개발을 실전에서 적용하는 방법, API를 직접 만드는 방법 등을 공부했다. 이후에 다시 언급하겠지만 새로운 회사를 들어가게 되어서 프론트엔드 공부를 12월부터 시작했다. React Native를 공부 중인데 아직 자바스크립트를 써본 적이 없어서 자바스크립트 공부와 병행해서 하고 있다. PostgreSQL도 공부해야 하는데 우선순위가 밀려서 기본적인 부분까지 밖에 진행하지 못했다. ..

    Go언어에서의 제네릭 미리보기

    이번 Gophercon 2021의 첫번째 세션은 내년 2월에 예정된 메이저 업데이트(v1.18)에 추가될 제네릭에 대한 소개였다. 아마 많은 Gopher(Go언어 이용자)들이 기대한 내용이 아닐까 한다. 아래 영상의 28:40 부근부터 제네릭에 대한 설명이 나온다. Gophercon 2021 Day 1 이번 글에서는 영상에서 발표된 제네릭 관련 내용을 간략하게 정리하고자 한다. 문법 이번 제네릭을 지원하면서 이를 위한 새로운 문법이 추가되었다. 제네릭에 이용할 타입 파라미터 타입들을 묶는 인터페이스 제네릭에서의 타입 추론 각각의 문법에 대해서 알아보자. 타입 파라미터 타입 파라미터는 아래와 같은 형식으로 되어 있다. [식별자 제약, 식별자 제약] 식별자는 함수 혹은 구조체 내에 쓸 타입의 식별자를 의미한..

    [서평] 밑바닥부터 만드는 인터프리터 in Go

    정보 제목 : 밑바닥부터 만드는 인터프리터 in Go 저자 : 토르슈텐 발 (역자 : 박재석) 출판사 : 인사이트 요약 이 책은 저자가 설계한 컴퓨터 언어의 인터프리터를 Go언어로 만드는 일련의 과정을 보여주는 책이다. 인터프리터(혹은 프로그래밍 언어 제작)라는 주제는, 꽤나 매니악한 주제임은 틀림없다. 시중에 해당 주제에 관한 글이나 책을 검색해도 별로 나오지 않을 뿐더러 나오더라도 수박 겉핥기식 아니면 지나치게 이론적이다. 이 책의 저자는 이런 양분화된 난이도의 인터프리터 관련 서적에서 중간에 위치하는, 이론과 용이성을 절충한 책을 내고 싶었다고 머릿말에서 밝혔다. 그리고 이러한 생각은 책 전반에 걸쳐 녹아 있다고 확실히 느껴졌다. 어려운 용어는 되도록 줄이되 어쩔 수 없는 경우 최대한 풀어서 설명하..

    chan chan 활용법 - 3. 시그널 채널의 채널로 이용하기

    해당 시리즈는 Golang Korea 페이스북 그룹 최흥배님의 번역 글에서 영감을 얻었으며 Go언어와 Go언어를 이용한 동시성 프로그래밍에 관해 어느정도 알고 있는 독자를 대상으로 한다. 이전 글에서는 순서가 보장되는 워커풀 패턴으로 이용하는 채널의 채널 활용법에 대해 알아보았다. 해당 활용법은 성능에 초점을 두었다. 이번 활용법은 성능 보다는 구조에 초점을 둔다. 다른 프로젝트에서 이따금씩 쓰이기 때문에 알아두는 것이 좋다. 시그널 채널 시그널 채널은 닫힐 때까지 코드의 실행을 멈추게 하는 채널이다. 원리는 다음과 같다. 채널은 데이터를 보낼 때 해당 채널로 데이터를 받거나 닫힐 때까지 다음 코드로 넘어가지 않고 기다리는 특성이 있다. 그리고 시그널 채널은 기본적으로 데이터를 받지 않도록 한다. 두 문..

    chan chan 활용법 - 2. 순서가 보장되는 워커 풀 패턴으로 이용하기

    해당 시리즈는 Golang Korea 페이스북 그룹 최흥배님의 번역 글에서 영감을 얻었으며 Go언어와 Go언어를 이용한 동시성 프로그래밍에 관해 어느정도 알고 있는 독자를 대상으로 한다. 이전 글에서는 채널을 변수로 취급하는 채널의 채널 활용법에 대해 알아봤다. 채널의 채널을 보게 된다면(채널의 채널 자체가 흔하지는 않겠지만) 해당 형태로 가장 많이 볼 것이다. 다음 두 글에 걸쳐 설명할 활용법들은 흔히 보이지 않을 뿐더러 해당 방법들을 몰라도 Go언어를 사용하는 데에 있어서 문제는 없을 것이다. 하지만 특정 상황에서는 요긴하게 쓰이리라 장담할 수 있다. 이번 글에서는 이 중 특정 상황에서 성능을 크게 끌어올릴만한 방법을 소개하고자 한다. 워커 풀 패턴 이에 앞서 생소할 수 있는 워커 풀 패턴에 관해 이..