SlideShare una empresa de Scribd logo
1 de 13
Descargar para leer sin conexión
Ch.6 필수 역량
     프로그래머로 사는 법

     chois79




12년 11월 25일 일요일
업무 역량과 업무 외 역량

     • 업무 역량


          • 요건 계획, 소프트웨어 설계, 프로그래밍, 디버깅, 소프트웨어 공학, 운영체제등 학교에서 배우는
            기술적인 역량


          • 경력 초창기에는 기술과 관련된 업무 역량이 중요


     • 업무 외 역량


          • 팀워크, 의사소통, 강연 능력, 조직 예절, 협상력, 멘토링, 채용, 관리, 리더십 등


          • 위로 올라 갈수록 업무 외 역량이 더 중요해짐


     • 자신이 나아갈 방향을 파악하고, 적당한 시간을 투자하여 역량을 계발하는 것이 필요



12년 11월 25일 일요일
성장을 위한 기술 역량


                   역량                        설명


                          학교에서 배우는 핵심적인 개발 기술, 업계 분위기가 계속해서 달라지기
                  기본기
                          때문에 꾸준한 개선이 필요 ( 프로그래밍 언어, 알고리즘 등)


                  개발 역량   코딩 역량, 품질 보증 역량, 전략 계획 역량으로 나누어짐


             영역 전문성       도메인 지식


         트레이드크래프트 개발 방법론




12년 11월 25일 일요일
프로그래밍 언어: 잘나가는 언어와 그렇지 않은 언어  88                   M A K I N G I T B I G I N S O F T WA R E


                       higher-level user-friendly languages come and go more frequently over time
                       than the mainstay languages. Even so, you always need to have one of these
     •   프로그래머라면 어떤 언어와 your back pocket for building꾸준히 scripts, and small applications.
                       in
                          패러다임이 주목받고 있는지 tools, 관심을 가져야함
                          Also very significant in the data is the relative use of object-oriented (OO)
                       languages. Java and C++ are two of the top three languages. PHP includes
     •   잘 나가는 언어를 알아내는 방법
                       OO support as well. If you want to stay current on programming languages,
                       you really ought to stay abreast of the top five languages shown, know your
                       way around XML, and keep your OOD/OOP skills up-to-snuff.
           • 각 언어가 인터넷에서 거론되는 빈도를 확인하는 방법이 유용
                                                      20%
                                                            18.8%
                                                      18%

                                                      16%
                                Percentage of Total




                                                      14%          13.4%

                                                      12%

                                                      10%
                                                                           9.1%

                                                      8%                          7.4%
                                                                                         7.1%                                                                                                                                                            6.7%
                                                                                                  6.3%
                                                      6%

                                                      4%                                                         3.6% 3.4%
                                                                                                                                 3.2% 3.1%
                                                                                                                                             2.6% 2.4%
                                                                                                                                                                    1.9% 1.7%
                                                      2%                                                                                                                          1.6% 1.5%
                                                                                                                                                                                                 1.2% 1.1% 1.0%
                                                                                                                                                                                                                        0.8% 0.8% 0.8%
                                                                                                                                                                                                                                            0.3% 0.2%
                                                                                                                                                                                                                                                                           ptg
                                                      0%
                                                            Java
                                                                   C
                                                                       C++
                                                                              .NET
                                                                                         PHP
                                                                                                (Visual) Basic
                                                                                                                 Perl
                                                                                                                        Python
                                                                                                                                 C#
                                                                                                                                      SQL
                                                                                                                                             Eclipse
                                                                                                                                                       JavaScript
                                                                                                                                                                    HTML
                                                                                                                                                                           Ruby
                                                                                                                                                                                  XML
                                                                                                                                                                                        Delphi
                                                                                                                                                                                                 SAS
                                                                                                                                                                                                       PL/SQL
                                                                                                                                                                                                                COBOL
                                                                                                                                                                                                                        Pascal
                                                                                                                                                                                                                                 D
                                                                                                                                                                                                                                     AJAX
                                                                                                                                                                                                                                            J2EE
                                                                                                                                                                                                                                                   CSS
                                                                                                                                                                                                                                                         Misc. languages
                                                                                                                             Programming Language
     • 현재 패러다임에서 저자의 생각
                                   FIGURE 6.1                      Internet frequency of the top 24 programming languages and platforms

           • 프로그래밍 언어의 동향을 따라 잡으려면 상위 5개 언어를 주시하면서 XML에도 관심을 기울이고, OOD/OOP 역량도 갖춰야만 한다.


                                   Debugging
12년 11월 25일 일요일                    Programming is an absolutely humbling experience because there is just no
디버깅

     • 디버깅은 핵심 역량임에도 정규 교육과정에서 다뤄지지 않는다.


     • 대부분의 프로그래머는 디버거나 값 추적 기능을 사용


     • 문제점을 찾아내기 위한 더 나은 전략


          • 디버거를 띄우고 싶은 욕망을 억제하는 방법


                  • 자기확인형 코드와 계약에 의한 설계


                  • 코드 점검




