ENAN

Developer, Artist, Traveler

전체 글 47

revert 블로그 이사

2021년 여름 첫 직장을 갖게된 후, 어느덧 시간은 흘러 1년 하고도 3개월의 시간이 지나갔다. 하지만 그동안 업로드한 포스트 수 0개.. 게을러터진 내 모습을 발견하는 순간이다. 취직하자마자 단 한개의 글도 쓰지 않았다는 사실을 깨닫고 충격과 반성의 시간을 가진 뒤, 오늘부터 다시 글을 써야겠다고 마음먹었다. 물론 언제까지 갈 지는 모름ㅎ 1. 다시 블로그에 글을 쓰는 이유 이제 어느 정도 글을 쓸 여유가 생겼기 때문이다. 시간적 여유라고 생각할 수 있지만, 그보단 마음의 여유가 생겼다는 의미다. 아무것도 모른다는 불안감이 오히려 공부할 체력과 의지를 갉아먹는 악순환에 빠져, 필요한 것들을 차근차근 공부할 만한 심적인 여유가 없었다. 그렇게 자신과의 옹졸한 싸움을 벌인 지 딱 1년 정도 후, 그 악순..

일기 2022.11.09

블로그 이사

https://velog.io/@enan enan (ENAN) - velog [Android] AAC - Room Room은 SQLite의 추상 레이어를 제공해 주어 DB에 편하게 접근할 수 있도록 해주는 ORM Library이다. JetPack, 그 안에서도 AAC 안에 속해있는 라이브러리 중 하나다.SQLite에 비해 Room을 사용 velog.io 티스토리에서 벨로그로 이사하기로 결심했다. 더이상 광고 수익을 기대할 수는 없겠지만, 여러 가지 이유로 벨로그가 훨씬 좋겠다고 생각해서 이전 글들을 하나씩 옮겨볼 생각이다. 이사를 결심한 이유 가독성 벨로그에서 작성한 글은 굉장히 깔끔하고 보기 좋다. 티스토리에서도 스킨을 잘 설정하면 가독성은 좋아질 수 있겠지만, 그래봤자 벨로그를 따라하는 정도에 그칠 ..

일기 2021.06.25

배민 CEO에게 뽑고 싶은 개발자를 물어보았다 리뷰

개요 링크 : https://www.youtube.com/watch?v=3H4umWD5bwI&t=3s 배달의민족을 운영하는 우아한형제들의 김범준 대표님을 인터뷰한 영상이다. 김범준 대표님은 20년차 개발자로, 작년 창업자 김봉진 의장의 뒤를 이어 CEO의 자리에 오르게 되셨다. CEO이자 20년차 개발자로서 김범준 대표님이 생각하시는 좋은 조직, 좋은 개발자 에 대해 알아보자. 좋은 조직이란 도움 도움이 필요한 사람에게 도움을 줄 수 있는 조직이 진짜 좋은 조직 처음 취직했을 때, 아무 것도 모르는 상태에서 일을 맡게 되었고, 심지어 사수는 출장을 갔다. 일단 책이라도 읽어 봤지만 아무것도 모르겠고, 그러다 마침 소스코드에 같은 회사 동료의 이름이 적혀있는 것을 보았다. 다짜고짜 찾아가서 어떻게 돌아가는..

공부/기록 2021.06.24

Throttle vs Debounce

Rx를 공부하던 중, 흐름 제어에 대한 내용을 보고 문득 인턴 근무기간동안 공부했던 내용이 생각났다.검색어 자동완성 기능을 구현할 일이 있었는데, 이 때 throttle과 debounce 방식 중 어떤 것이 낫냐는 회의를 하면서, 이 내용을 꼭 블로그에 적어야지! 하고 잊어버렸다... 1년이 다 지나가지만 지금이라도 적어보자..!그게 뭔데💡요청이나 처리의 빈도를 제한하거나 지연시키는 프로그래밍 기법한 마디로 설명하자면 위와 같다. 어떤 이벤트가 특정 시간동안 너무 빈번하게 발생되면 성능 상의 문제를 야기할 수 있기 때문에, 적절한 제어를 통해 과도한 호출이 일어나지 않도록 해야 한다.빈번하게 발생하면 뭐가 문제인데이해하기 쉽게 대표적인 예시를 들어 보자. 스크롤 이벤트,자동 완성등이 이를 사용하는 대표적..

[Clean Code] 2. 의미 있는 이름

클린 코드 2장 - 의미 있는 이름 2장에서는 좋은 이름을 짓는 규칙을 몇 가지 소개한다. 첫장에서 후두려 맞고, 2장에서 뼈가 갈렸다. 이사람 분명히 내 코드를 봤다. 읽으면서 부끄러웠고, 공감했고, 이 장을 읽은 이후로 코드 스타일이 많이 바뀌었다.규칙의도를 분명히 밝혀라int d, list1 → 보고 무슨 의미인지 모를 이름은 쓰지 말자.if(x[0] == 4) → x[0]이 뭔지, 4가 뭔지 어케 아냐! → if(cell[STATUS_VALUE] == FLAGGED) 이렇게 값에도 이름을 붙여주자.→ if(cell.isFlagged()) 처럼 상수를 감춰도 좋다.그릇된 정보를 피하라줄임말이 다른 의미로 쓰이는 단어라면 쓰지 말자.List가 아니라면 List라고 적지 말자. 자료형이 List인 것으..

