프론트엔드 에러 로그 시스템 Sentry 적용기
안녕하세요. 프론트엔드 개발을 하고 있는 gyu입니다. 어반베이스에서는 현재 운영되고 있는 서비스들의 화면과 기능을 개발하고, API 적용, 3D SDK 개발 등의 업무를 진행하고 있습니다. 서비스를 개발하고 운영하면서 꼭 필요했던 클라이언트의 에러 로그 트래킹 시스템 도입기를 정리해보았습니다. 클라이언트 사이드 에러 로그 트래킹이 필요한 이유? SPA(Single Page Application) + CSR(Client Side Renderin
[키워드] ruby-install이란? 루비 설치 유틸리티
ruby-install은 맥OS(macOS)와 리눅스(Linux)에서 프로그래밍 언어 Ruby의 다양한 배포판을 손쉽게 설치할 수 있도록 도와주는 도구입니다. Ruby, JRuby, Rubinius, TruffleRuby, mruby 등의 배포판을 지원하고 있으며, 원하는 버전을 원하는 위치에 설치할 수 있습니다. direnv, rbenv, RVM와...
[키워드] 노션(Notion)이란? 올인원 업무용 협업 도구
노션(Notion)은 노션(Notion Labs)에서 개발하고 서비스하는 노트, 업무, 할 일 관리, 데이터베이스 등의 기능을 지원하는 온라인 올인원 협업 도구입니다. 노션 랩은 2016년 이반 자오와 시몬 라스트 등이 함께 설립하였으며, 2020년 4월 현재 2조 이상의 기업 가치를 평가 받으며 약 550억원의 투자를 유치하였습니다. 투자 시점에 사...
사전예약 서버 프로파일링으로 서버 병목찾아 개선하기
artillery, linux perf로 node.js 서버 성능을 테스팅하여 flamegraph를 뽑아내고 서버의 병목구간을 찾아 개선한 경험을 소개합니다.
자바의 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..
hardhat과 typechain을 사용한 컨트랙트 개발
[키워드] 하시코프(HashiCorp)란? 모던 인프라스트럭처 툴 개발
하시코프(HashiCorp)는 2012년 미셸 하시모토(Mitchell Hashimoto)와 아몬 데드거(Armon Dadgar)가 창업한 기업으로, 오픈소스로 인프라스트럭처와 관련돈 도구를 개발하고 이를 서비스로 제공하고 있습니다. 하시코프의 대표적인 제품으로는 테라폼(Terraform), 패커(Packer), 베이그런트(Vagrant), 볼트(Va...
Apple M1 지원 도커 데스크탑 업데이트 - 이제 쿠버네티스 실행 가능
도커 데스크탑(Docker Desktop)은 윈도우나 맥에서 도커를 사용할 수 있게 도와주는 올인원 도구입니다. 2020년 말 애플에서 Arm 기반 M1 칩을 발표하면서 현재 도커 사에서는 M1 칩을 지원하는 도커 데스크탑을 개발중에 있습니다. 2월 17일 릴리스된 프리뷰 버전에서는 이제 쿠버네티스를 실행할 수 있게되었습니다.
[키워드] iTerm2란? 맥OS의 터미널 대체 애플리케이션
iTerm2는 맥OS에서 공식 터미널 애플리케이션 대신 사용할 수 있는 가상 터미널 애플리케이션입니다. 화면 분할, 핫키 윈도우, 검색 및 하이라이트, 카피 모드, 붙여넣기 히스토리, 인스턴스 리플레이 등의 기능을 제공하고 있으며, 터미널보다 기능이 많아서 맥OS 사용자들의 사랑을 받고 있습니다. 최신 버전은 2020년 11월에 릴리스된 3.4 버전입니다.
Redis를 통한 현재 접속 유저 파악하기
안녕하세요. Sell POD팀에서 판매자 대상으로 업무를 하고 있는 개발자 박명훈입니다. 오늘은 좀 더 기술적인 글을 작성해보려고 합니다. 최근 만든 서비스 중 하나는 지마켓과 옥션의 판매자 플랫픔 ESM+에서 접속 중인 사용자를 확인하고 다른 사용자를 로그아웃 시킬 수 있는 기능을 개발하였습니다. 다른 시니어 개발자 분 한분과 함께 개발을 했는데, 저는 서비스에서 사용하는 API을 주로 개발하였습니다. 이 기능을 통해서 현재 접속하고 있는 로그인 유저를 확인할 수 있고, 중복 로그인이 발생하였는지를 알 수 있고 이를 통해 다른 기능을 제공할 수 있습니다. 개발 고민최초 해당 업무를 받았을 때, 어떤 식으로 개발을 해야할 지 많은 고민을 했습니다. 당연히 로그인에 대한 로직이고, 해당 데이터 접근이 많고..
Java Application 성능개선에 대해 알아보자 - Local Cache 편
시작하기 앞서...Application을 개발하다 보면 기능이 점점 복잡해지고 데이터가 쌓이면서, 처음과 다른 성능 저하가 발생하게 된다.서버의 사양을 올리거나, 서버의 댓수를 추가하면 전체적인 성능은 올라가지만 그만큼의 비용이 발생하게 된다. 자본이 무한하다면 상관없지만, 물리적 증설은 최후의 보루로 남겨두고 Application 적인 측면에서 성능개선을 꾀할 수 있는 두 가지 방법을 소개하도록 하겠다. Cache의 정의Cache란? - feat Wikipedia캐시(cache, 문화어: 캐쉬, 고속 완충기, 고속 완충 기억기)는컴퓨터 과학에서 데이터나 값을 미리 복사해 놓는 임시 장소를 가리킨다. 캐시는 캐시의 접근 시간에 비해 원래 데이터를 접근하는 시간이 오래 걸리는 경우나 값을 다시 계산하는 시..
JEST를 이용한 SW Test 활용해보기
CSS in JS 라이브러리에서 Typesafe하게 Theme 관리하기
CSS in JS 라이브러리를 사용할 때 React Context API를 사용해 Theme을 Typesafe하게 관리하는 방법을 소개합니다.
GPG(GNU PG)를 이용해 git 커밋에 서명하는 방법
깃허브(GitHub)에서 커밋을 읽다보면 Verified 된 커밋을 발견하곤 합니다. Verified된 커밋을 만들려면 GPG 키로 커밋에 서명을 해야합니다. 이 글에서는 gpg를 사용해 GPG 키를 생성하고 깃 커밋에 서명하는 방법을 소개합니다.
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된다. 그외에도 여러가..
Quartz Scheduler Admin 고도화 - 파일럿 프로젝트
개별 서비스에 직접적인 영향은 없으나 서비스 유지보수에 도움이 되는 Quartz Scheduler Admin 에 대한 고도화 작업을 진행함으로서 실무 투입전 포털개발팀에서 사용하는 기술 스펙 적응 및 업무 프로세스 등을 익히고 파일럿 프로젝트 이후에도 계속 사용할 수 있는 산출물을 남김으로서 팀에 기여 하고자 하였습니다. Intro Quartz Scheduler Admin 이란? Quartz Job Scheduler 는 DB 기반으로 스케줄러
앱 개발파트의 업무프로세스 수립기
올-하! 💚 안녕하세요. 여러분! 올리브영에서 모바일 앱 개발을 담당하고있는 개발요정입니다. 오늘은 올리브영 앱을 개발하는 앱개발 파트의 업무 프로세스 수립 및 팩토링 과정을 이야기해보려고 합니다. 올리브영앱은 201…
익숙해지면 좋을 깃(git) 명령어 모음집
안녕하세요. API팀 김세현입니다. 어반베이스에서는 Server Side 설계, API 개발을 담당하고 있습니다. git을 항상 사용하고 있지만 스스로 기본적인 이해가 부족한 것 같아, 공부하는 마음으로 주요 명령어를 한번 정리해보았습니다. 모든 명령어 뒤에 --help 옵션을 사용하여 활용 가능한 옵션을 알 수 있습니다. git init git 초기화. git으로 버전관리를 할 경로에서 사용합니다. .git 폴더가 생성 되며 아래와 같은 구조