기본정보

  • 웹 프론트엔드
    개발자 입니다

간단이력

  • 건국대 컴공
    - 2015.03 ~ 2017.02
    - 편입하여 3~4학년 과정을 이수하였습니다
  • 파워보이스
    - 2017.01 ~ 2017.12
    - C++ & 파이썬으로 자연어처리(NLP) 업무 수행
  • 해바라기소프트
    - 2018.05 ~ 2018.11
    - 웹개발입문. 스프링 + 제이쿼리로 사이트 구현
  • 개인사업
    - 2019.01 ~ 현재
    - 개인사업 하면서 남는 시간에 리액트 위주로 웹개발을 독학하였습니다

핵심역량

  • next.js또는 express 기반의 웹개발을 수행합니다
  • 프로젝트 생성에서 배포 및 도메인 연결까지 개발 전과정을 혼자 진행할 수 있습니다
  • Next.js의 API Routes를 통하여 MongoDB의 CRUD가 가능합니다
  • MongoDB AtlasSupabase기반의 DB 생성 및 관리가 가능합니다
  • 함수형 컴포넌트를 이용하여 SoC원칙에 입각하여 리액트 컴포넌트를 개발합니다
  • ES2021까지 ECMA 스펙에 대한 거의 모든것을 이해합니다 (promise, generator, async 등)
  • jQuery 없이 querySelector및 HTMLElement등의 웹표준 API만으로 엘리먼트를 조작하는데 불편함이 없습니다
  • 웹브라우저의 렌더링 프로세스 및 js 런타임 환경에 입각하여 코드의 실행순서를 이해할 수 있습니다
  • SCSS & CSS Module 기반의 스타일링을 지향합니다
  • 디바이스에 따라서 가변적으로 표현되는 반응형 웹 디자인 경험이 존재합니다
  • 영문독해, 쓰기, 리스닝 가능하며 공식문서 리딩을 지향합니다. 인터넷 검색만으로 해결이 불가능한 문제 발생시 스택오버플로우 및 개발 커뮤니티에 영문으로 커뮤니케이션하여 문제해결한 건이 다수 존재합니다
  • flutter기반의 모바일 앱을 개발하여 플레이스토어에 출시한 경력이 존재합니다

경력

개발자 커뮤니티 사이트 구현

(2021.01 ~ )

(1인 프로젝트)

개발 커뮤니티에서 읽을만한 글을 한데모아 게시판 형태로 보여주는 웹사이트입니다

  • 참여도 : 100%
  • URL : https://devkr.info
  • 타입스크립트와 SCSS 기반으로 구현하였습니다
  • 헤드리스 크롬 라이브러리인 puppeteer로 reddit, okky, dcinside의 글을 스크래핑하여 DB에 저장하였습니다
  • 회원가입 및 로그인 페이지를 구현했습니다
  • MongoDB Realm 및 GraphQL기반의 데이터 요청으로 게시판을 구현했습니다
  • 게시물 검색기능을 구현했습니다
  • 자유게시판의 글등록, 삭제, 댓글쓰기 및 스크롤에 반응하는 글 로딩하기 기능을 구현했습니다
  • 모바일 및 데스크탑 페이지를 별도로 만들지 않고 디바이스에 맞춰 동적으로 변하는 반응형 웹으로 구현했습니다
  • 서버리스 기반의 AWS Lambda & S3를 이용하여 배포했습니다
  • 스택
    • Next.js, recoil, CSS Module, SCSS, styled-jsx
    • DB : MongoDB Atlas, Mongodb Realm(GraphQL 기반)
    • 배포툴 : serverless프레임워크의 next-js 플러그인 (aws cloudfront로 디플로이)
    • 스크랩핑 툴 : puppeteer

학생 출결관리 사이트 구현

(2020.01 ~)

(1인 프로젝트)

  • 참여도 : 100%
  • next.js기반으로 제작되었습니다
  • next-iron-session에 기반한 로그인 기능을 구현했습니다
  • 학생이 과목을 신청하거나 신청을 취소하는 페이지를 만들었습니다
  • 선생님이 과목에 등록한 학생 정보를 열람하는 페이지를 만들었습니다
  • mongoDB atlas를 DB로 사용했습니다
  • API Routes에 기반한 DB CRUD를 구현했습니다
  • 함수형 컴포넌트 및 훅에 기반하여 페이지를 구현했습니다
  • AWS EC2로 배포했습니다

커뮤니티 베스트글 모음 사이트 구현

(2019.01 ~ 2019.10)

(1인 프로젝트)

  • 참여도 : 100%
  • express & pug 템플릿 엔진 기반으로 제작된 사이트입니다
  • PhantomJS로 각종 커뮤니티의 베스트 글을 크롤링하여 DB에 저장하였습니다
  • heroku의 MongoDB 애드온즈를 DB로 사용하여 스크랩한 데이터를 관리했습니다
  • REST기반의 API를 작성했습니다
  • 페이지네이션 및 검색 기능이 포함된 게시판을 구현했습니다
  • SEO(Search Engine Optimization)를 적용하여 페이지뷰를 증가시킨 경험이 있습니다
  • heroku로 배포하였습니다

