나를 안아줘요! 조 태 문
Table of content Introduction Skill / Interesting Project ‘조태문’ 소개의 글 4 - 6 프로그래밍에 대한 철학 7 Skill / Interesting 보유기술과 관심분야 8 Project Web server 개발 9 - 14 HTTP library 개발 15 – 16 SKT MTS 구조분석 17 – 23 Department of appliance 지원분야 24 Self PR 자기홍보 25 2019-01-12
Introduction 1/3 Blog link Homepage Contact me! 전화 02-959-3900 이동전화 성명 조태문 국적 대한민국 성별 사나이 생년월일 1984년 12월 31일 Contact me! Click me! URL 전화 02-959-3900 Blog link Click me! 이동전화 010-9233-7440 Homepage E-mail whxoans@gmail.com 주소 서울시 동대문구 이문1동 135-47 2F 우)130-081 2019-01-12
Introduction 2/3 학 력 고등학교 검정고시(서울) 2003년 03월 대학교 인덕대학/소프트웨어개발 학 력 고등학교 검정고시(서울) 2003년 03월 대학교 인덕대학/소프트웨어개발 2004년 03월 ~ 현재 병 역 병장만기 2005년 11월 1일 ~ 2007년 10월 31일 육군 26사단 222포병대대 사격지휘병(COMP) 신체 / 취미 취미 신장 체중 시력 외모 174Cm ±70Kg 좌우/1.0 준수 복싱/농구 2019-01-12
Introduction 3/3 열정 좋아하는 몇 단어 성격 도전 진취적이고 호전적인 성향 낙천적이고 유머러스 좋아하는 몇 단어 성격 진취적이고 호전적인 성향 낙천적이고 유머러스 가려 사귀지 않는 폭넓은 대인관계 선호 임기응변에도 능함 도전/고행을 즐김 무지에 대한 두려움보다 왕성한 호기심! 시대를 읽고자 하는 전략적 마인드 땀 흘리는 것을 즐기는 스포츠인 풍류를 즐길 줄 아는 풍류랑 배움을 얻고자 하는 낮은 자세 해보고야 마는 경험주의자 도전 인내 창의 미래 열정 성장 의지 신념 희망 배움 사명 좌우명 No pain, No gain! 목표 세계적인 소프트웨어 디자이너 2019-01-12
philosophy 프로그램 동작 돌아가기만 하면 맞는 것이 아니라 맞을 때까지 돌아가지 않는다 코딩 Simple해야 한다. 간결한 문장은 나와 프로그램 코드를 보는 모든 사람을 빠르게 한다. 프로그래머 컴퓨터와 사람을 소통을 도와주는 통/번역사. 그러므로 좋은 프로그래머는 컴퓨터 뿐 이나라 사람과 자신을 잘 알고 있어야 한다. 사람과 프로그램 API를 하나 더 잘 쓰느냐 는 문제가 문제가 아니다. 정말 중요한 것은 사람에게 필요한 건 돈도 능력도 아니다. 사람에게 필요한 것은 사람이다. 2019-01-12
skill / Interesting Standard C/C++ UNIX system programming (POSIX thread, Shared object) TCP/IP (UNIX Network Programming) HTTP/SOAP ( Protocol stack processing - Client/Server) UML ( System architecture analysis / modeling ) Apache 2.0 frame work(handler 및 module 개발 가능) Apache + PHP + MySql / ASP.net / JSP + tomcat (그 외 Web service) Bourne-again Shell scripting MFC RTP/RTCP에 대한 높은 관심 시스템 분석/설계 2019-01-12
Thread pool 기반 Web Server 개발 수행 프로젝트 소개 Thread pool 기반 Web Server 개발 2019-01-12
프로젝트 개요 Multithread & message queue based Simple Web(HTTP) Server 개발환경 : Redhat LINUX ent 4, GCC, GDB, Valgrind, VIM, POSIX Thread, BASH Shell scripting 필수 요구사항 “Get” method에 대한 응답을 처리할 수 있어야 함. thread pool mechanism (interactivy 보장) Boss & worker model 각 쓰레드간 자원 공유는 전역 변수(구조체)를 통함. 용도 및 목적에 따른 구조화 프로그래밍 source 분할 header는 통합 memory leakage 및 기타 서비스에 큰 영향이 없어야함. 쓰레드간 동기화는 mutex 사용 Busy wait 없음 : signal 사용. (조건변수로 변경) daemon화로 서비스에 등록 가능한 상태 2019-01-12
HTTP processing in Worker thread 서버 개요 OverView : Boss thread section : Shared queue section : Worker thread section Start run loop = 1 mutex_locking push mutex_unlocking Server initailize accept Client socket queue (Shared) loop == 1 Main thread mutex_locking pop mutex_unlocking loop? HTTP processing in Worker thread Send HTML to client loop == 0 Server destroy loop = 0 SIG_INT signal? End 2019-01-12
초기화 시나리오 initializing scenario 2019-01-12 Start Create listen socket SO_REUSEADDR Create clinet scoket queue Init socket queue Create worker thread Init work thread info thread detach Init thread pool All threads check worker thread suspend Init thread pool Init main(accept loop) thread thread detach SIG_INT wait 2019-01-12
Boss & Worker & Shared queue 각부 별 연동 구조 Boss & Worker & Shared queue client request Connect() accept mutex_locking push Boss thread Click view! Worker thread destroy loop == 0 loop? Client socket queue (Shared) mutex_unlocking loop == 1 Search Idle woker thread Shared queue mutex_locking pop mutex_unlocking Main thread exit pthread_cond_signal going active pthread_cond_wait Click view! thread info = BUSY request read ( timeout 10 sec) HTTP parsing pop fail going suspend loop == 1 mutex_locking pop mutex_unlocking pop success Worker thread init loop? Click view! loop == 0 HTML read send HTML to client( timeout 10 sec ) thread info = IDLE Worker thread exit Worker thread 2019-01-12
Test 결과 cpu usage rate 최대 20% 약 1200 이상 ESTABLISHED session 최대 38개 쓰레드 사용 memory leakage 없음 TPS : 2690+ response rate : 99.78% stress test client 환경 thread : 1200 request : "GET /", "GET /test.htm“ Client : MS Web Application tester 2019-01-12
HTTP Range Download Library 수행 프로젝트 소개 HTTP Range Download Library 2019-01-12
Project – Download module 1/2 요구사항 : GET method 사용 test용 server는 211.232.66.123:8888 싸이월드 동영상 서버의 Streamming 요청 규격에 부응할 것. 가능하면 라이브러리화(DLL) byte-range사용으로 해당 range만큼만 받아서 파일로 저장. init부와 전송부와 destroy부를 나눌 것. 파일로 저장하지 않아도 메모리로 가져올 것 Sample response 2019-01-12
Project – Download module 2/2 개발환경 OS : Windows XP Compiler : MS Visual C++ Server : 싸이월드 CMS Util : LibCrul ( client개발용 open API ) Man page & download link 동작 중 packet dump Sample program 2019-01-12
SKTelecom MTS - MediaTranscodingSystem 구조분석 수행 프로젝트 소개 SKTelecom MTS - MediaTranscodingSystem 구조분석 2019-01-12
개요 목적 : MTS1 유지보수 및 개발을 위한 내부구조 이해 배경지식 : UNIX system programming TCP/IP socket POSIX thread HP-UX system call 2019-01-12
Overview ADMN TIPB main TRPB main Childthreads Child processes CP TIPB thread TRPB child converter CP TIPB thread TRPB child converter CP TIPB thread TRPB child converter CP TIPB thread TRPB child converter 2019-01-12
SIGHUP SIGINT SIGQUIT SIGABRT SIGKILL SIGTERM ADMN flow chart start GetConfigurationShm InitDaemon is jumping? initialize jumper start_gen_process No Yes alarm(1) check_proc invoke (TIPB, TRPB) SIGALRM manage_child signal? wait() SIGHUP SIGINT SIGQUIT SIGABRT SIGKILL SIGTERM end kill_children to_exit to_exit 2019-01-12
send req to TRPB process TIPB flow chart start init_config signal? SIGHUP SIGINT SIGQUIT SIGABRT SIGKILL SIGTERM InitDaemon init_proc OpenServerSocket to_exit init_cptbl & init_mintbl end init_thread Init Mutex & Cond CreateThread proc_tipb send req to TRPB process thread section to_select send cond signal trans response & result data accept_cp_req CP trans request & source data accept loop 2019-01-12
TRPB flow chart start init_config wait signal? InitDaemon init_proc SIGCLD wait signal? SIGHUP SIGINT SIGQUIT SIGABRT SIGKILL SIGTERM InitDaemon init_proc OpenServerSocket to_exit AcceptSocket end fork() send response to TRPB thread child processing loop Created new child child_select skt_conv_req read_tipb_msg single etc lib. is multi? send_media_conv_resp skt_conv_req_1_N multi 2019-01-12
Department of appliance Multimedia Service 개발 (Streamming service 등 / Enterprise급 server app등 다량의 Traffic을 처리하는 Server) 언제나 관심을 가지고 있었던 Embededd linux 및 Application 개발 Web Solution 개발 (클라우드 컴퓨팅, Web based device control 등) 그 외 응용프로그램 개발 2019-01-12
Self PR 전 직장의 재직기간은 2년이 채 되지 않는 짧은 기간이었습니다만 본인의 자아와 새로운 목표와 방향을 확실하게 가지게 된 아주 유익한 시간이었습니다. 배움을 목적으로 하는 조직과는 느낌이 사뭇 다른 프로젝트를 처음 경험하고 놀라기도 했지만 곧 이윤을 목적으로 하는 조직에서의 프로젝트 참여에 대한 묘미를 느끼고 현실적인 시선 가지고 더 높은 이상을 바라보게 되었습니다. 업무 시간 외의 시간은 개인적인 관심분야에 대한 공부도 게을리 하지 않은 채 지속적인 스킬 업을 하고자 부단히 노력해 왔으며 자칫 루즈해지기 쉬운 주말에는 무료 공개 세미나 등에 참석하여 업계의 관심사에 대한 트렌드 및 현업적용 결과 등을 꾸준히 담아내고자 하였습니다. 지금까지의 시스템 개발/지원의 경험을 살리고 부족한 부분을 지속적으로 채워 나가며 보다 낳은 산출물을 내는 엔지니어가 되고자 하오니 선발에 유념해 주시길 바랍니다. 2019-01-12