12년 11월 25일 일요일
자기확인형 코드와 계약에 의한 설계

     • 확인 (Assertion) 사용


          • 여러 조건이 정상적인 범위 안에 있는지 확인함으로써 코드 내에서 스스로 테스트 작업을 수행


          • 실행 시에 자체 검증이 가능


          • 보통 확인은 출시용 코드에서는 돌아가지 않는 매크로로 구현


     • 계약에 의한 설계 (Bertrand Meyer)


          • 함수의 입력 값과 출력 값이 함수의 해당 규격에 맞는지 점검


          • 시작 부분과 마무리 부분에 확인 구분을 많이 집어 넣는 방법은 일관성 있는 프로그램 방식으로
            자연스럽게 연결됨



12년 11월 25일 일요일
코드 점검과 코드 검토

     • 직접 소스코드를 일일이 검토하게 하는 방식은 결점을 잡아내는데 있어서 가장 효율적


     • 설계 검토


          • 시스템상의 문제를 제거하는데 있어서 가장 효과적인 절차


          • 코딩 문제를 찾아내는 데는 별 위력을 발휘하지 못함


     • 코드 검사를 통해 코드상의 결점을 대부분(최대 90%) 제거할 수 있다 - 마이클 페이건


     • 코드 검사의 범주


          • 검토 담당자 그룹에 의한 형식을 갖춘 코드 검토


          • 작성자 외에 추가 한명의 프로그래머에 의한 형식을 갖추지 않은 코드 검토


          • 개인에 의한 점검. 본인이 직접 만든 코드의 논리 흐름을 따라가면서 코드를 점검



12년 11월 25일 일요일
생존을 위한 규격, 설계 및 코드 검토

     • 업무에 관한 기술 검토


          • 제품 규격, 설계 규격, 테스트 계획, 제품용 코드, 테스트용 코드 등.


          • 소규모의 검토팀이 투입되어 모든 일을 샅샅이 파헤치면서 문제점을 발견


          • 프로그래머에게 곤혹스러운 일이 될 수 있음.


     • 기술 검토는 프로그래머 성장의 기반이 될 수 있음


          • 프로젝트에서 사소한 것에까지 주의를 기울이는 능력이 급격하게 올라감


          • 자신의 선택에 제기될 수 밖에 없는 질문을 대비하게 되므로, 설득력 있는 전문가로 성장할 수 있음


     • 검토에 임하는 자세


          • 검토에 참가하는 사람은 나보다 더 잘 안다는 마음가짐으로 임하는 자세가 필요


          • 카리스마에 억눌리거나, 정치적인 면에 말려서 부당하게 윗 사람에게 휘둘리면 안됨.




12년 11월 25일 일요일
tial. Growth activities, the activities that sharpen the saw, generally fall in
                                                               quadrant. They are rarely urgent—they can wait a week, a month, or lon
                                                               in most cases. But although these tasks aren’t urgent, they define the s
                                                               and potential of your career. Spend time in this quadrant as follows:


     성장 역량                                                        . Recognize its relative importance to you personally and profession
                                                                     and develop strategies for spending time here on a regular basis.
                                                                  . Purge or bypass activities in your schedule that are really in the
                                               unimportant categories. The less time you spend in quadrants 2 an
                                               the more easily you can justify to yourself and others time that yo
     • 역량을 구축하고 프로세스를 최적화하는데 있어서 가장 어려운 점은 시간 관리
                                               spend in quadrant 4.

     • 업무의 구분                                                     Take a look at Figure 6.2.


          • 급하고 중요: 핵심 업무 (중요한 회의등)                                                                       Urgency



          • 급하고 중요하지 않음: 전화 받기 등.                                                        Urgent and                 Important but
                                                                                           important                 not urgent
                                                                                         (firefighting)             (quality time)




                                                                           Importance
          • 중요하지도 않고 급하지도 않음: 시간낭비라고 할 수 있는 일 (웹 서핑 등.)

                                                                                        Urgent but not              Not urgent, not
          • 중요하지만 급하지 않음: 경력을 확장하고 잠재력을 키우는 일                                             important                    important
                                                                                        (distractions)              (time wasting)


                  • 이 업무에 투자한 시간에 따라 승자와 패자가 결정 됨.

                                                             FIGURE 6.2 Quadrants of time (From The 7 Habits of Highly Effective People, by
     • 성장을 위한 시간 관리 전략 (중요하지만 급하지 않는 일에 시간을                투자하는 방법)
                                                             Stephen R. Covey New York: FreePress, 2004, reprinted with permission from
                                                             Franklin Covey Co.)

          • 개인적인 입장에서, 전문가적인 견지에서 상대적인 중요성을 파악하고 정기적으로 시간을 투자하기 위한 전략을 수립
                                                  Individuals and corporations have varying strategies for getting qu
                                               time in quadrant 4, the magical zone of Important but Not Urgent. For s
          • 중요하지 않은 범주에 속하는 활동은 적당히 미루거나 생략, 중요성이 낮은 업무에 쓰는 시간을 줄일수록a중요하지만monthly않은
                                               people, it’s a daily event; for others, it’s weekly or 급하지 routine. If yo
            일에 쓰는 시간을 더 많이 확보 할수 있음            not finding time in the Important but Not Urgent zone on a regular bas
                                               will definitely lower your career potential. Carpe diem—seize the day.

