전체 글 79

CleanCode(클린코드) Chapter3 - 함수

DAY 5~6 🔖 오늘 읽은 범위 : 3장. 함수 😃 책에서 기억하고 싶은 내용. 함수를 만드는 첫째 규칙은 작게, 둘째 규칙은 더 작게 각 함수가 너무도 명백했다. 함수는 한가지를 잘 해야 한다. 그 한가지를 잘 해야 한다. 그 한가지만을 잘 해야 한다 함수가 확실한 ‘한 가지’ 작업만 하려면 함수 내 모든 문장의 추상화 수준이 동일해야 한다. 수준 상 eg. getHtml() 수준 중 eg. String pagePathName = PathParser.render(pagepath); 수준 하 .append(”\n”) 한 함수 다음에는 추상화 수준이 한 단계 낮은 함수가 온다. 서술적인 이름을 사용하라! 코드를 읽으면서 짐작했던 기능을 각 루틴이 그대로 수행한다면 깨끗한 코드라 불러도 되겠다. 플래그 인..

CleanCode(클린코드) Chapter2 - 의미 있는 이름

DAY 3~4 🔖 오늘 읽은 범위 : 2장. 의미 있는 이름 😃 책에서 기억하고 싶은 내용. 변수의 존재 이유는? 수행 기능은? 사용 방법은? 따로 주석이 필요하다면 의도를 분명히 드러내지 못했다는 말 프로그래머는 스스로 문제를 일으킨다. 다른 두개념에 같은 이름을 사용하지 못한다. 발음하기 쉬운 이름을 사용 클래스와 함수는 점차 작아지는 추세다 즉 변수를 선언한 위치와 사용하는 위치가 멀지 않다. 코드를 컴파일하지 않고도 타입 오류를 감지할 정도로 발전했다. 그러므로 헝가리식 표기법이나 기타 인코딩 방식이 오히려 방해가 될 뿐이다. 인터페이스 클래스 이름과 구현 클래스 이름 중 하나를 인코딩해야 한다면 구현 클래스 이름을 택하겠다. 클래스이름은 명사나 명사구 Manager, Processor, Data..

CleanCode(클린코드) Chapter1 - 깨끗한 코드

👍3줄요약 깨끗한 코드는 누군가 주의 깊게 짰다고 느끼게 한다. 체크아웃할 때보다 좀 더 깨끗한 코드를 체크인한다. 보기 쉽고 잘 사용할 수 있는 메서드를 설계해 보자. 테스트 케이스가 없는 코드는 깨끗한 코드가 아니다. 📝소감 테스트 케이스 코드를 적재하고, 꺠끗하게 떠나지 않은것들이 생각이 난다. 물론 기한이 다가오면 올수록 더 급하고 추상화를 멈추고 표현력도 낮아진다. 여러가지가 겹쳐 코딩을 할 수록 더러운 방을 보듯이 스트레스와 멘탈데미지가 누적되는 것 같았다. 추상화 뜻: 복잡한 자료, 모듈, 시스템 등으로부터 핵심적인 개념 또는 기능을 간추려 내는 것 테스트 케이스 코드를 깔끔하게 표현하고, 코드를 치기전에 추상화(공통적인것들을 취하고, 차이점을 버리는) 생각을 더 하는것. 보기 쉽고 잘 사용..

CleanCode(클린코드) 추천사 ~ 들어가면서.

👍3줄요약 첫 아이 이름을 짓듯이 심사숙고해서 변수 이름을 정한다. 품질은 사심 없이 기울이는 무수한 관심에서 얻어 진다. 내 코드의 상태에 관해서 동료들에게 정직하고, 무엇보다도 자신에게 정직해야 한다. 📝소감 최근 프로젝트 외주 한 건 이 있었다. 자사 소프트웨어에 탑재할 기능이 많아 보여서 진행하게 된 건이다. 정해진 기획에 맞춰 개발하는 것이였는데, 개발하면서 고려안된 기획들이 너무 많았다. 그러면서 점점 관심이 떨어지고, 명명또한 오타도 자주내면서 확실히 집중력이 많이 떨어져 있었다. 요번 클린코드 추천사~들어가면서를 읽어보니 자신과, 코드를 되돌아 보게 되었다. 또한 작성한 코드를 어김없이 보여주는 것은 정말 창피하고 어려운일로 느껴졌다. 누구에게 보여줘도 부끄럽지 않고 창피하지 않을 코드를 ..

[Csharp] Readonly, const

📖C# Readonly, Const Readonly 읽기 전용 변수는 initializer, 생성자 메서드에 할당 가능 읽기 전용 변수는 여러번 재정의 가 가능하다. public class Readonly { private readonly ExampleObject _exampleObjecct = new ExampleObject() { Id = 1 }; public Readonly() { // _exampleObjecct변수를 재정의 하는 모습 _exampleObjecct = new ExampleObject( Id = 2); _exampleObjecct = new ExampleObject( Id = 3); } } public class ExampleObject { public int id {get; set..

Develop Dairy/C# 2021.12.30

What is DOM? DOM에 대해 이해하기 (2021.12.28)

What is DOM? Document Object Model (문서 객체 모델)의 약어 BOM(Browser Object Model)이란 개념을 알아야 함 BOM은 브라우저와 관련된 객체들의 집합 BOM의 최상위 객체(object)는 window DOM은 window 객체의 하위 객체 DOM은 표준 규약에서 제공하는 기능 외에도 많은 브라우저들은 추가적인 기능들을 제공한다. 그렇기에 사용자가 작성한 문서들이 각각 다른 DOM이 적용된 다양한 브라우저 환경에서 동작할 수 있음을 인지한다. e.g.(exempli gratia, 예를들어 라틴어) 표준 DOM 에서는 문서 안에서 모든elements에 대한 list를 리턴하는 getElementsByTagName method를 정의하고 있다. var parag..

JS와 Webassembly의 차이점 (2021. 10. 23)

JS는 아래와같은 방식을 거칩니다. 인터프리터 : 코드를 한 줄씩 읽어, 한 줄씩 Bytecode로 변환 컴파일러 : 파일 전체를 읽은 뒤, 코드의 의미를 해석하고 파일 전체를 기계어로 컴파일해서 변환 Interpreter -> Byteocode 를 ingition이(구글이 명명) 실행 Optimising은 반복된 작업의 코드들을 최적화 해준다는 뜻. *Optimising로 해석된 Machine Code를 turbofan(구글이 명명)이 실행 * turbofan이 할 수 없으면 optimising을 취소하고 ingition이 다시 실행 됩니다. .wasm은 아래와같은 방식을 거칩니다. .wasm 파일 -> 구글의 V8 Liftoff 컴파일러로 실행 wasm은 많은 코드가 optimizing이 되고 취소되..

chocolatey Install for window user (2021. 09. 13)

윈도우에 뭔가를 설치할 수 있도록 도와주는 SW 입니다 설치방법은 아래와 같습니다. https://chocolatey.org/ Chocolatey - The package manager for Windows Chocolatey is software management automation for Windows that wraps installers, executables, zips, and scripts into compiled packages. Chocolatey integrates w/SCCM, Puppet, Chef, etc. Chocolatey is trusted by businesses to manage software deployments. chocolatey.org 1. 아래 그림에서 "Get..

Setting/Utils 2021.09.13