전체 글354 클린코드와 표준 협업에서는 사람이 읽기 좋은 코드를 중요시 여긴다. 그를 위해서 각종 컨벤션과 린터등의 코드 스타일링 도구들이 존재할 정도로 사실 좋은 코드와 읽기 좋은 코드 중 무엇을 중요시 여기는지 명확하진 않지만 좋은 코드와 읽기 좋은 코드의 차이가 거의 없어서 구분 짓기 힘드니 명확히 구분 짓는 것도 그다지 중요하지는 않는 것 같다. 개발자는 대부분 클린코드를 생산 하는 것을 지향한다. 물론 이에 동의하지 않는 사람들도 존재하겠지만 일정상의 이유나 클린코드는 좋은 코드가 아니다. 등의 이유는 리팩토링 기법에도 상반된 기법이 존재하듯이 클린코드 자체도 사실 이미 명확한 표준이 아니라 추상적인 지향점을 표현하는 단어다보니 의미가 없는 반박이다. 나는, 적어도 이글에서는 클린코드를 적절한 코드를 나타내는 단어로 사용한.. 2022. 4. 28. 프론트엔드 설계 고민 -3- 설계의 기본적인 규칙은 벡엔드나 프론트엔드나 대동소이하다.(사실 프로그래밍 외적인 분야로 봐도 비슷한 거 같다) 하나의 컨셉(관심사)에 집중한다. 하나의 행동(목적)을 여러 단계로 추상화하고 그 단계에 적합한 관심사에 맞는 부분에 집중해서 처리한다. 그런 작은 단위의 작업을 목적을 완성할 때까지 반복한다. 그리고 해당 목적의 디테일이 달라졌을때 또는 그런 추상화한 구조를 다른 목적을 수행하는데 재사용 가능하게 한다. 내가 철학적인 성향이 강해서 그런지 개인적인 생각을 말하자면 프로그래밍 자체가 철학과 유사하다는 생각이 많이 든다. 어떤 관심(목적)을 위해서 지속적으로 추상화된 보편율(코드)를 구하고 그를 검증하고 다듬는다. 물론 그렇게 개발을 하지 않는 사람도 많겠지만... 적어도 나는 그렇게 생각하고 .. 2022. 4. 26. [React]React와 JSX. 개요 리액트의 경우 기본적으로 jsx라는 자바스크립트 확장 문법을 사용한다. 물론 해당 문법을 사용하지 않아도 사용가능하긴하지만 리액트가 가진 편리함이 많이 줄어든다. 기본적으로 jsx문법을 활용하기 위해서는 babel이나 tsc같은 트랜스파일러를 필요로 하는데 그렇게 치환 할 경우 React.createElements 등의 함수를 호출하는 코드로 트랜스 파일링 된다. 그리고 createElements는 일정한 구조의 객체를 반환한다. 해당 부분에 대한 간단한 흐름을 코드를 통해서 살펴보자. JSX 본래라면 트랜스파일러 내부를 어느 정도 들여다보아야 정확한 이해가 가능하지만 그럴 경우 관심사가 분산되니 해당 부분은 생략하겠다. 리액트의 바벨 jsx 런타임 관련 코드는 react패키지의 src폴더 내의 j.. 2022. 4. 14. 보편타당한 결론 경험은 상당히 유용하고 중요하다. 다만 경험의 토대로 이론적인 즉 원리가 존재하지 않는다면 해당 경험은 보편 타당하다고 볼 수 없다. 경험상 해당 부분이 필요한 점이 많았기에 그렇게 한다. 라는 것은 해당 체계와 환경에서는 통용 될지 몰라도 다른 환경과 체계에서는 유의미한 판단의 근거가 되지 않는다. 그렇기에 경험적 근거는 늘 변화하는 상황에 맞는 새로운 근거를 찾아야한다. 이것이 해당 부분에 대한 원리적인 접근이나 설계가 필요한 이유이다. 보편타당한 또는 최소한도로 어느 상황에서나 적절한 판단 근거 역할을 할 수 있는 무언가가 되기 위해서는 단순히 경험적인 부분에서 끝날게 아니라 해당 경험적인 근거들을 추상화 시켜서 판단 할 수 있는 원리 체계를 만들어야한다. 만약 그것을 할 수 없다면 사실 그건 겉으.. 2022. 4. 12. 이전 1 ··· 28 29 30 31 32 33 34 ··· 89 다음