12년 11월 25일 일요일
조직 최상부의 비업무 역량

     • 조직에서 최고위층에 있는 사람들의 공통적인 특징


          • 사회적 의식을 가지고 구설수나 정치적인 문제에 휘말리는 일을 피하는 편이다. 전문가로서 적절한 대화를 나누는데 능숙하
            다


          • 작은 그룹에서든 큰 그룹에서든 글을 통해서든 소통을 잘 할 줄 안다


          • 시간을 효율적으로 활용한다


          • 조직내에서 인간관계를 잘 맺고 있다


          • 중요한 문제를 정력적으로 공략하며, 위기 의식을 가지고 행동한다


          • 위기 상황에서도 상대적으로 침착함을 유지하고 문제에 적절하게 대응한다


     • 이러한 역량은 학교에서 배울 수 있는건 아니자만, 어떤 전문가에게든 강력한 무기가 될수 있다


     • 대부분 타고나는 성격적 특성이지만, 성실한 사람이라면 시간은 걸리겠지만, 이런 역량을 배우고 익히는 것이 가능




12년 11월 25일 일요일
궁극의 비업무 역량: 감성 지능

     • 감성지능 (Emotional Intelligence)


          • 다양한 상황에 적응하고 성공을 이끌어낼 수 있는 능력에 지대한 영향을 주는 몇가지
            비인지적인 정신, 감정적인 역량의 척도


          • 일반적인 면에서의 지능과는 별개의 것


          • 성공에 미치는 영향도


                  • IQ: 6%, EI: 27% ~ 45%


          • 전문가로 성공하는 기폭제 역할을 할 뿐 아니라 삶 자체가 달라지는 요인이 됨



12년 11월 25일 일요일
요약

     • 소프트웨어 전문가로서의 필요 역량


          • 기술 역량


          • 특정 분야의 전문성


          • 비업무 역량


     • 전문가로서 성장하기 위한 2가지 비법


          • 중요하지만 급하지 않은 일에 시간을 투자


          • 시간이 지남에 따라 고위 전문가로서의 적합성을 극정으로 향상해 줄 수 있는 EI를 계발


12년 11월 25일 일요일
생각해 볼 것

     • 각자의 생활에서 4가지 업무 분야에 투자하는 시간의 비율은?


     • 중요하지만 급하지 않은 일에 얼마나 많은 시간을 투자하고 있는가?


     • 주변 사람들 중 EI가 높은 사람은? 그 사람의 행동 패턴은?


     • Assertion에 대한 자신의 생각


          • 현재 적용하고 있는가?


          • 적용했을 때 어떤 이점이 있을거라 생각하는가?




12년 11월 25일 일요일

Más contenido relacionado

Destacado

Elastic search 클러스터관리
Elastic search 클러스터관리Elastic search 클러스터관리
Elastic search 클러스터관리HyeonSeok Choi
 
7가지 동시성 모델 - 데이터 병렬성
7가지 동시성 모델 - 데이터 병렬성7가지 동시성 모델 - 데이터 병렬성
7가지 동시성 모델 - 데이터 병렬성HyeonSeok Choi
 
HTTP 완벽가이드 1장.
HTTP 완벽가이드 1장.HTTP 완벽가이드 1장.
HTTP 완벽가이드 1장.HyeonSeok Choi
 

Destacado (6)

Elastic search 클러스터관리
Elastic search 클러스터관리Elastic search 클러스터관리
Elastic search 클러스터관리
 
7가지 동시성 모델 - 데이터 병렬성
7가지 동시성 모델 - 데이터 병렬성7가지 동시성 모델 - 데이터 병렬성
7가지 동시성 모델 - 데이터 병렬성
 
Clean code Chapter.2
Clean code Chapter.2Clean code Chapter.2
Clean code Chapter.2
 
Chean code chapter 1
Chean code chapter 1Chean code chapter 1
Chean code chapter 1
 
HTTP 완벽가이드 1장.
HTTP 완벽가이드 1장.HTTP 완벽가이드 1장.
HTTP 완벽가이드 1장.
 
함수적 사고 2장
함수적 사고 2장함수적 사고 2장
함수적 사고 2장
 

Similar a 프로그래머로 사는 법 Ch6

[대학내일20대연구소]201306 대학생들의 술자리가 줄어든 이유(20130409)
[대학내일20대연구소]201306 대학생들의 술자리가 줄어든 이유(20130409)[대학내일20대연구소]201306 대학생들의 술자리가 줄어든 이유(20130409)
[대학내일20대연구소]201306 대학생들의 술자리가 줄어든 이유(20130409)UnivTomorrow
 
2011인문학강좌평가설문분석
2011인문학강좌평가설문분석2011인문학강좌평가설문분석
2011인문학강좌평가설문분석마 법사
 
