Monad 를 이해하는 방법
Monad 어떤 것을 설명하는 방법에는 몇 가지가 있습니다. 그것의 정의를 가지고 설명할 수도 있고 그것이 갖는 특성을 나열하며 설명할 수도 있습니다. Monad 를 설명할 때는 어떤 방법이 좋을까요? 사실 이 글을 쓰기 전 Monad 를 이해하기 위해 꽤 많은 설명들을 대하였습니다. bind :: m a -> (a -> m b) -> m b return :: a -> m a 이런 설명은 너무 단순하거나 수학적이어서 그 조건을 만족한 것이 어떤 기능을 할 수 있는지 상상하기가 어려웠습니다. Maybe is Monadic jQuery is Monadic Stream (in Java) is Monadic 이런 설명들은 그 사용 예들을 살피며 Monad 가 어떻게 기능하는 패턴이 있는지 대충 느끼게 해주지만 ..
AI/MLBackendTools
전체 읽기 →Component 와 Transclude
Web Component 이 글은 Web Component 에 대한 소개의 글은 아닙니다. 이를 위한 Custom Element 나 Shadow DOM 의 기술을 설명하는 글도 아닙니다. 이 글에서는 transclude 한 컴포넌트 디자인이 어떤 의미를 지닐 수 있는지를 논의해보고 싶습니다. 자바스크립트나 함수적인 프로그래밍에 익숙한 분들은 클로져나 람다 등에 익숙하실 것 같습니다. 제가 느끼기에 transclude 는 이런 기술들의 근본과 차이가 크지 않으며 이를 통한 활용이 좀 더 높은 추상화를 가능하게 도와주는 도구라고 생각합니다. Web 에서 가장 많이 사용되는 element 는 컴포넌트 일 것입니다. 이 요소는 매우 단순한 요소인데 어떻게 많이 쓰이면서도 요소가 제공하는 요구사항을 더 추가하거나..
FrontendTools
전체 읽기 →44BITS
2021-03-06 · 5년 이상 전
[키워드] 로케일(Locale)이란? 국가 및 언어 설정
로케일(Locale)은 사용자 인터페이스에서 사용되는 언어, 지역 설정, 출력 형식 등을 정의하는 문자열입니다. 유닉스, 리눅스, 맥OS 등 POSIX (호환) 시스템에서는 언어, 국가, 인코딩 방법의 조합으로된 문자열을 사용합니다.
BackendToolsUX/UI
전체 읽기 →44BITS
2021-03-03 · 5년 이상 전
[키워드] ruby-install이란? 루비 설치 유틸리티
ruby-install은 맥OS(macOS)와 리눅스(Linux)에서 프로그래밍 언어 Ruby의 다양한 배포판을 손쉽게 설치할 수 있도록 도와주는 도구입니다. Ruby, JRuby, Rubinius, TruffleRuby, mruby 등의 배포판을 지원하고 있으며, 원하는 버전을 원하는 위치에 설치할 수 있습니다. direnv, rbenv, RVM와...
BackendMobileTools
전체 읽기 →44BITS
2021-03-01 · 5년 이상 전
[키워드] 노션(Notion)이란? 올인원 업무용 협업 도구
노션(Notion)은 노션(Notion Labs)에서 개발하고 서비스하는 노트, 업무, 할 일 관리, 데이터베이스 등의 기능을 지원하는 온라인 올인원 협업 도구입니다. 노션 랩은 2016년 이반 자오와 시몬 라스트 등이 함께 설립하였으며, 2020년 4월 현재 2조 이상의 기업 가치를 평가 받으며 약 550억원의 투자를 유치하였습니다. 투자 시점에 사...
BackendToolsUX/UI
전체 읽기 →데브시스터즈
2021-02-28 · 5년 이상 전
사전예약 서버 프로파일링으로 서버 병목찾아 개선하기
artillery, linux perf로 node.js 서버 성능을 테스팅하여 flamegraph를 뽑아내고 서버의 병목구간을 찾아 개선한 경험을 소개합니다.
BackendTestingTools
전체 읽기 →자바의 HashMap을 효과적으로 사용하는 법
Java의 HashMap에 대하여 딱 이만큼만에서 소개했드시 HashMap은 유용한 자료형이다.저번시간에는 HashMap의 이론적인 방법을 소개했다면 이번에는 효과적으로 사용하는 방법을 알아보자.HashMap에서 모든 Key와 Value를 print하기HashMap에서 모든 Key와 Value를 print하는 다양한 방법이 있다. 하나씩 알아 보자.모든 key를 print 하는 방법Set keys = productPrice.keySet();//print all the keys for (String key : keys) { System.out.println(key); }// or keys.forEach(key -> System.out.println(key));좀 더 간결한 람다 표현식인 forEa..
BackendTools
전체 읽기 →44BITS
2021-02-20 · 5년 이상 전
[키워드] 하시코프(HashiCorp)란? 모던 인프라스트럭처 툴 개발
하시코프(HashiCorp)는 2012년 미셸 하시모토(Mitchell Hashimoto)와 아몬 데드거(Armon Dadgar)가 창업한 기업으로, 오픈소스로 인프라스트럭처와 관련돈 도구를 개발하고 이를 서비스로 제공하고 있습니다. 하시코프의 대표적인 제품으로는 테라폼(Terraform), 패커(Packer), 베이그런트(Vagrant), 볼트(Va...
DevOpsInfraTools
전체 읽기 →44BITS
2021-02-19 · 5년 이상 전
Apple M1 지원 도커 데스크탑 업데이트 - 이제 쿠버네티스 실행 가능
도커 데스크탑(Docker Desktop)은 윈도우나 맥에서 도커를 사용할 수 있게 도와주는 올인원 도구입니다. 2020년 말 애플에서 Arm 기반 M1 칩을 발표하면서 현재 도커 사에서는 M1 칩을 지원하는 도커 데스크탑을 개발중에 있습니다. 2월 17일 릴리스된 프리뷰 버전에서는 이제 쿠버네티스를 실행할 수 있게되었습니다.
DevOpsInfraTools
전체 읽기 →44BITS
2021-02-18 · 5년 이상 전
[키워드] iTerm2란? 맥OS의 터미널 대체 애플리케이션
iTerm2는 맥OS에서 공식 터미널 애플리케이션 대신 사용할 수 있는 가상 터미널 애플리케이션입니다. 화면 분할, 핫키 윈도우, 검색 및 하이라이트, 카피 모드, 붙여넣기 히스토리, 인스턴스 리플레이 등의 기능을 제공하고 있으며, 터미널보다 기능이 많아서 맥OS 사용자들의 사랑을 받고 있습니다. 최신 버전은 2020년 11월에 릴리스된 3.4 버전입니다.
BackendInfraTools
전체 읽기 →Redis를 통한 현재 접속 유저 파악하기
안녕하세요. Sell POD팀에서 판매자 대상으로 업무를 하고 있는 개발자 박명훈입니다. 오늘은 좀 더 기술적인 글을 작성해보려고 합니다. 최근 만든 서비스 중 하나는 지마켓과 옥션의 판매자 플랫픔 ESM+에서 접속 중인 사용자를 확인하고 다른 사용자를 로그아웃 시킬 수 있는 기능을 개발하였습니다. 다른 시니어 개발자 분 한분과 함께 개발을 했는데, 저는 서비스에서 사용하는 API을 주로 개발하였습니다. 이 기능을 통해서 현재 접속하고 있는 로그인 유저를 확인할 수 있고, 중복 로그인이 발생하였는지를 알 수 있고 이를 통해 다른 기능을 제공할 수 있습니다. 개발 고민최초 해당 업무를 받았을 때, 어떤 식으로 개발을 해야할 지 많은 고민을 했습니다. 당연히 로그인에 대한 로직이고, 해당 데이터 접근이 많고..
BackendDatabaseTools
전체 읽기 →Java Application 성능개선에 대해 알아보자 - Local Cache 편
시작하기 앞서...Application을 개발하다 보면 기능이 점점 복잡해지고 데이터가 쌓이면서, 처음과 다른 성능 저하가 발생하게 된다.서버의 사양을 올리거나, 서버의 댓수를 추가하면 전체적인 성능은 올라가지만 그만큼의 비용이 발생하게 된다. 자본이 무한하다면 상관없지만, 물리적 증설은 최후의 보루로 남겨두고 Application 적인 측면에서 성능개선을 꾀할 수 있는 두 가지 방법을 소개하도록 하겠다. Cache의 정의Cache란? - feat Wikipedia캐시(cache, 문화어: 캐쉬, 고속 완충기, 고속 완충 기억기)는컴퓨터 과학에서 데이터나 값을 미리 복사해 놓는 임시 장소를 가리킨다. 캐시는 캐시의 접근 시간에 비해 원래 데이터를 접근하는 시간이 오래 걸리는 경우나 값을 다시 계산하는 시..
BackendInfraTools
전체 읽기 →데브시스터즈
2021-02-16 · 5년 이상 전
CSS in JS 라이브러리에서 Typesafe하게 Theme 관리하기
CSS in JS 라이브러리를 사용할 때 React Context API를 사용해 Theme을 Typesafe하게 관리하는 방법을 소개합니다.
FrontendTools
전체 읽기 →44BITS
2021-02-14 · 5년 이상 전
GPG(GNU PG)를 이용해 git 커밋에 서명하는 방법
깃허브(GitHub)에서 커밋을 읽다보면 Verified 된 커밋을 발견하곤 합니다. Verified된 커밋을 만들려면 GPG 키로 커밋에 서명을 해야합니다. 이 글에서는 gpg를 사용해 GPG 키를 생성하고 깃 커밋에 서명하는 방법을 소개합니다.
SecurityTools
전체 읽기 →44BITS
2021-02-12 · 5년 이상 전
[뉴스] 온라인 협업 도구 노션(Notion) 장애와 DNS 문제 대응
노션(Notion)은 노션 랩(Notion Labs)에서 서비스하는 협업 도구입니다. 노션은 한국 시간 2021년 2월 12일 오후 10시부터 2시간의 이상의 DNS 장애를 겪었습니다. 이로 인해 전면적으로 서비스가 중단되었습니다. 이 글에서는 노션의 장애와 DNS 장애 대응에 대해서 소개합니다.
DevOpsInfraTools
전체 읽기 →Java의 HashMap에 대하여 딱 이만큼만
HashMap은 매우 유용한 자료형(?)이다. Java에서 HashMap과 HashTable의 비교하는 글은 인터넷에 많이 있으므로 따로 정리하지 않겠다. HashMap은 key 와 value로 구성되는데 Map이라는 자료구조를 사용한다. Map은 key와 value을 연결하는 개념의 자료구조이다. 아래과 같은 식이다. "korea" --> "seoul" "japan" --> "tokyo" Java에서 Map은 interface이다. 즉 먼가 내부적으로 구현되어있는 것이 아니고 역활과 기능을 정리한 개념이라는 뜻이다. https://docs.oracle.com/javase/8/docs/api/java/util/Map.html Map은 하나의 key에 하나의 value가 mapping된다. 그외에도 여러가..
BackendDatabaseTools
전체 읽기 →앱 개발파트의 업무프로세스 수립기
올-하! 💚 안녕하세요. 여러분! 올리브영에서 모바일 앱 개발을 담당하고있는 개발요정입니다. 오늘은 올리브영 앱을 개발하는 앱개발 파트의 업무 프로세스 수립 및 팩토링 과정을 이야기해보려고 합니다. 올리브영앱은 201…
BackendMobileTools
전체 읽기 →데브시스터즈
2020-12-04 · 5년 이상 전
데이터 분석 라이브러리 개발기 (2) - 통합 테스팅과 문서화를 동시에 잡는 방법
MinIO, pytest, doctest, Spinx 등을 조합한 통합 테스팅과 문서화 사례를 소개합니다.
TestingTools
전체 읽기 →뱅크샐러드
2020-12-03 · 5년 이상 전
Banksalad Product Language는 어떻게 디자인되었나요?
안녕하세요. 뱅크샐러드 Product Language 팀 김성민입니다. 뱅크샐러드에 합류 한 후부터 지금까지 주변 디자이너분들에게 Product Language에 관한 질문을 많이 받아 왔는데요, 아직도 국내에서는 Product Language…
CultureToolsUX/UI
전체 읽기 →데브시스터즈
2020-11-27 · 5년 이상 전
데이터 분석 라이브러리 개발기 (1)
데이터 분석가들이 PySpark를 통하여 여러가지 데이터를 쉽게 분석할 수 있도록 편의를 제공하는 데이터 분석 라이브러리인 DevPlay Analytics 라이브러리를 만든 과정을 소개합니다.
AI/MLBackendTools
전체 읽기 →