[Clean Code] 1. 깨끗한 코드

클린 코드 1장 - 깨끗한 코드🏕️캠프장은 처음 왔을 때보다 더 깨끗하게 해놓고 떠나라.1장에서는 우리가 나쁜 코드를 짜온 이유와, 깨끗한 코드란 어떤 것인지와 깨끗한 코드를 유지하는 법에 대해 얘기한다. 솔직히 첫장부터 많이 후두려맞았다. 나 아는 사람인가? 싶을 정도로 내가 무슨 잘못을 저질러왔는지 잘 알고 있다. 읽으면서 같이 뼈가 부숴져 보자!르블랑의 법칙⏳나중은 결코 오지 않는다.우리는 자신이 짠 쓰레기 코드를 보면서 "나중에 손 봐야지"라고 생각한 적이 있을 것이다. 돌아가지 않는 프로그램보다는, 돌아가는 쓰레기가 낫다면서 . . 하지만 우리는 르블랑의 법칙을 알고 있어야 한다. "나중은 결코 오지 않는다." 급하니까 일단 짜놓고 나중에 정리하겠다 → 절~대 나중에 안한다! 아시잖아요?나쁜 코..

[Clean Code] 0. 들어가면서

🤔우리들의 코드는 왜 그렇게 되었는가?개발을 하다 보면 출시 직후 끔찍한 문제가 드러나거나, 돌아간다고 생각 했던 코드를 허겁지겁 디버깅하게 되는 등 수많은 난관에 부딪히게 된다. 그 이유는 우리가 나쁜 코드를 작성했기 때문이다.그러면 어떻게 좋은 코드를 짤 수 있을까? 장인 정신좋은 코드를 짜려면 장인 정신을 익혀야 한다. 장인 정신을 익히는 과정은 이론과 실전으로 나뉜다.이론 : 원칙, 패턴, 기법, 경험이라는 지식을 습득해야 한다.실전 : 열심히 일하고 연습해 지식을 몸과 마음으로 체득해야 한다.단순히 원칙과 패턴을 안다고 깨끗한 코드가 나오지 않는다. 고생을 해야 한다.이 책은이 책은 세 부분으로 나뉜다. 원칙, 패턴사례 연구결말(수집한 냄새, 휴리스틱)(저 "냄새"가 뭘 뜻하는지 아직은 잘 모르..

[Android] AAC - Databinding

사실 데이터바인딩은 안드로이드에서만 사용하는 개념은 아니다. 포괄적인 의미에서 데이터바인딩은 UI 요소와 데이터를 결합시켜 사용하는 것을 의미하고, 당연히 다른 언어와 프레임워크에서도 사용되는 개념이다. 아래에서는 Android Jetpack - AAC의 일부인 databinding library에 대해서만 설명할 것! DataBinding이란? 이 말이 바로 와닿지는 않을 테니(저는 그랬습니다), 우선은 레이아웃 xml 파일에 data를 연결해서 사용하는 것 정도로 이해하고 넘어가 보자. 👇 선언적 형식은 뭘까 👇 더보기 선언적 형식이라는 말이 무슨 말일까? 를 이해하기 위해서는, findviewById를 이용했던 기존 방식(명령적)과 차이를 보면서 이해하면 좋을 것 같다. - 기존 명령형 방식 ove..

공부/Android 2021.05.01

2021 상반기 라인 신입 공채 1차 면접 후기

매번 코딩 테스트 문제를 공개하는 카카오는 부담 없이 코테 후기도 작성했지만, 아무래도 비공개 코테 후기는 작성하면 안될 것 같아 스킵하겠습니다.. 개요 2021.04.14 (수) 오후 17시 00분 ~ 18시 00분까지 약 1시간 가량 zoom을 통해 온라인 화상 면접으로 진행되었다. 면접관 3분과 3대1로 진행하는 다대일 방식이었고, 분위기는 살짝 무거운 감이 있었지만 그래도 세분 다 친절하신 편이었다. 면접은 1차 기술 면접, 2차 임원 면접으로 나뉘어 진행되는데, 그 중 1차인 기술 면접을 먼저 보았다. 면접 질문 자세히 공개할 수는 없지만, 1차 코딩 테스트에 대한 질문이 나왔다. 카카오 면접을 봤던 경험 때문에 2차 코딩테스트 코드는 보고 갔었는데, 1차라니.. 첫 질문부터 얼을 심하게 탔다...

공부/기록 2021.04.29

[Android] AAC - ViewModel ( + vs MVVM의 ViewModel)

ViewModel 개요 우선 MVVM 관점에서와 AAC 라이브러리로서의 ViewModel을 구분해 작성하려 한다. MVVM 관점에서는 viewModel이 어떤 역할을 하는지와 같은 개념적인 얘기를 다루고, AAC 라이브러리 관점에선 이 viewModel이 안드로이드에서 어떻게 구현되었는지, 구체적인 사용 방법 등에 대해 적어보겠다. MVVM에 대해 잘 모른다면 아래의 글을 참고하면 좋을 듯! blog.yena.io/studynote/2019/03/16/Android-MVVM-AAC-1.html [Android] MVVM & 안드로이드 아키텍쳐 컴포넌트 시작하기 (나를 포함한) 안드로이드 개발을 처음 시작하는 사람들은 대부분 액티비티에 거의 모든 코드를 직접 넣는다. 하지만 시간이 갈수록 액티비티는 점점 ..

공부/Android 2021.03.31