333 Rule Of Mobile Video
333 Rule Of Mobile Video333 Rule Of Mobile Video
333 Rule Of Mobile VideoSeungyul Kim
 
[대학내일20대연구소]201302 힐링을필요로하는대학생들의속마음은(20130130)
[대학내일20대연구소]201302 힐링을필요로하는대학생들의속마음은(20130130)[대학내일20대연구소]201302 힐링을필요로하는대학생들의속마음은(20130130)
[대학내일20대연구소]201302 힐링을필요로하는대학생들의속마음은(20130130)UnivTomorrow
 
투이컨설팅 제33회 Y세미나 : 설문결과
투이컨설팅 제33회 Y세미나 : 설문결과투이컨설팅 제33회 Y세미나 : 설문결과
투이컨설팅 제33회 Y세미나 : 설문결과2econsulting
 
[대학내일20대연구소]201208 대학생들이말하는조별과제의득과실(20120810)
[대학내일20대연구소]201208 대학생들이말하는조별과제의득과실(20120810)[대학내일20대연구소]201208 대학생들이말하는조별과제의득과실(20120810)
[대학내일20대연구소]201208 대학생들이말하는조별과제의득과실(20120810)UnivTomorrow
 
[Dmc] 모바일 쇼핑 이용실태조사
[Dmc] 모바일 쇼핑 이용실태조사[Dmc] 모바일 쇼핑 이용실태조사
[Dmc] 모바일 쇼핑 이용실태조사Joon Ha Baek
 
201211_소셜네트워크게임(SNG) 이용행태 조사_DMC미디어
201211_소셜네트워크게임(SNG) 이용행태 조사_DMC미디어201211_소셜네트워크게임(SNG) 이용행태 조사_DMC미디어
201211_소셜네트워크게임(SNG) 이용행태 조사_DMC미디어YOO SE KYUN
 
[2011 체인지온] 오픈세션3. 나도 인포그래픽 디자이너!_김묘영
[2011 체인지온] 오픈세션3. 나도 인포그래픽 디자이너!_김묘영[2011 체인지온] 오픈세션3. 나도 인포그래픽 디자이너!_김묘영
[2011 체인지온] 오픈세션3. 나도 인포그래픽 디자이너!_김묘영daumfoundation
 
네이트 앱스토어 2011년 모바일 SNG 개발 계획에 대한 설문 결과
네이트 앱스토어 2011년 모바일 SNG 개발 계획에 대한 설문 결과네이트 앱스토어 2011년 모바일 SNG 개발 계획에 대한 설문 결과
네이트 앱스토어 2011년 모바일 SNG 개발 계획에 대한 설문 결과Cyworld AppStore (SK Communications)
 
[솔트룩스] 큐레이션과 마켓플레이스 Yes24 이선재 본부장
[솔트룩스] 큐레이션과 마켓플레이스 Yes24 이선재 본부장[솔트룩스] 큐레이션과 마켓플레이스 Yes24 이선재 본부장
[솔트룩스] 큐레이션과 마켓플레이스 Yes24 이선재 본부장Saltlux zinyus
 
투이컨설팅 제20회 Y세미나 : 설문결과
투이컨설팅 제20회 Y세미나 : 설문결과투이컨설팅 제20회 Y세미나 : 설문결과
투이컨설팅 제20회 Y세미나 : 설문결과2econsulting
 

Similar a 프로그래머로 사는 법 Ch6 (14)

[대학내일20대연구소]201306 대학생들의 술자리가 줄어든 이유(20130409)
[대학내일20대연구소]201306 대학생들의 술자리가 줄어든 이유(20130409)[대학내일20대연구소]201306 대학생들의 술자리가 줄어든 이유(20130409)
[대학내일20대연구소]201306 대학생들의 술자리가 줄어든 이유(20130409)
 
2011인문학강좌평가설문분석
2011인문학강좌평가설문분석2011인문학강좌평가설문분석
2011인문학강좌평가설문분석
 
333 Rule Of Mobile Video
333 Rule Of Mobile Video333 Rule Of Mobile Video
333 Rule Of Mobile Video
 
[대학내일20대연구소]201302 힐링을필요로하는대학생들의속마음은(20130130)
[대학내일20대연구소]201302 힐링을필요로하는대학생들의속마음은(20130130)[대학내일20대연구소]201302 힐링을필요로하는대학생들의속마음은(20130130)
[대학내일20대연구소]201302 힐링을필요로하는대학생들의속마음은(20130130)
 
투이컨설팅 제33회 Y세미나 : 설문결과
투이컨설팅 제33회 Y세미나 : 설문결과투이컨설팅 제33회 Y세미나 : 설문결과
투이컨설팅 제33회 Y세미나 : 설문결과
 
Hcs
HcsHcs
Hcs
 
[대학내일20대연구소]201208 대학생들이말하는조별과제의득과실(20120810)
[대학내일20대연구소]201208 대학생들이말하는조별과제의득과실(20120810)[대학내일20대연구소]201208 대학생들이말하는조별과제의득과실(20120810)
[대학내일20대연구소]201208 대학생들이말하는조별과제의득과실(20120810)
 
