Giter Club home page Giter Club logo

ebvi / dandy Goto Github PK

View Code? Open in Web Editor NEW

This project forked from fallroot/dandy

40.0 40.0 4.0 752 KB

“단디”는 부산대학교 인공지능연구실과 (주)나라인포테크가 공동으로 만들어 http://speller.cs.pusan.ac.kr 페이지에서 제공하는 “한국어 맞춤법/문법 검사기”를 맥에서 쉽게 사용할 수 있도록 해 주는 도구입니다. 맥의 오토메이터를 이용해서 맥 서비스 형태로 제작했습니다.

Home Page: http://fallroot.github.com/dandy/

Shell 29.24% CSS 21.47% JavaScript 23.01% Ruby 18.39% HTML 7.89%

dandy's Introduction

경력

  • 웹 에이전시 (3년)
  • 대기업 운영 쇼핑몰 솔루션 개발 (5년)
  • 회원 수 30만의 모바일 앱 서비스 개발 (2년)
  • 프리랜서로 여기저기 (3년)
  • 코파운더로 네트워크 보안솔루션 개발사에 합류 (6년+)

디자인, 퍼블리싱, 프론트엔드, 백엔드, 설계, 운영, 트러블슈팅, QC, 문서작성, 프로세스 개선, 테스트, 브랜드 마케팅 모두 대응할 수 있습니다. 대체로 다 잘합니다. 스스로 자원해서 많은 포지션을 담당하고 리딩하고 협력한 경험이 있습니다.

학생 시절

  • 어릴 때부터 코딩하는 게 취미였고, PC Tools로 데이터 파일 뜯고, debug로 역어셈해서 리버스 엔지니어링하거나 게임위자드로 메모리 열어서 고쳐보고, 취미로 게임을 만들곤 했습니다.
  • 게임 개발자가 되고 싶어서, 중2 때부터 DirectX로 게임을 만들었고, Game PROGRAMMING Gems와 Effective C++ 등을 감명 깊게 읽었습니다.
  • 대학 시절엔 교수가 자꾸 정부 과제, 기업 산학연 같은 프로젝트 따와서 시켰는데, 그러한 것들은 대체로 웹 기반(PHP/Java)이었고, SI 프로젝트를 무수하게 굴러다녔습니다.
  • 웹 서비스만 계속 만들다 보니, 어찌저찌 취업도 웹 서비스로 하게 되었습니다.

웹 에이전시 시절

  • 서울시 모 기관 프로젝트를 개발부터 디자인까지 혼자서 진행했습니다.
  • 웹 표준, 웹 접근성은 물론, 서울시에서 요구하는 보안 지침 등 모두 준수하였습니다.
  • 각종 핵(CSS핵, 언더스코어핵 등)을 사용하여, IE6는 물론, 당시 대부분 브라우저에서 접근할 수 있도록 만들었습니다.
  • 당시엔 Java 초창기 때라서 Struts를 썼는데, 마개조해서 템플릿 엔진을 끼얹었습니다. 수천 개의 별도 서비스들을 템플릿으로 생성하고 관리할 수 있게 만들었습니다.
  • 또한, 전임자가 퇴사하면서 하루에 2천만 건 정도 쌓이는 주식 정보 제공 서비스를 물려받았는데, 정적 페이지, 캐시, 비동기 호출 등을 사용하여 성능을 1,000% 이상 향상시켰습니다. 물론 모두 혼자 진행했습니다.

쇼핑몰 개발 시절

  • 상품 수십만 개, 물류 시스템 연동, 수십만의 회원 수, 일일 수천만 건의 로그가 쌓이는 대형 쇼핑몰을 개발했습니다.
  • Spring 프레임워크를 사용하여 3명의 개발자가 함께 구현하였으나, 설계와 중요한 로직은 제가 담당했습니다.
  • 쇼핑몰 특유의 복잡한 모델링과 미친 비즈니스 로직(결제, 취소, 부분 취소, 정산, 통합 SCM, 외부 연동)을 설계, 구현하였습니다. 모델링은 좀 한다고 자신합니다.
  • 쇼핑몰의 마일리지 및 쿠폰 시스템을 부분 취소하는 비즈니스 복잡도는 상상을 초월하며, 지금 다시 하라고 하면 못 할 것 같습니다. 해보신 분들은 잘 아실 겁니다. 전월 정산까지 연결해야 하니까요. (안 되는 쇼핑몰들이 참 많죠?)
  • 셀 수도 없는 다양한 장애를 경험하고 해결하였습니다. (커넥션 장애, 디스크 장애, DB 트랜잭션, 락킹, ...)
  • 갑질과 정치질 사이에서 시달리다가 임금체납까지 당하는 등, 인생의 쓴 맛을 많이 맛보았습니다.

