js

    chapter 01

    chapter 01

    컴퓨터가 이해하는 코드는 바보도 작성할 수 있다. 사람이 이해하도록 작성하는 프로그래머가 진정한 실력자다. 1. 리팩토링하기전에는 테스트 부터 분량이 방대한 코드를 리팩토링하다보면 잘 돌아가던 코드도 안되는 경우가 빈번하게 생기기 마련이다. 때문에 지속적으로 눈으로 보며 기능이 정상적으로 동작하는지 확인하는 과정이 필요하다. 이를 리팩토링 - 기능검사 순으로 반복적으로 수행하다보면 너무나 비효율적이고 검수에 너무나 많은 시간이 소요될 것이다. 이를 위해서 테스트 작성에 시간이 걸리더라도 신경 써서 만들어두면 디버깅 시간이 줄어 전체 작업시간은 줄어드는 효과를 얻을 수 있다. 2. 기능 쪼개기 긴 함수의 리팩토링을 맞닥뜨렸을 때 당황하지말고 기능쪼개기부터하자. 본문에서 발췌한 다음과 같은 코드를 보자. f..

    2022 디프만 11기 FE 활동 회고

    2022 디프만 11기 FE 활동 회고

    약 반년간 진행된 디프만 활동이 파이널 발표를 마침표로 끝이 났다. 기존 DDD, 오픈소스 컨트리뷰톤 활동을 통해서 스스로 채찍질할 수 있기도 하고 개발자 네트워킹 및 협업을 통해서 1년 반동안 많은 성장을 이뤘다고 생각한다. 이후 이직을 고민하고, BE에서 FE로 전향하게 되면서 현재 현업에서 쌓을 수 없는 리액트 프로젝트 경험이라던가 퍼블리셔가 맡는 파이를 가져오고 싶어서 디프만 11기 FE로 약 반년간 프로젝트를 진행하게 되었다. 면접 그리고 프로젝트 감사하게도 높은 경쟁률을 뚫고 11기로 활동할 수 있게 되었다.(한 10:1은 되었던 것 같다.) 그 동안 쌓아온 MBC 프로젝트 포트폴리오와 개발에 대한 열정을 높게 사주신 것 같다. 서류심사 이후에는 비대면 면접이 진행되었다. 일반 기업 수준의 기..

    [Programmers level 3] 이중우선순위 큐 Javascript

    문제 설명 이중 우선순위 큐는 다음 연산을 할 수 있는 자료구조를 말합니다. 명령어수신 탑(높이) I 숫자 큐에 주어진 숫자를 삽입합니다. D 1 큐에서 최댓값을 삭제합니다. D -1 큐에서 최솟값을 삭제합니다. 이중 우선순위 큐가 할 연산 operations가 매개변수로 주어질 때, 모든 연산을 처리한 후 큐가 비어있으면 [0,0] 비어있지 않으면 [최댓값, 최솟값]을 return 하도록 solution 함수를 구현해주세요. 제한사항 operations는 길이가 1 이상 1,000,000 이하인 문자열 배열입니다. operations의 원소는 큐가 수행할 연산을 나타냅니다. 원소는 “명령어 데이터” 형식으로 주어집니다.- 최댓값/최솟값을 삭제하는 연산에서 최댓값/최솟값이 둘 이상인 경우, 하나만 삭제합..

    [JS]-1 : 호이스팅(Hoisting)/ 타입스크립트

    [JS]-1 : 호이스팅(Hoisting)/ 타입스크립트

    무작정 프론트로 프로젝트를 시작하며 느낀 JS 지식 및 활용-1 백단만 개발하다 본격적으로 두달동안 Vue로 프로젝트를 하며 Javascript에 대한 코어 지식이 부족하다는 것을 뼈저리게 느꼈다. 이번 프로젝트를 하며 JS의 코어 지식들이, 단순히 "이론적으로 암기할 것"이 아닌 효율성과 유지보수, 안정적인 프로덕트를 위해 필수적으로 알아야 한다는 것을 깨달았다. 다음은 실제로 프로덕트를 개발하며 느낀 JS의 문제점들, 문제를 해결하기 위해 도입하고자 하는 것들에 대한 내용이다. 그중 호이스팅과 타입안정성에 대해 먼저 말해보고자 한다. Javascript로 개발한다는 것은 생각보다 쿨하지 못한 과정이었다. 동적 타이핑 언어로 런타임에러를 뱉는 점, 타입안정성이 떨어지는 점, 관용적인 문법 표현들은 오히..

    [모듈번들링] Module Bundler: Webpack 도입 적용 경험 #1,2

    [모듈번들링] Module Bundler: Webpack 도입 적용 경험 #1,2

    도입 배경 기존 프로젝트 포함 현재 진행하고 있는 프로젝트 또한 보통의 js 모듈들을 로딩받아 사용하고 있다. 학부생때부터 번들링을 경험해본적이 없어서 그냥 당연하게 사용해왔고 사내에서 또한 그랬다. 이번 프로젝트를 진행하면서 더욱이 번들링의 필요성을 느끼고 도입해 적용해 보았다. 번들링을 함으로써 기대할 수 있는 효과는 다음과 같다. 1. 로 이어지는 코드의 간결화 2. 네트워크 코스트의 이점 3. 코드 난독화, 압축 등 여러 기능 제공 일단 script로 이어지는 지저분한 코드들이 파일들 마다 이루어지던 서버요청을 한번에 요청/응답을 받으므로 네트워크 코스트가 줄어들었다. 또한 하나하나 요청을 함에 따라 발생하는 js 요청 순서도 굉장히 중요했는데, 이로 인해 발생하는 버그를 방지할 수 있었다. 예를..