[Dmc] 모바일 쇼핑 이용실태조사
[Dmc] 모바일 쇼핑 이용실태조사[Dmc] 모바일 쇼핑 이용실태조사
[Dmc] 모바일 쇼핑 이용실태조사
 
201211_소셜네트워크게임(SNG) 이용행태 조사_DMC미디어
201211_소셜네트워크게임(SNG) 이용행태 조사_DMC미디어201211_소셜네트워크게임(SNG) 이용행태 조사_DMC미디어
201211_소셜네트워크게임(SNG) 이용행태 조사_DMC미디어
 
[2011 체인지온] 오픈세션3. 나도 인포그래픽 디자이너!_김묘영
[2011 체인지온] 오픈세션3. 나도 인포그래픽 디자이너!_김묘영[2011 체인지온] 오픈세션3. 나도 인포그래픽 디자이너!_김묘영
[2011 체인지온] 오픈세션3. 나도 인포그래픽 디자이너!_김묘영
 
네이트 앱스토어 2011년 모바일 SNG 개발 계획에 대한 설문 결과
네이트 앱스토어 2011년 모바일 SNG 개발 계획에 대한 설문 결과네이트 앱스토어 2011년 모바일 SNG 개발 계획에 대한 설문 결과
네이트 앱스토어 2011년 모바일 SNG 개발 계획에 대한 설문 결과
 
Hcs 국문
Hcs 국문Hcs 국문
Hcs 국문
 
[솔트룩스] 큐레이션과 마켓플레이스 Yes24 이선재 본부장
[솔트룩스] 큐레이션과 마켓플레이스 Yes24 이선재 본부장[솔트룩스] 큐레이션과 마켓플레이스 Yes24 이선재 본부장
[솔트룩스] 큐레이션과 마켓플레이스 Yes24 이선재 본부장
 
투이컨설팅 제20회 Y세미나 : 설문결과
투이컨설팅 제20회 Y세미나 : 설문결과투이컨설팅 제20회 Y세미나 : 설문결과
투이컨설팅 제20회 Y세미나 : 설문결과
 

Más de HyeonSeok Choi

밑바닥부터시작하는딥러닝 Ch05
밑바닥부터시작하는딥러닝 Ch05밑바닥부터시작하는딥러닝 Ch05
밑바닥부터시작하는딥러닝 Ch05HyeonSeok Choi
 
밑바닥부터시작하는딥러닝 Ch2
밑바닥부터시작하는딥러닝 Ch2밑바닥부터시작하는딥러닝 Ch2
밑바닥부터시작하는딥러닝 Ch2HyeonSeok Choi
 
프로그래머를위한선형대수학1.2
프로그래머를위한선형대수학1.2프로그래머를위한선형대수학1.2
프로그래머를위한선형대수학1.2HyeonSeok Choi
 
알고리즘 중심의 머신러닝 가이드 Ch04
알고리즘 중심의 머신러닝 가이드 Ch04알고리즘 중심의 머신러닝 가이드 Ch04
알고리즘 중심의 머신러닝 가이드 Ch04HyeonSeok Choi
 
딥러닝 제대로시작하기 Ch04
딥러닝 제대로시작하기 Ch04딥러닝 제대로시작하기 Ch04
딥러닝 제대로시작하기 Ch04HyeonSeok Choi
 
밑바닥부터시작하는딥러닝 Ch05
밑바닥부터시작하는딥러닝 Ch05밑바닥부터시작하는딥러닝 Ch05
밑바닥부터시작하는딥러닝 Ch05HyeonSeok Choi
 
7가지 동시성 모델 4장
7가지 동시성 모델 4장7가지 동시성 모델 4장
7가지 동시성 모델 4장HyeonSeok Choi
 
실무로 배우는 시스템 성능 최적화 Ch8
실무로 배우는 시스템 성능 최적화 Ch8실무로 배우는 시스템 성능 최적화 Ch8
실무로 배우는 시스템 성능 최적화 Ch8HyeonSeok Choi
 
실무로 배우는 시스템 성능 최적화 Ch7
실무로 배우는 시스템 성능 최적화 Ch7실무로 배우는 시스템 성능 최적화 Ch7
실무로 배우는 시스템 성능 최적화 Ch7HyeonSeok Choi
 
실무로 배우는 시스템 성능 최적화 Ch6
실무로 배우는 시스템 성능 최적화 Ch6실무로 배우는 시스템 성능 최적화 Ch6
실무로 배우는 시스템 성능 최적화 Ch6HyeonSeok Choi
 
Logstash, ElasticSearch, Kibana
Logstash, ElasticSearch, KibanaLogstash, ElasticSearch, Kibana
Logstash, ElasticSearch, KibanaHyeonSeok Choi
 
실무로배우는시스템성능최적화 Ch1
실무로배우는시스템성능최적화 Ch1실무로배우는시스템성능최적화 Ch1
실무로배우는시스템성능최적화 Ch1HyeonSeok Choi
 
