-
Clean Code독서 2022. 4. 23. 23:53
우리 모두는 자신이 짠 쓰레기 코드를 쳐다보며 나중에 손보겠다고 생각한 경험이 있다. ...중략... 다시 돌아와 정리하겠다고 다짐했었다. 나중은 결코 오지 않는다. 맞다... 구현하기에 급급해 쓰레기 코드를 양산해 냈다. 어쩔수 없었다. 이렇게 해야만 했다. 다른 방법은 보이지 않았다. 나중에 고치기로 마음먹었었다. 다른 소스코드들을 통해 좋은 소스코드를 발견했고 수정하고 싶었다. 하지만 QA중이기에 함부로 고치기가 무서웠다. 분명히 체크했는데 왜 안되죠? 라는 소리를 듣기 싫었다. 어떻게 하면 한번에 좋은 코드를 작성할수 있을까? 시간을 들여 깨끗한 코드를 만드는 노력이 비용을 점감하는 방법일 뿐 아니라 전문가로써 살아남는 길이라는 사실을 인정하리라. "깨끗한 코드를 어떻게 작성할까?", 깨끗한 코드..
-
[프로그래머스] JS 없는 숫자 더하기알고리즘/프로그래머스 2022. 4. 13. 21:09
문제 이해하기 0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요. 데이터 추상화 0 ~ 9 까지 들어있는 배열을 만들어 선택되지 않는 값이 무엇인지 발견하도록 하자. let list = [0,1,2,3,4,5,6,7,8,9]; 알고리즘 정수 배열 numbers를 순환하면서 list의 선택된 값은 0을 할당 list 값을 더한 값을 리턴한다. function solution(numbers) { let list = [0,1,2,3,4,5,6,7,8,9] var answer = 0; numbers.forEach( ele => { list[..
-
[프로그래머스] JS 크레인 인형뽑기 게임알고리즘/프로그래머스 2022. 4. 13. 09:10
문제 이해하기 크레인을 모두 작동시켜 사라진 인형의 개수를 return 해야한다. (필자는 몇번 사라졌는지로 잘못이해하여 뻘짓했다.) 데이터 추상화 크레인을 작동시키는 함수로 먼저 추상화하자. 매개 변수인 moves를 활용하자. 자료구조 stack에 크레인으로 잡은 값을 넣자. - stack의 pop을 이용하여 쉽게 구현을 할수 있기에.. 알고리즘 moves.forEach()를 사용하여 크레인을 작동시킨다. 크레인은 board를 가로가 아닌 세로로 동작하기 하기 때문에 세로로 반복문을 돌려준다. 크레인으로 뽑힌 값, stack에서 pop() 한 값을 비교한다. 같지 않으면 push 하고, 같다면 리턴하여 무시하자. function solution(board, moves) { var answer = 0; ..
-
[프로그래머스] JS 키패드 누르기알고리즘/프로그래머스 2022. 4. 12. 23:32
문제 이해하기 키패드를 누른 엄지손가락이 왼손인지 오른손인지를 나타내야한다. 엄지손가락은 상하좌우 4가지 방향으로만 이동할 수 있으며 키패드 이동 한 칸은 거리로 1에 해당. 왼쪽 열의 3개의 숫자 1, 4, 7을 입력할 때는 왼손 엄지손가락(Left)을 사용. 오른쪽 열의 3개의 숫자 3, 6, 9를 입력할 때는 오른손 엄지손가락(Right)을 사용. 가운데 열의 4개의 숫자 2, 5, 8, 0을 입력할 때는 두 엄지손가락의 현재 키패드의 위치에서 더 가까운 엄지손가락(Left, Right)을 사용. 만약 두 엄지손가락의 거리가 같다면, 오른손잡이는 오른손 엄지손가락, 왼손잡이는 왼손 엄지손가락을 사용합니다. 데이터 추상화 *, 0, # 을 10, 12, 13으로 추상화 함 각 번호 별로 어떤 손으로 ..
-
-
의미 있는 변수명 짓기카테고리 없음 2021. 12. 21. 21:02
더 좋은 프로그래머가 되기 위해 한 오늘의 고민은 모두가 이해할수 있는 변수명 짓기다. 즉 이름을 붙여줘야한다. 갑자기 아담이 떠오른다. 하나님이 아담에게 모든 동식물의 이름을 지어주라고 명령했고, 우리는 지금까지도 그 이름을 부르고있다. 이름이라는건 평생 불려야할 명칭이다. 그만큼 중요하다. 👍👍👍 이쯤에서 드는 질문이 생긴다. 프로그램에서 좋은 이름을 붙이는 방법이 있을까? 역시 찾아보니 있었다. "의도가 분명하게 이름을 지어라" 너무 당연한 질문이겠지만, 물어보자. 어떤 변수명은 왜 지을까?? 시스템적으로 메모리에 접근하기 위해서라고 생각했다. let a = "#FF0000" 위와같은 변수 a가 있다. a에는 빨간색이라는 RGB 정보가 들어가 있다. 시스템적으로 a를 가져다 사용하면 문제없이 동작 ..
-
컴파일러? 번들러?front-end 2021. 11. 25. 00:54
오랜만에 개념정리 차원에서 React 기술 용어 모음집을 읽었다. 익숙하지만 애매하게 개념이 잡히지 않는 두 개념이 있었다. 바로 컴파일러와 번들러이다. 사내에서는 거의 건들일이 없기 때문에. 알고는 있지만, 크게 수정해본적이 없는 친구들이라 그런지, 개념이 잡히지 않았다. 이참에 개념을 잡아보는 시간을 가져보려고한다. 컴파일러 Compiler는 특정 프로그래밍 언어로 쓰여있는 문서를 다른 프로그래밍 언어로 옮기는 언어 번역 프로그램을 말한다. 원래의 문서를 소스 코드(원시 코드)라고 부르고, 출력된 문서를 목적 코드라 하고 부른다- wiki 참고 대표적인 예로 C++코드를 기계어로 바꿔주는 것이다. 컴파일러는 언어 번역 프로그램이다. 즉 파파고나, 구글 번역기 처럼 특정 대상이 이해할수 있도록 번역해주..