모바일 앱 개발 시절

  • 1년간 앱 빌더 솔루션을 혼자 만들었습니다. 코드 한 줄 없이 클릭만 하면, 누구나 아이폰/안드로이드 앱을 만들 수 있는 그런 솔루션입니다.
  • Phonegap을 씌워서 만들었는데, IE에서 벗어나게 되니까 당시 최신 프론트엔드 기법을 많이 녹여 넣었습니다. 그런데 갤럭시 S2의 브라우저에서 워낙 문제가 많아서 애를 좀 먹었습니다.
  • 페이스북 PaaS를 써서 DB 없는 구성으로 만들었고, Private/Public 푸시 알람도 구현/연동하였습니다.
  • 빌드 시스템을 자동화하여서, 빌드하고 사이닝하고 업로드해서 마켓 플레이스에 등록하는 것까지 전부 자동화시켰습니다.
  • 이때의 경험으로, 앱 개발 외주도 좀 했는데, 그중에는 회원 수가 30만 명이 넘는 국민 앱도 있었습니다. 물론 혼자 만들었습니다.

프리랜서 시절

  • 여기저기 불려 다니면서 다양한 문제를 해결했습니다.
  • 돈도 많이 떼먹히고, 이유 없이 욕먹고, 암흑기 시절이었습니다.
  • 주로 단기 SI를 뛰었고, 대체로 대용량 데이터베이스 관련 업무를 했습니다.

네트워크 보안 솔루션 개발 (현재)

  • 지인들과 스타트업을 창업했고, 창립 멤버(코파운더)로 합류하였습니다.
  • 모든 네트워크 트래픽을 저장하고, DB화시켜서 분석, 모니터링할 수 있는 솔루션을 개발했는데, 멤버 중에 프론트엔드를 제일 잘 해서 자연스럽게 UI 개발자(+Product Designer)로 정착했습니다.
  • SVG나 Canvas(Three.js)를 이용하여, 평면 또는 3차원으로 수억 개의 데이터를 그리고, 관계를 만들어 시각화합니다. 메모리 부족이나 성능 문제를 많이 해결해 보았습니다.
  • 스타트업 특유의 빠른 의사 결정과 뒤엎는 문화 때문에, 그날 만들어서 그날 배포하고, 다음날 뒤엎고 새로 만드는 데 익숙합니다. 엄청나게 빨리 잘 만들 수 있습니다.
  • 팀원이 증가함에 따라 개발 프로세스를 정립하고 개선하며, 커뮤니케이션과 팀원 간의 관계의 경험을 설계하는 일을 수행했습니다.

취미

  • 독서: 1년에 50권 정도의 책을 읽습니다. 소설, 비소설, 개발서를 가리지 않고 다독합니다.
  • 영화: 현재까지 약 1,200편 정도의 영화를 감상했습니다. 특별히 가리는 장르는 없습니다. 전기톱 나오는 B급 좀비물 좋아합니다.
  • 게임: 30년 넘게 수천가지 게임을 해왔으며, 철권7은 보라단입니다. 대학 시절엔 국내 최대 모 게임 동호회에서 운영진으로 활동했었습니다. 각종 행사를 기획하고, 운영해본 경험이 있습니다.
  • 사진: 15년 넘게 사진을 찍었습니다. 한국관광공사에서 제 사진을 사용하기도 했습니다. 현재 보유중인 기종은 Sony A7M3이고, 가장 좋아하는 렌즈는 F1.2 50mm GM입니다. 취미로 영상도 만듭니다.
  • 그림: 20년 가까이 그림을 그렸습니다. 만화 동호회에서 활동한 경험 있으며, 동인지 제작, 화보집 제작 배포 경험 있습니다.
  • 요리: 스콘, 레몬치즈 케이크부터 수플레, 빠에야, 마파두부, 갈비찜 등 300여개의 요리를 만들 수 있습니다. 이노신산과 글루탐산 정도는 구분합니다. 맛있는 거 좋아합니다.
  • 커피: 커피 많이 좋아합니다. 커피 관련으로만 기천만 원 이상 지출했습니다. 집에서 사용하는 커피머신은 듀얼 보일러가 달린 BES920입니다. 만약 지금 다시 살 수 있다면, 엘로치오 자르나 마누스로 갔겠죠.
  • 여행: 코로나 19 이후로는 못 갔지만, 1년에 2번 정도는 여행을 갔습니다. 여행 이야기만 몇 시간을 할 수 있습니다. 다녀온 곳 중에 가장 좋았던 데는 바르셀로나입니다.