HTTP 완벽가이드 21장
HTTP 완벽가이드 21장HTTP 완벽가이드 21장
HTTP 완벽가이드 21장HyeonSeok Choi
 
HTTP 완벽가이드 16장
HTTP 완벽가이드 16장HTTP 완벽가이드 16장
HTTP 완벽가이드 16장HyeonSeok Choi
 
HTTP 완벽가이드 6장.
HTTP 완벽가이드 6장.HTTP 완벽가이드 6장.
HTTP 완벽가이드 6장.HyeonSeok Choi
 

Más de HyeonSeok Choi (20)

밑바닥부터시작하는딥러닝 Ch05
밑바닥부터시작하는딥러닝 Ch05밑바닥부터시작하는딥러닝 Ch05
밑바닥부터시작하는딥러닝 Ch05
 
밑바닥부터시작하는딥러닝 Ch2
밑바닥부터시작하는딥러닝 Ch2밑바닥부터시작하는딥러닝 Ch2
밑바닥부터시작하는딥러닝 Ch2
 
프로그래머를위한선형대수학1.2
프로그래머를위한선형대수학1.2프로그래머를위한선형대수학1.2
프로그래머를위한선형대수학1.2
 
알고리즘 중심의 머신러닝 가이드 Ch04
알고리즘 중심의 머신러닝 가이드 Ch04알고리즘 중심의 머신러닝 가이드 Ch04
알고리즘 중심의 머신러닝 가이드 Ch04
 
딥러닝 제대로시작하기 Ch04
딥러닝 제대로시작하기 Ch04딥러닝 제대로시작하기 Ch04
딥러닝 제대로시작하기 Ch04
 
밑바닥부터시작하는딥러닝 Ch05
밑바닥부터시작하는딥러닝 Ch05밑바닥부터시작하는딥러닝 Ch05
밑바닥부터시작하는딥러닝 Ch05
 
7가지 동시성 모델 4장
7가지 동시성 모델 4장7가지 동시성 모델 4장
7가지 동시성 모델 4장
 
Bounded Context
Bounded ContextBounded Context
Bounded Context
 
DDD Repository
DDD RepositoryDDD Repository
DDD Repository
 
DDD Start Ch#3
DDD Start Ch#3DDD Start Ch#3
DDD Start Ch#3
 
실무로 배우는 시스템 성능 최적화 Ch8
실무로 배우는 시스템 성능 최적화 Ch8실무로 배우는 시스템 성능 최적화 Ch8
실무로 배우는 시스템 성능 최적화 Ch8
 
실무로 배우는 시스템 성능 최적화 Ch7
실무로 배우는 시스템 성능 최적화 Ch7실무로 배우는 시스템 성능 최적화 Ch7
실무로 배우는 시스템 성능 최적화 Ch7
 
실무로 배우는 시스템 성능 최적화 Ch6
실무로 배우는 시스템 성능 최적화 Ch6실무로 배우는 시스템 성능 최적화 Ch6
실무로 배우는 시스템 성능 최적화 Ch6
 
Logstash, ElasticSearch, Kibana
Logstash, ElasticSearch, KibanaLogstash, ElasticSearch, Kibana
Logstash, ElasticSearch, Kibana
 
실무로배우는시스템성능최적화 Ch1
실무로배우는시스템성능최적화 Ch1실무로배우는시스템성능최적화 Ch1
실무로배우는시스템성능최적화 Ch1
 
HTTP 완벽가이드 21장
HTTP 완벽가이드 21장HTTP 완벽가이드 21장
HTTP 완벽가이드 21장
 
HTTP 완벽가이드 16장
HTTP 완벽가이드 16장HTTP 완벽가이드 16장
HTTP 완벽가이드 16장
 
HTTPS
HTTPSHTTPS
HTTPS
 
HTTP 완벽가이드 6장.
HTTP 완벽가이드 6장.HTTP 완벽가이드 6장.
HTTP 완벽가이드 6장.
 
Cluster - spark
Cluster - sparkCluster - spark
Cluster - spark
 

