개발자 이상운 이력서

17
이이이

Upload: -

Post on 14-Apr-2017

94 views

Category:

Career


1 download

TRANSCRIPT

Page 1: 개발자 이상운 이력서

이상운

Page 2: 개발자 이상운 이력서

이상운 (LeeSang-wn)

1989. 11. 09

Tel 010 – 3351 - 1453

E-mail [email protected]

가천대학교 소프트웨어학부 입학 (2008.03 - 2016.02 )봉사활동 천주교 숲속성당 중고등부 주일학교 (2010.02 - 2016.02)SNS블로그 : highluck.github.io페이스북 : facebook.com/sangwn.lee 깃허브 : github.com/highluck

About 이상운

Page 3: 개발자 이상운 이력서

외주개발 아르바이트 (2014.11 - 2015.12) 서울여대 미디어과 App & 서버개발(android ,Jsp 서블릿 , MySQL)

IT 스타일 스타트업 자전거 앱개발(android)

XLGAMES (2015.12- 2016.06)아르바이트 -> 정직원 문명온라인 운영 시스템 Abox 클라이언트 & 서버개발(C# WPF, Nancy.NetFramework, MSSQL)

문명온라인 모바일 앱개발(Ionic AngularJS, Nancy.NetFramework, MSSQL)

경력사항BeyondPlatform (2016.06 - 현재까지 )나의 스타트업 개발이야기 (highluck.github.io)농협 전문 송수신 서버개발(Java, Scala, MySQL)

사내 전자결재 서비스 개발(Spring, PostgreSQL)

30cut 대출 서비스 클라이언트 & 계정인증서버 & 대출 서버개발http://www.30cut.com

(AngularJS, SpringBoot, MySQL, Redis, JPA)

beyondfund 투자 서비스 서버개발http://www.beyondfund.co.kr

(SpringBoot, MySQL, JPA)

사내 서비스 운영툴 개발(SpringBoot, MySQL, Electron AngularJS, MyBatis)

Page 4: 개발자 이상운 이력서

봉사활동 2010 년부터 2016 년까지 6 년동안 성당에서 중고등부 아이들을 가르쳐 왔습니다 .

성당의 중고등부 교사들은 아이들을 위해 캠프를 준비하고 , 매주 교리를 준비합니다 . 이러한 과정을 거치고 아이들과 몸을 부대 끼다보면 아이들이 저희에게 많이 의지하고 있음을 느낍니다 . 그래서 저희는 늘 고민하고 책임감을 가집니다 .

그리고 이러한 책임감을 가지기 때문에 늘 새로운 행사를 준비하는 과정에서 사소한 마찰등을 겪게됩니다 . 하지만 저는 이러한 마찰속에서 조금 더 상대방을 이해하기 위해 노력했습니다 . 그리고 그로 인해 스스로 더 사람과 사람간의 소통능력을 기를 수 있었다고 생각합니다 . 그래서 지금도 사소한 마찰이 있어도 조급해 하지않고 상대를 조금 더 이해하고 잘 풀어나가기 위해 노력합니다 .

Page 5: 개발자 이상운 이력서

꼴등 성적 우수장학생 되다 .

준비를 하고 실천해 나간다면 불가능해 보이는 목표라도 이룰 수 있다고 믿습니다 . 저는 SW 개발자가 되고 싶었습니다 . 하지만 저의 학점은 2.8 꼴등이었습니다 . 저는 제성적이 심각하다는 것을 알았고 , 성적이 낮은 이유에 대해 분석하였습니다 . 첫 번째로 저는 사람들과 활동하는 것을 좋아했습니다 . 1~2 학년 때는 동아리방에서 살 정도로 동아리활동에 몰입하였습니다 . 두 번째로 수업시간에 집중을 못하였습니다 . 그 결과 과제를 할 때나 시험을 볼 때 교수님의 의도를 파악하지 못하였습니다 . 마지막으로 집안 형편이 어려웠습니다 . 2 학년 2 학기 때부터 저는 집안 형편으로 인해 학업과 아르바이트를 병행해야 했습니다 .

이러한 분석 끝에 , 이것을 극복할 계획을 세웠고 , 실천하였습니다 . 첫 번째로 “하루 쉬기”였습니다 . 일주일에 하루 쉬는 날을 정했고 , 그날에만 친구를 만나거나 단체 활동을 하였습니다 . 그다음으로는 “앞자리 앉기”였습니다 . 앞자리에 앉기 위해서 제일 먼저 강의실에 가게 되었고 , 수업을 기다면서 예습을 할 수 있었습니다 . 그로 인해 수업시간에 집중을 하게 되었고 , 과제와 시험에서도 교수님의 의도를 파악할 수 있었습니다 . 마지막으로는 “도시락 가지고 다니기”였습니다 . 4 학년이 되면서 어머니와 한가지 약속을 하였습니다 . 그 약속은 “ 4학년은 아르바이트를 쉬고 학업에 집중하겠다 .” “ 대신 도시락을 가지고 다녀서 돈을 아끼겠다 .” 였습니다 .

아침마다 도시락을 준비하고 제일 먼저 수업에 도착하는 일이 쉽지않았습니다 . 하지만 개발자가 되고싶다는 저의 열정이 더 강했기 때문에 버틸 수 있었습니다 . 이렇게 한 학기를 보낸 후 저는 24 학점을 들었음에도 불구하고 4.19 라는 학점을 받았습니다 . 그 결과 120 명중 5 등으로 성적 우수 장학금을 받게 되었습니다 . 이 과정을 통해 불가능해 보이는 목표라도 해낼 수 있다는 자신감을 얻었습니다 . 하지만 당연히 “ A+ 이다” 라고 생각한 과목에서 B+ 을 받았습니다 . 그래서 자신이 잘알고있는 것이라도 자만하지말고 겸손하자는 생각도 가지게 되었습니다 .

Page 6: 개발자 이상운 이력서

음악

어렸을 때부터 밴드 음악에 빠져 음악을하고 싶었습니다 . 하지만 인문계 고등학교를 다니던 저는 쉽게 음악을 할 수 없었습니다 . 이후 대학에 진학했을 때 , “ 후회 없이 음악을 해보자”라는 목표를 세웠습니다 .

먼저 그동안 음악을 하고 싶다는 생각만 했지 실천하지 못 했던 제 자신이라는 생각을 하게 되었습니다 . 그래서 해결방안을 찾던 중 , 지속적인 연습을 통해 배울 수 있는 기타를 배우기로 결정했습니다 . 다행히 학교 내 밴드 동아리가 있었고 , 대학교 입학식도 하기 전에 동아리 가입을 먼저 하였습니다 .

동아리에 가입한 이후 , 기타 연습을 6 개월 동안 단 한 번도 빠지지 않았습니다 . 유일한 기타 초보자였기 때문에 합주를 할 때 늘 팀원들에게 피해를 주었습니다 . 하지만 그 뒤처짐을 즐겁게 인정하고 , 더 많은 연습으로 극복해나갔습니다 . 동아리방에 가면 언제나 볼 수 있는 저였기 때문에 , “ 동방 귀신”이라는 별명까지 얻으며 연습을 하였습니다 .

마침내 2008 년 10월 교내 놀이터에서 “차우차우”란 곡으로 첫 공연을 하였습니다 . 팀원들과 곡을 맞춰나가면서 기타를 연주하던 첫 공연시간 5 분은 그동안의 노력과 눈물을 잊기에 충분했습니다 . 또한 첫 공연을 끝마친 이후 , 저는 더 어려운 곡을 연주하겠다는 새로운 목표를 가지고 다시 도전하였습니다 . 그 결과 2009 년 여름방학 때는 학원에서 기타 강사를 할 수 있을 정도의 실력이 되었습니다 .

이렇게 2 년 동안 밴드 동아리 활동을 하면서 한 분야에서 전문가가 되었습니다 . 그리고 이 과정을 통해 할 수있다는 자신감과 야근을 할 수 있는 체력도 얻었습니다 .

이제는 SW 개발에 모든 것을 걸었습니다 . 그래서 주말이면 코딩을 하고 새로운 기술을 공부하고 있습니다 .

Page 7: 개발자 이상운 이력서

View

ClientProxy

Client

BusinessLogic

Account Approval CMS

Command Session Statistics

WebService

IBox XBil XIntra

XPlatform

ABOX Auth Config

Hack Log RMS

Statistics World

DataAccess

ServiceNancyModule

GlobalException

UserLog

ServiceTest

Model

ABOX3 문명온라인 운영툴을 개발했어요

Server

- 마이크로서비스 아키텍쳐로 되어있었기 때문에 수많은 다른서버들과 RestAPI 통신을 통해 개발을 했습니다 .

- Domain 에 맞춰 모델을 설계했습니다 .- 게임을 모니터링을 하는 내용은 월드 ( 게임 )DB 의 슬레이브 DB 로 읽었고 , 치트는 게임서버에 직접

TCP 통신을 하였습니다 . - 계정서버의 UID 로 샤딩된 월드 DB, LogDB 의 데이터를 가져왔습니다 .

Page 8: 개발자 이상운 이력서

ABOX3 문명온라인 운영툴을 개발했어요

ABOXServer

월드 DB_4월드 DB_2

월드 DB_3월드 DB_1

Slave

월드 DB_9월드 DB_2

월드 DB_8월드 DB_1

Master

빌링서버로그 DB_9로그 DB_1

Log

계정서버스케줄서버

IBOX( 고객센터 )

인트라넷

월드서버

ABOXClient

Write

Read

계정 Master DB계정 Slave DB

Read ReadWrite

Read&Write

Page 9: 개발자 이상운 이력서

P2P 대출 투자 서비스를 개발했어요 !

- 마이크로서비스 아키텍쳐로 두개의 서비스를 운영하였습니다 .- 서비스단의 API 서버를 주로 개발하였고 , 30cut 의 클라이언트를 개발하였습니다 .- 외부 은행과 연동 개발을 하였습니다 .

Page 10: 개발자 이상운 이력서

P2P 대출 투자 서비스를 개발했어요 !

30cut

계정인증서버

대출사용자정보

BeyondFund

투자서버

대출서버

배치서버

대출사용자정보DB

계정 DB

투자내역 DB

게시판어드민서버

게시판어드민 DB

은행수신 Server

은행송신 Server

은행실시간 Server

대출심사 대출내역 DB

대출심사 운영툴

은행 가상계좌 Proxy 서버어드민운영툴

Page 11: 개발자 이상운 이력서

P2P 대출 투자 서비스를 개발했어요 !

- 제가 주로하는 서버 레이어에요 ! - 대부분의 서버가 이러한 레이어로 개발이 되어있습니다 .

Entity

ValueObject

ResponseObject

Model

Repository

Config

annotation

exception

Common

SerivceController

aspect

intercept

DateUtil

StringUtil

HttpClientPool

Libray

그외 유틸 .. 등등 필터와컨트롤러 사이

공통 모듈을처리합니다 . 예를 들면 인증처리처럼요 !

레이어와레이어 사이에 공통모듈을넣고싶을때

사용합니다 . 저는 Request 요청에

안넣어도 되는값의 Defalut 값을

넣어줄때 조금 사용했어요

모든 exception 을 이리로 보내요 ! api 호출시 exception 메세지를

넣어서 보내줘요 ! aop 나 interceptor 에 사용할annotaion 을 만들었어요

DB 나 filter 등의 설정을 해주는패키지에요 !

처음 로드시 Bean 객체를 생성합니다 .

DB 도메인에따른 모델을

생성했습니다 .

원하는반환 타입에따라

사용하는Response

모델이에요

Converting HttpRestClient Json 등 자주사용되는 것들을

모아놓은곳이에요 .

Page 12: 개발자 이상운 이력서

스터디를 운영하고 있습니다

스터디모임을 만들고 스터디팀원들과 6 명과 함께 지역별 SNS 를 개발하였습니다 . 저는 총 개발의 리더를 맡았습니다 .

우선 지역별 SNS 는 그지역에서만 Write 가 가능하고 Read 는 다른 지역에서도 할 수 있는 SNS 입니다 . 그지역에 직접 가야 글을 남길 수 있기 때문에 정보의 안전할 것이라고 생각해서 이렇게 기획을 하였습니다 .

개발단계에서 고민이 많았습니다 . 8 명이라는 팀원이 모두 개발에 참여해야 했기 때문에 " 어떻게 해야 협업을 잘 할 수 있을까 "? 라는 고민이 있었습니다 . 그래서 저는 우선 Trello 라는 툴을 이용해서 서로 개발 과정을 공유하고 , Github 를 통해 형상관리를 하게 주도 하였습니다 . 또한 서버를 개발하는 친구들은 각자 RestAPI서버를 하나씩 개발 하는 방향으로 설계를 하였습니다 .

제가 개발한 내용은 메인게시물에 대한 내용과 공공데이터를 가져오는 RestAPI 서버와 클라이언트의 초기 뼈대 개발입니다 . 클라이언트는 AngularJS 기반의 Ionic 으로 개발 하였고 , Api 서버는 SpringBoot 와 JPA 를 통해 개발 하였습니다 . 사실 JPA 와 같은 ORM 을 다뤄본적이 없어서 영속화 개념을 이해하는 것이나 Domain 모델을 지키면서 개발하는 것에 어려움이 있었습니다 . 하지만 JPA 에서 쿼리를 최적화 해주는 기능이나 모델을 지키면서 전보다 조금 더 깔끔한 코드가 나오는 것에 스스로 뿌듯했습니다 .

DB 구성은 다른지역에서는 Read 를 할 수 있기 때문에 상대적으로 Read 가 많을 것 같아 나중을 대비해 DB 를 1 대의 마스터와 여러대의 복제 DB 로 분산처리 하였습니다 . DB 서버는 AWS 로 Was 는 호스팅 업체를 통해 호스팅을 하였습니다 .이 경험을 통해서 협업과 서비스를 개발하는 것에 즐거움을 알았습니다 . 앞으로 더 많은 사람들이 사용하는 서비스를 개발하면서 많은 고민을 하고 싶습니다 .

Page 13: 개발자 이상운 이력서

Account&AuthAPI

ClientApplicationServer

PushAPI

공공데이터

GCM

Master Slave

OAuthApi

AdminServer

AdminPage- 스터디 프로젝트의 리더로 서버 설계를 했어요 !- 서버 개발을 주로 했고 클라이언트 부분도 도움을 주었어요 !

스터디를 운영하고 있습니다

Page 14: 개발자 이상운 이력서

내가 작성한 주요코드- 공공데이터를 가져오는 HttpClient 코드부분 입니다 . Generics 를 사용하여 Model 에 따라 동적으로 Json 을 Parsing 할 수 있게 개발하여 코드의 재사용성을 높였습니다 .

Page 15: 개발자 이상운 이력서

내가 작성한 주요코드- 인터셉터를 이용하여 인증 어노테이션을 개발하였습니다 .

Page 16: 개발자 이상운 이력서

내가 작성한 주요코드- 팀원들이 개발하면서 공공데이터 URL 을 쉽게 사용하기 위해 상황에 따른 메서드를 만들어 놓았습니다 .

Page 17: 개발자 이상운 이력서

내가 작성한 주요코드- DB 읽기 처리를 어플리케이션 레벨에서 여러대의 슬레이브 DB 중 랜덤으로 분산처리 하였습니다 .( 소규모 프로젝트는 미들웨어 Proxy 대신 이렇게 분산하는 것도 좋은것 같아요 )