언어

  • 한국어: 원어민 수준으로 구사 가능합니다. 맥락 파악 잘 합니다.
  • 영어: 제품 소개는 물론, 비즈니스 서바이벌 회화 가능합니다. 기술 문서를 읽고, 메일 답장할 수 있습니다.
  • 일어: 부전공이 일어일문학이고, JLPT 1급 있습니다. 비즈니스 회화는 물론 시연 발표 가능합니다.
  • 스페인어: 2살 수준의 스페인어 구사 가능합니다.

Tech Stack

  • HTML, CSS: 브라우저 호환성, 웹 접근성은 IE6부터 해왔고, 그 덕택에 매우 방어적(Bulletproof)으로 작성합니다. 우아한 퇴보는 믿지 않지만, 최대한 맞춰봅니다. 기본적으로 모든 요소를 시맨틱하게 다루려고 하지만, 꼭 그렇게 보지만은 않습니다.
  • jQuery: jQuery가 나쁜 점은 80kb를 낭비한다는 것뿐이고, 그 외 아주 많은 문제를 해결해줍니다. 래핑을 잘하면 코드 품질도 좋아집니다.
  • React: 5년 넘게 코드를 작성하고 있고, 못해도 1천 개는 넘는 컴포넌트를 만들어본 것 같습니다. 많이 만들다 보니까 잘 설명하기는 어렵지만, 어떻게 만들어야겠다는 게 그냥 그려집니다.
  • Three.js, D3.js: canvas, SVG로 차트를 만들 수 있습니다. Force-directed Graph 그려봤고, 렌더러, 매시 활용해서 다양한 효과의 연출을 만들 수 있습니다. 간단한 게임도 만들 수 있습니다.
  • Babel: 환경 설정은 물론, 다양한 plugins 써보고 문제도 해결해봤습니다. Gulp의 Task로 붙여서, 미리 빌드해놓고 성능을 개선한다던가, 풀 빌드 시에 중복되는 비즈니스를 제거해서 속도를 올린다던가 여러 가지를 해봤습니다.
  • ASP.net, PHP: ^^
  • Java: 꽤 오래 프로그래밍하기도 했고, 멀티스레드, 비동기 프로그래밍 경험 있습니다. 웹 서비스뿐만 아니라, 데몬, 연동 프로그램 등 SI에서 굴러다녔었습니다. 코드 없이 jar 파일만 달랑 받았는데, 역컴파일 분석해서 뜯어고치고 그런 거 다들 한두 번 경험하셨을 거잖아요.
  • Spring: 단순히 스프링 프레임워크 사용법뿐만 아니라, 근간 철학(J2EE 설계와 개발) 및 디자인 패턴에 대해서도 이야기할 수 있습니다. 좀 관계없지만, 켄트 벡과 TDD에 환장했었던 적이 있었습니다.
  • Oracle DB: 대용량 데이터베이스로 좀 구르고 굴렀습니다. 힌트, 실행 계획과 QT에 대해서 강의 가능합니다.
  • PostgreSQL: Timescale이나 Trigram 사용 경험 있습니다.
  • Git: Git-flow 기반 명령어 사용할 수 있고, Cherry-pick이나 rebase, merge 잘하고, 충돌 나거나 날려 먹은 거 reflog 복원도 할 수 있습니다.

코딩 철학

  • 가독성이 최선입니다.
  • 성능은 그 자체로 기능입니다.
  • 완벽한 설계를 믿지 않습니다.
  • 무조건 빨리 만들어야 합니다.
  • 시험판을 만들고 그 경험으로 작은 프로덕트를 만듭니다. 작은 보폭으로 걷습니다.

dandy's People

Contributors

ebvi avatar fallroot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.