프로그래머로 사는 법 Ch6

  • 1. Ch.6 필수 역량 프로그래머로 사는 법 chois79 12년 11월 25일 일요일
  • 2. 업무 역량과 업무 외 역량 • 업무 역량 • 요건 계획, 소프트웨어 설계, 프로그래밍, 디버깅, 소프트웨어 공학, 운영체제등 학교에서 배우는 기술적인 역량 • 경력 초창기에는 기술과 관련된 업무 역량이 중요 • 업무 외 역량 • 팀워크, 의사소통, 강연 능력, 조직 예절, 협상력, 멘토링, 채용, 관리, 리더십 등 • 위로 올라 갈수록 업무 외 역량이 더 중요해짐 • 자신이 나아갈 방향을 파악하고, 적당한 시간을 투자하여 역량을 계발하는 것이 필요 12년 11월 25일 일요일
  • 3. 성장을 위한 기술 역량 역량 설명 학교에서 배우는 핵심적인 개발 기술, 업계 분위기가 계속해서 달라지기 기본기 때문에 꾸준한 개선이 필요 ( 프로그래밍 언어, 알고리즘 등) 개발 역량 코딩 역량, 품질 보증 역량, 전략 계획 역량으로 나누어짐 영역 전문성 도메인 지식 트레이드크래프트 개발 방법론 12년 11월 25일 일요일
  • 4. 프로그래밍 언어: 잘나가는 언어와 그렇지 않은 언어 88 M A K I N G I T B I G I N S O F T WA R E higher-level user-friendly languages come and go more frequently over time than the mainstay languages. Even so, you always need to have one of these • 프로그래머라면 어떤 언어와 your back pocket for building꾸준히 scripts, and small applications. in 패러다임이 주목받고 있는지 tools, 관심을 가져야함 Also very significant in the data is the relative use of object-oriented (OO) languages. Java and C++ are two of the top three languages. PHP includes • 잘 나가는 언어를 알아내는 방법 OO support as well. If you want to stay current on programming languages, you really ought to stay abreast of the top five languages shown, know your way around XML, and keep your OOD/OOP skills up-to-snuff. • 각 언어가 인터넷에서 거론되는 빈도를 확인하는 방법이 유용 20% 18.8% 18% 16% Percentage of Total 14% 13.4% 12% 10% 9.1% 8% 7.4% 7.1% 6.7% 6.3% 6% 4% 3.6% 3.4% 3.2% 3.1% 2.6% 2.4% 1.9% 1.7% 2% 1.6% 1.5% 1.2% 1.1% 1.0% 0.8% 0.8% 0.8% 0.3% 0.2% ptg 0% Java C C++ .NET PHP (Visual) Basic Perl Python C# SQL Eclipse JavaScript HTML Ruby XML Delphi SAS PL/SQL COBOL Pascal D AJAX J2EE CSS Misc. languages Programming Language • 현재 패러다임에서 저자의 생각 FIGURE 6.1 Internet frequency of the top 24 programming languages and platforms • 프로그래밍 언어의 동향을 따라 잡으려면 상위 5개 언어를 주시하면서 XML에도 관심을 기울이고, OOD/OOP 역량도 갖춰야만 한다. Debugging 12년 11월 25일 일요일 Programming is an absolutely humbling experience because there is just no
  • 5. 디버깅 • 디버깅은 핵심 역량임에도 정규 교육과정에서 다뤄지지 않는다. • 대부분의 프로그래머는 디버거나 값 추적 기능을 사용 • 문제점을 찾아내기 위한 더 나은 전략 • 디버거를 띄우고 싶은 욕망을 억제하는 방법 • 자기확인형 코드와 계약에 의한 설계 • 코드 점검 12년 11월 25일 일요일
  • 6. 자기확인형 코드와 계약에 의한 설계 • 확인 (Assertion) 사용 • 여러 조건이 정상적인 범위 안에 있는지 확인함으로써 코드 내에서 스스로 테스트 작업을 수행 • 실행 시에 자체 검증이 가능 • 보통 확인은 출시용 코드에서는 돌아가지 않는 매크로로 구현 • 계약에 의한 설계 (Bertrand Meyer) • 함수의 입력 값과 출력 값이 함수의 해당 규격에 맞는지 점검 • 시작 부분과 마무리 부분에 확인 구분을 많이 집어 넣는 방법은 일관성 있는 프로그램 방식으로 자연스럽게 연결됨 12년 11월 25일 일요일
  • 7. 코드 점검과 코드 검토 • 직접 소스코드를 일일이 검토하게 하는 방식은 결점을 잡아내는데 있어서 가장 효율적 • 설계 검토 • 시스템상의 문제를 제거하는데 있어서 가장 효과적인 절차 • 코딩 문제를 찾아내는 데는 별 위력을 발휘하지 못함 • 코드 검사를 통해 코드상의 결점을 대부분(최대 90%) 제거할 수 있다 - 마이클 페이건 • 코드 검사의 범주 • 검토 담당자 그룹에 의한 형식을 갖춘 코드 검토 • 작성자 외에 추가 한명의 프로그래머에 의한 형식을 갖추지 않은 코드 검토 • 개인에 의한 점검. 본인이 직접 만든 코드의 논리 흐름을 따라가면서 코드를 점검 12년 11월 25일 일요일
  • 8. 생존을 위한 규격, 설계 및 코드 검토 • 업무에 관한 기술 검토 • 제품 규격, 설계 규격, 테스트 계획, 제품용 코드, 테스트용 코드 등. • 소규모의 검토팀이 투입되어 모든 일을 샅샅이 파헤치면서 문제점을 발견 • 프로그래머에게 곤혹스러운 일이 될 수 있음. • 기술 검토는 프로그래머 성장의 기반이 될 수 있음 • 프로젝트에서 사소한 것에까지 주의를 기울이는 능력이 급격하게 올라감 • 자신의 선택에 제기될 수 밖에 없는 질문을 대비하게 되므로, 설득력 있는 전문가로 성장할 수 있음 • 검토에 임하는 자세 • 검토에 참가하는 사람은 나보다 더 잘 안다는 마음가짐으로 임하는 자세가 필요 • 카리스마에 억눌리거나, 정치적인 면에 말려서 부당하게 윗 사람에게 휘둘리면 안됨. 12년 11월 25일 일요일
  • 9. tial. Growth activities, the activities that sharpen the saw, generally fall in quadrant. They are rarely urgent—they can wait a week, a month, or lon in most cases. But although these tasks aren’t urgent, they define the s and potential of your career. Spend time in this quadrant as follows: 성장 역량 . Recognize its relative importance to you personally and profession and develop strategies for spending time here on a regular basis. . Purge or bypass activities in your schedule that are really in the unimportant categories. The less time you spend in quadrants 2 an the more easily you can justify to yourself and others time that yo • 역량을 구축하고 프로세스를 최적화하는데 있어서 가장 어려운 점은 시간 관리 spend in quadrant 4. • 업무의 구분 Take a look at Figure 6.2. • 급하고 중요: 핵심 업무 (중요한 회의등) Urgency • 급하고 중요하지 않음: 전화 받기 등. Urgent and Important but important not urgent (firefighting) (quality time) Importance • 중요하지도 않고 급하지도 않음: 시간낭비라고 할 수 있는 일 (웹 서핑 등.) Urgent but not Not urgent, not • 중요하지만 급하지 않음: 경력을 확장하고 잠재력을 키우는 일 important important (distractions) (time wasting) • 이 업무에 투자한 시간에 따라 승자와 패자가 결정 됨. FIGURE 6.2 Quadrants of time (From The 7 Habits of Highly Effective People, by • 성장을 위한 시간 관리 전략 (중요하지만 급하지 않는 일에 시간을 투자하는 방법) Stephen R. Covey New York: FreePress, 2004, reprinted with permission from Franklin Covey Co.) • 개인적인 입장에서, 전문가적인 견지에서 상대적인 중요성을 파악하고 정기적으로 시간을 투자하기 위한 전략을 수립 Individuals and corporations have varying strategies for getting qu time in quadrant 4, the magical zone of Important but Not Urgent. For s • 중요하지 않은 범주에 속하는 활동은 적당히 미루거나 생략, 중요성이 낮은 업무에 쓰는 시간을 줄일수록a중요하지만monthly않은 people, it’s a daily event; for others, it’s weekly or 급하지 routine. If yo 일에 쓰는 시간을 더 많이 확보 할수 있음 not finding time in the Important but Not Urgent zone on a regular bas will definitely lower your career potential. Carpe diem—seize the day. 12년 11월 25일 일요일
  • 10. 조직 최상부의 비업무 역량 • 조직에서 최고위층에 있는 사람들의 공통적인 특징 • 사회적 의식을 가지고 구설수나 정치적인 문제에 휘말리는 일을 피하는 편이다. 전문가로서 적절한 대화를 나누는데 능숙하 다 • 작은 그룹에서든 큰 그룹에서든 글을 통해서든 소통을 잘 할 줄 안다 • 시간을 효율적으로 활용한다 • 조직내에서 인간관계를 잘 맺고 있다 • 중요한 문제를 정력적으로 공략하며, 위기 의식을 가지고 행동한다 • 위기 상황에서도 상대적으로 침착함을 유지하고 문제에 적절하게 대응한다 • 이러한 역량은 학교에서 배울 수 있는건 아니자만, 어떤 전문가에게든 강력한 무기가 될수 있다 • 대부분 타고나는 성격적 특성이지만, 성실한 사람이라면 시간은 걸리겠지만, 이런 역량을 배우고 익히는 것이 가능 12년 11월 25일 일요일
  • 11. 궁극의 비업무 역량: 감성 지능 • 감성지능 (Emotional Intelligence) • 다양한 상황에 적응하고 성공을 이끌어낼 수 있는 능력에 지대한 영향을 주는 몇가지 비인지적인 정신, 감정적인 역량의 척도 • 일반적인 면에서의 지능과는 별개의 것 • 성공에 미치는 영향도 • IQ: 6%, EI: 27% ~ 45% • 전문가로 성공하는 기폭제 역할을 할 뿐 아니라 삶 자체가 달라지는 요인이 됨 12년 11월 25일 일요일
  • 12. 요약 • 소프트웨어 전문가로서의 필요 역량 • 기술 역량 • 특정 분야의 전문성 • 비업무 역량 • 전문가로서 성장하기 위한 2가지 비법 • 중요하지만 급하지 않은 일에 시간을 투자 • 시간이 지남에 따라 고위 전문가로서의 적합성을 극정으로 향상해 줄 수 있는 EI를 계발 12년 11월 25일 일요일
  • 13. 생각해 볼 것 • 각자의 생활에서 4가지 업무 분야에 투자하는 시간의 비율은? • 중요하지만 급하지 않은 일에 얼마나 많은 시간을 투자하고 있는가? • 주변 사람들 중 EI가 높은 사람은? 그 사람의 행동 패턴은? • Assertion에 대한 자신의 생각 • 현재 적용하고 있는가? • 적용했을 때 어떤 이점이 있을거라 생각하는가? 12년 11월 25일 일요일