[스크랩]좋은 코딩을 위한 13 가지 간단한 규칙


원문 출처


아직 짧은 개발 경험을 가지고 있지만 이런 말들은 언제나 격하게 공감하고도 실천하지 못하는 것들 중 하나이지 않을까 한다.

이중에서 제일 공감가고 꼭 실천해보고자 하는 두가지를 꼽으라면, 다음 두가지를 꼽을것이다.


- 리팩토링은 작동하지 않는다

나는 일하는 동안나중에 리팩토링 할거니까 걱정하지마라라는 말을 많이 들었다. 그리고 나중에 이는 기술적 부채로 돌아오거나 모든 코드를 삭제한 처음부터 다시 작성하게 되었다.

따라서 처음부터 여러번 소프트웨어 다시 개발할 있는 자금이 있는게 아니라면 부채를 만들지 말라.



- 주석

주석은 나쁜 코드를 보여준다. 좋은 코드는 주석 없이도 이해할 수 있어야한다. 그러면 새로운 개발자를 위해 시간을 절약하기 위해 해야 할 일은 무엇인가? — 메서드의 정의와 사용법을 설명하는 한 줄짜리 간단한 문서를 작성하라. 이는 이해를 위한 많은 시간을 절약해 줄 것이며 — 더 많은 사람들에게 메서드를 더 잘 구현할 수 있는 기회를 제공해준다. 또한 이는 글로벌 코드 문서화를 위한 좋은 시작점이 될 것이다.


---> 개발자라면 반드시 원문을 읽어보자


WRITTEN BY
너부리왕자

트랙백  0 , 댓글  0개가 달렸습니다.
secret
개발자로 몸을 담고 처음으로 네이버 DEVIEW에 참석하게 되었다.


첫 키노트를 통해서 네이버가 무얼 하고 있고, 미래에 무엇을 계획하는지를 알수 있는 자리였는데

구글 IO개발자 행사, 페이스북 F8 개발자 행사, 애플 WWDC와 마찬가지로 가장 큰 트렌드는 인공지능, 머신러닝, 딥러닝 기술을 기반으로한 실제 제품들, 특히 하드웨어 관련 기술이 돋보였다.


이제 네이버가 하드웨어 회사라 불릴정도로 인공지능을 담은 하드웨어를 뽑내고 있었고, 정말 앞으로의 미래는 단순 개발이 아니라 인공지능을 필두로한 하드웨어 융합형 서비스가 대세가 될것임을 느낄수 있었다.


아래는 각각 들은 세션별 요약 및 약간의 감상평이다.



1. Chromium Binding 기술을 활용하여 Node.js 네이티브 모듈 우아하게 연동하기


Javascript(node.js)에서 native module 을 바인딩 하는 방법에 대해서 분석 및 해결방법

자바스크립트에서 N-API 를 통해서 C++로 작성된 네이티브 모듈을 불러와 사용할수 있다.
다만, 둘 사이를 연결할때는 다양한 문제가 존재하고 그 방법이 매우 개발자 친화적이지 못하다.

크로미움에서 힌트를 얻어서 쉽게 네이티브 모듈을 연결해보자.








블링크 엔진 -> 돔 트리 생성 -> v8엔진에게 스크립트 분석 요청 -> 블링크 엔진으로 다시 돔 요청 -> 블링크 엔진은 v8엔진에게 돔을 던져줌
( 이사이에 연결해주는것이 v8 바인딩)

-> 다시 돌아와서 크로미움에서 블링크 엔진과 v8엔진과의 관계가 곧 node.js에서 v8엔진과 네이티브 모듈과의 관계와 같다는 점에 착안

-> WebIDL로 자동생성되는 v8바인딩을 이용하여 네이티브 모듈과 연결하여 개발자가 네이티브 모듈과 node.js 모듈개발에 집중할수 있게 하자는것.



2. 그런 REST API로 괜찮은가

  • REST API란
