ENAN

Developer, Artist, Traveler

공부/DevOps, 개발 전반 5

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. 들어가면서

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

git 정리 + 커밋 푸시 어떻게 취소해요?

매일 사용하면서도 정확하게 안다는 느낌이 없었는데, 마침 스터디 같이 하는 친구가 깃 명령어가 꼬이는 바람에 고생하고 있어서 한번 싹 정리했다. 용어 설명은 간략하게 하고, git 명령어 취소를 중점적으로 정리했다.Git깃(Git)은 프로그램 등의 소스 코드 관리를 위한 분산 버전 관리 시스템이다. (- 위키백과 -)어렵게 느껴질 수 있지만 대강의 뜻은 이렇다.분산 : 여러 개발 환경(즉 여러 명의 개발자)에서 한 프로젝트를 협업하며 개발할 수 있음버전 : 개발 단계에 따라 한 프로젝트의 여러 버전을 나누고 관리할 수 있음아무튼 다시 정리하면, 여러 명의 개발자가 버전 관리를 하며 쉽게 협업할 수 있는 툴!용어Repository: 코드나 문서를 비롯한 리소스를 저장하는 곳을 말하며, 프로젝트 단위로 만든..