해바라기 소프트

(2018.05 ~ 2018.10)

전자투표 솔루션 업체에서 프론트 및 백엔드 엔지니어로 업무를 수행 하였습니다

  • 스프링 + 타임리프 + 제이쿼리 기반의 프로젝트를 수행하였습니다
  • 투표결과를 엑셀파일로 생성하는 기능을 구현하였습니다
    - 사내 자체제작된 ORM으로 MySQL에서 투표관련 데이터를 가져와서 엑셀 파일로 제작하여 클라이언트에게 리스폰스 해주는 기능을 구현하였습니다
  • chart.js라는 js기반의 데이터 시각화 라이브러리로 투표 결과를 시각화하는 페이지를 10여개 제작하였습니다
    - 막대 그래프, 원형 그래프 등의 다양한 그래프로 투표 결과를 시각화하였습니다
  • 타임리프 & 제이쿼리 기반으로 게시판을 구현하였습니다
    - "글 작성하기, 글 수정하기, 글 상세보기" 등의 페이지를 제작하였습니다

파워보이스

(2017.01 ~ 2017.12)

자연어처리 업무를 담당하였습니다

  • 구어체 문장의 패턴을 분석하여 특정 명령어로 분류하는 classification 작업을 수행하였습니다
  • 형태소 분석기 엔진을 최적화하여 타겟 키워드의 검출을 약 5% 향상시켰습니다
  • 형태소 분석기 전체 리팩토링 작업을 수행했습니다
    • C기반의 전체 소스코드를 C++로 리팩토링 하였습니다.
    • 전체적인 코드가 비효율적으로 작성되었다고 판단되었기 때문입니다
    • 중복되는 코드를 제거하고 코드 재사용성을 높이고 문법을 간결하게 작성하여 코드길이를 약 1/5로 줄였습니다
    • 문자열 검색 알고리즘을 boyer-moore에서 aho-corasick으로 대체하고 파일 I/O횟수를 최소화하여 이전엔진 대비 처리속도를 약 2.8배 향상시켰습니다
    • 사용하는 메모리 사이즈를 약 50% 줄였습니다
  • 문자열에서 키워드를 검출하는 수작업을 프로그램으로 자동화 하였습니다
    • "여기 불났어요"같은 문장에서 "불나다" 라는 어휘를 검출하는 작업을 파이썬으로 100% 자동화 하였습니다
    • 약 6개월 걸릴것으로 예상했던 작업이 3주만에 완료 되었습니다.
    • 직원들이 다른 업무에 집중할 수 있게되어 팀 전체의 생산성이 증대 되었습니다

기술

Javascript

  • ES1부터 ES2021까지 거의 모든 문법을 읽고 쓰고 이해할 수 있습니다
  • 콜백과 이벤트 루프, 프라미스와 마이크로테스크 큐, async함수 및 자바스크립트 런타임에서 코드가 어떤 순서대로 실행되는지, 왜 그렇게 실행되는지 이해할 수 있습니다.
  • 코드의 실행흐름이 이해가지 않아서 버그가 발생하는 일이 없습니다
  • jQuery 없이 querySelector및 HTMLElement등의 Web API로 엘리먼트를 다루고 조작하는데 불편함이 없습니다
  • 필요한 정규식은 대부분 이해하고 구현할 수 있습니다
  • 함수형의 원칙인 순수함수의 지향 및 부수효과의 최소화에 입각하여 개발합니다
  • 읽기쉬운 코드가 최고의 코드라는 가치에 입각하여 누가 언제 읽어도 이해할 수 있도록 선언적으로 개발합니다

Typescript

  • any 및 강제 형변환을 지양하고 타입가드를 통한 타입 추론을 지향합니다

React

  • React hooks기반의 함수형 컴포넌트 기반으로 개발합니다
  • SoC철학에 기반하여 컴포넌트를 분리하여 작성합니다
  • React Fiber기반의 리컨사일러가 어떤 타이밍에 컴포넌트를 재호출하고 언제 이펙트함수 등이 호출되는지 실행흐름을 이해할 수 있습니다
  • 함수형 컴포넌트 기반에 필수적인 클로저의 작동원리를 숙지하고 있습니다

배포

  • 서버 플랫폼인 AWS EC2, Heroku로 배포한 경험이 있습니다
  • 잼스택 플랫폼인 AWS Cloudfront, Cloudflare Pages로 배포한 경험이 있습니다
  • 정적 사이트 플랫폼인 Netlify, Github Pages, NCP ObjectStorage로 배포한 경험이 있습니다

개인정보

기술블로그
Github
github.com/coleea
- 주로 공부한 내용을 올려둡니다
Phone
010-9333-3385
이름
이국범