분산하이퍼미디어 시스템(웹)을 위한 아키택쳐 스타일을 따르는 API

But, 대부분 REST API를 표방하는 API는 REST 하지 못하다.





이중 대체로 유니폼 인터페이스를 충족하기 힘들다

Self-descriptive message 
- 메시지의 내용만으로 온전히 이해가 가능해야 한다.

HATEOAS
- 문서의 경로, 즉 이전 다음문서 연결된 문서에 대한 정보가 링크로서 제공되어야 한다.
html문서의 경우 a태그를 통해 링크 정보를 제공할수 있다.

이유는 API의 경우 기계-기계간의 통신을 목적으로 만들기 때문에 주로 json타입을 이용하기 때문에
지키기 어렵다.

API를 반드시 REST하게 만들 필요는 없다. 하지만 이왕 REST API를 만들기로 했다면 한번 제대로 만들어보는것이 어떨까.

ps. REST API를 지키지 않아도 무방하고 실제로 현업에선 API를 사용하는 개발자 간에 직간접적인 커뮤니케이션을 통해 해결한다.
하지만 점차 분산화 되는 환경과 IoT시스템의 확산은 사람이 개입하지 않는, 그리고 전체 시스템을 통제하지 못하는(어디서 얼마나 해당 api를 접근하고 영향을 미치는지)상황으로 변화할것으로 예상된다. 그렇다면 api를 REST하게 작성하여 사람의 개입이 최소화 되더라도 시스템이 유지되고 업데이트되는데 문제가 없게 하는데 의의가 있지 않을까 싶다.

3. 동네커피숍도 사이렌오더를 쓸수 있을까
발표자료 : https://www.slideshare.net/deview/123-80843907



PWA-Physical web을 비롯한 웹상에서 네이티브 앱의 기능을 제공하기 위해서 다양한 최신 기술들을 활용하여
일회성 서비스를 제공하고자 모색함.

ps. 구체적으로 서비스워커단을 어떻게 컨트롤하는지 웹페이먼트에서 각 pg사 모듈을 어떻게 하나의 인터페이스로 핸들링하는지에 대한
코드 공유가 없어 아쉬웠던 발표.(아마 시간의 제약으로 인해서 그런건 생략했으리라 생각)

4. 밑바닥부터 시작하는 360 뷰어
    
    1. 왜 360 뷰어
    2. 모션센서 처리의 두가지 문제
    3. 네 가지 언터렉션 fail
    4. 모션외 입력 처리




한마디로 겁나 어렵다.. 저런걸 이용하여 각 센서간의 위치를 보정해주고 기기의 위치와 현재 상태, 사용자의 상태(누워있는지, 앉아 있는지)따라 뷰어가 보여지는 것들을 세부적으로 전부 보정
-> 현재 서비스 중인 360도 뷰어 중에서 구글 스트리트뷰, 유튜브, 페이스북 중 페이스북과 함께 가장 많은 시나리오를 바탕으로 보정이 이루어 져있다.
 
대단.. 어떻게 저런것을 개발할까...



WRITTEN BY
너부리왕자

트랙백  0 , 댓글  0개가 달렸습니다.
secret

php의 의존성 관리도구인 composer를 아마존 리눅스에 설치하는 방법.


$ cd ~

$ sudo curl -sS https://getcomposer.org/installer | sudo php

$ sudo mv composer.phar /usr/local/bin/composer

$ sudo ln -s /usr/local/bin/composer /usr/bin/composer


이제 컴포저 사용~ 

$ sudo composer install


출처 : https://gist.github.com/asugai/6694502


ps. 세번째 명령어의 경우는 심볼릭 링크로 composer 을 쉽게 부르기 위한 명령어

'개발 > AWS' 카테고리의 다른 글

아마존 ec2에 컴포저 설치하기  (1) 2017.09.04

WRITTEN BY
너부리왕자

트랙백  0 , 댓글  1개가 달렸습니다.
  1. 비밀댓글입니다
secret