마켓컬리
2021-05-10 · 약 5년 전
DDD와 MSA 기반으로 좋은 서비스 개발하기
컬리의 서비스 개발 원칙
한국 기업 기술 블로그의 Backend 관련 글 848개
마켓컬리
2021-05-10 · 약 5년 전
컬리의 서비스 개발 원칙
지마켓
2021-05-07 · 약 5년 전
After GC, Post GC Memory는 프로그래밍에 꽤 중요하고 기술적인 부분입니다. 만약 독자께서 malloc, calloc, free 등에 어색함이 없다면 더욱 Memory를 다루는 것에 기술적인 특징들을 공감하실 수도 있겠습니다. 그래서 또 Memory를 다룬다는 점은 꽤 신중하고 기교가 높아야 했으며 문제가 복잡해질수록 이 과정에서의 버그나 Side-effect의 해결이 쉽지 않습니다. 이런 고통(?)에 대한 공감은 어렵지 않은 일이죠. 그래서 등장한 것이 바로 Garbage Collection 입니다. Garbage Collection은 무려 1959년에 John McCarthy에 의해 Lisp에서 등장하는 역사를 가지고 있습니다. 벗어나는 이야기지만 Robert C. Martin은 Th..
지마켓
2021-04-30 · 약 5년 전
변경에 강한 패턴 생뚱맞은 도입이지만 좋은 코드란 무엇일까요? 여러 설명들을 들 수 있지만 그중 꽤 많이 거론되는 덕목은 변경하기 용이한 코드입니다. 코드의 작성 시점에서 변경은 미래에 일어날 일입니다. 지금 그 요구를 다 안다면 기다릴 것 없이 코드에 반영하면 되지만 그렇지 않기 때문에 변경이 용이할 수 있다는 점은 쉽지는 않습니다. 한편으로는 그렇기에 코드를 변경하는 케이스들을 일반화하여 코드를 작성하는 시점에 어떤 변경 패턴을 대비하곤 합니다. 그리고 그런 방법 중에 Middleware 패턴을 코드 수준에서 이용해 보려고 합니다. 코드 흐름과 변경 먼저, 코드를 변경하는 패턴 중에는 코드가 진행하는 흐름에 대한 패턴을 짧게 살펴볼까 합니다. 대표적으로 then 의 의미를 사용하는 방식들을 찾아볼 수..
올리브영
2021-04-26 · 약 5년 전
올-하! 💚 안녕하세요! 신입사원 복스뮤직을 듣는 럭셔Lee…
지마켓
2021-04-23 · 약 5년 전
위상정렬 위상정렬 은 부분 순서를 갖는 집합을 정렬하는 방법입니다. 우리에게 익숙한 순서가 부여되는 집합인 전순서 집합에는 자연수, 실수 등이 있습니다. 이들은 임의의 원소를 두 개 꺼내면 둘 사이의 순서를 언제나 결정할 수 있는 게 특징입니다. 이와 다르게 모든 임의의 두 원소 사이에 순서를 결정하지 못하는 집합도 있습니다. 하지만 뭔가 집합에 포함된 순서가 있으면서도 말이죠. 알쏭달쏭 하지만 그런 문제는 일상에 많습니다. 흔히 드는 예시는 수강신청입니다. 수강하려는 과목들 사이에는 딱히 순서가 없지만, 어떤 과목에는 선수과목이 있곤 합니다. 이런 경우 부분적으로 발생하는 순서를 고려해서 수강 계획을 짜야하죠. 이처럼 작업관리에서는 흔하게 부분 순서를 갖는 문제를 쉽게 마주합니다. 이를 정렬할 수 있는..
44BITS
2021-04-18 · 약 5년 전
IDaaS 서비스 옥타(Okta)에서는 Oktane 21 Virtual 컨퍼런스에서 MAU 15,000명까지 무료로로 인증 기능을 임베딩해서 사용할 수 있는 Okta Starter Developer Edition을 공개했습니다. Okta Developer 서비스를 사용하면 인증 기능을 앱에 임베딩할 수 있으며, Okta 서비스의 적응형 MFA, API...
44BITS
2021-04-16 · 약 5년 전
토스 서비스의 개발사 비바리퍼블리카에서는 개발자 컨퍼런스 Slash 21 컨퍼런스 사이트를 오픈하고, 사전 예약 신청을 받고 있습니다. 이번 컨퍼런스는 4월 28일부터 30일까지 3일 동안 열리며, SRE, 모니터링, 테스트, 프론트엔드, 자바스크립트(JavaScript), 데이터베이스, 슬랙봇 등을 주제로 3일간 총 19개 세션이 예정되어있습니다.
지마켓
2021-04-16 · 약 5년 전
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 가 어떻게 기능하는 패턴이 있는지 대충 느끼게 해주지만 ..
44BITS
2021-03-06 · 5년 이상 전
로케일(Locale)은 사용자 인터페이스에서 사용되는 언어, 지역 설정, 출력 형식 등을 정의하는 문자열입니다. 유닉스, 리눅스, 맥OS 등 POSIX (호환) 시스템에서는 언어, 국가, 인코딩 방법의 조합으로된 문자열을 사용합니다.
44BITS
2021-03-03 · 5년 이상 전
ruby-install은 맥OS(macOS)와 리눅스(Linux)에서 프로그래밍 언어 Ruby의 다양한 배포판을 손쉽게 설치할 수 있도록 도와주는 도구입니다. Ruby, JRuby, Rubinius, TruffleRuby, mruby 등의 배포판을 지원하고 있으며, 원하는 버전을 원하는 위치에 설치할 수 있습니다. direnv, rbenv, RVM와...
44BITS
2021-03-01 · 5년 이상 전
노션(Notion)은 노션(Notion Labs)에서 개발하고 서비스하는 노트, 업무, 할 일 관리, 데이터베이스 등의 기능을 지원하는 온라인 올인원 협업 도구입니다. 노션 랩은 2016년 이반 자오와 시몬 라스트 등이 함께 설립하였으며, 2020년 4월 현재 2조 이상의 기업 가치를 평가 받으며 약 550억원의 투자를 유치하였습니다. 투자 시점에 사...
데브시스터즈
2021-02-28 · 5년 이상 전
artillery, linux perf로 node.js 서버 성능을 테스팅하여 flamegraph를 뽑아내고 서버의 병목구간을 찾아 개선한 경험을 소개합니다.
지마켓
2021-02-26 · 5년 이상 전
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..
44BITS
2021-02-18 · 5년 이상 전
iTerm2는 맥OS에서 공식 터미널 애플리케이션 대신 사용할 수 있는 가상 터미널 애플리케이션입니다. 화면 분할, 핫키 윈도우, 검색 및 하이라이트, 카피 모드, 붙여넣기 히스토리, 인스턴스 리플레이 등의 기능을 제공하고 있으며, 터미널보다 기능이 많아서 맥OS 사용자들의 사랑을 받고 있습니다. 최신 버전은 2020년 11월에 릴리스된 3.4 버전입니다.
지마켓
2021-02-18 · 5년 이상 전
안녕하세요. Sell POD팀에서 판매자 대상으로 업무를 하고 있는 개발자 박명훈입니다. 오늘은 좀 더 기술적인 글을 작성해보려고 합니다. 최근 만든 서비스 중 하나는 지마켓과 옥션의 판매자 플랫픔 ESM+에서 접속 중인 사용자를 확인하고 다른 사용자를 로그아웃 시킬 수 있는 기능을 개발하였습니다. 다른 시니어 개발자 분 한분과 함께 개발을 했는데, 저는 서비스에서 사용하는 API을 주로 개발하였습니다. 이 기능을 통해서 현재 접속하고 있는 로그인 유저를 확인할 수 있고, 중복 로그인이 발생하였는지를 알 수 있고 이를 통해 다른 기능을 제공할 수 있습니다. 개발 고민최초 해당 업무를 받았을 때, 어떤 식으로 개발을 해야할 지 많은 고민을 했습니다. 당연히 로그인에 대한 로직이고, 해당 데이터 접근이 많고..
지마켓
2021-02-17 · 5년 이상 전
시작하기 앞서...Application을 개발하다 보면 기능이 점점 복잡해지고 데이터가 쌓이면서, 처음과 다른 성능 저하가 발생하게 된다.서버의 사양을 올리거나, 서버의 댓수를 추가하면 전체적인 성능은 올라가지만 그만큼의 비용이 발생하게 된다. 자본이 무한하다면 상관없지만, 물리적 증설은 최후의 보루로 남겨두고 Application 적인 측면에서 성능개선을 꾀할 수 있는 두 가지 방법을 소개하도록 하겠다. Cache의 정의Cache란? - feat Wikipedia캐시(cache, 문화어: 캐쉬, 고속 완충기, 고속 완충 기억기)는컴퓨터 과학에서 데이터나 값을 미리 복사해 놓는 임시 장소를 가리킨다. 캐시는 캐시의 접근 시간에 비해 원래 데이터를 접근하는 시간이 오래 걸리는 경우나 값을 다시 계산하는 시..
뱅크샐러드
2021-02-15 · 5년 이상 전
안녕하세요. 뱅크샐러드 보험 스쿼드의 테크 리드(Tech Lead…
44BITS
2021-02-12 · 5년 이상 전
리눅스 네임스페이스는 프로세스를 실행할 때 시스템의 리소스를 분리해서 실행할 수 있도록 도와주는 기능입니다. 한 시스템의 프로세스들은 기본적으로 시스템의 리소스들을 공유해서 실행됩니다. 리눅스 네임스페이스를 사용하면 PID, 네트워크, UTS, 마운트, Cgroup 등의 시스템 리소스를 격리해서 프로세스를 실행할 수 있습니다.
44BITS
2021-02-11 · 5년 이상 전
veth는 리눅스의 가상 이더넷 인터페이스입니다. veth는 쌍으로 만들어지며 네트워크 구성에 활용할 수 있으며, ip 명령어를 이용해 생성하거나 조작하는 것이 가능합니다.
지마켓
2021-01-25 · 5년 이상 전
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된다. 그외에도 여러가..
페이지 41 / 43 (총 848개)