본문 바로가기
프로그래밍/개발 상식 등

[독서] 화성에서 온 프로그래머 금성에서 온 기획자

by 숙님 2022. 4. 11.
728x90

프로그래밍을 조금이라도 할 수 있는 기획자와 전혀 할 수 없는 기획자는 천지차이 
개발하고자 하는 것의 '이상'과 '현실'을 판단하는 능력 

프로그래밍은 새로운 무언가를 창조하는 행위 
웹서비스 - 선데이 프로그래머 
가전제품 프로그램 - 임베디드 프로그래머
게임 - 게임 프로그래머
스마트폰 앱 - 앱 프로그래머
아키텍트 - 프로그래머 중 최고 수준 프로그래머 

프로그래머를 채용하는 것은 쉽지 않음
구직자의 능력을 판가름하기 어렵기 때문 

프로그래머 분류 
스피드 타입: 빠르게 구현, 규모 있는 프로젝트 제대로 못함
아이디어 타입: 생각못한 기능과 기술 생각, 많은 아이디어 적용하려다 멘탈 무너짐
철학자 타입: 예술 프로그램 제작, 복잡해 유지보수 어려움
땡땡이: 이미 만들어진 것 조합해서 결과 만듦, 마감 직전에 완성하는 경우가 많음
깔끔이: 유지보수 쉬운 것 우선 작성, 독창성이 없고 어디에 사용할지 모르는 프로그램이 만들어짐 
근성: 포기하지 않고 작성, 참신하지못하고 평범
마감철저: 마감철저함, 완성도 낮춤 70%에 만족 

명세서 
UI/UX: 외부명세서 
프로그래머가 프로그래밍 할 수 있도록 분류하여 작성: 내부명세서 

협업
호치키스의 심이 이상하게 박혀있다(넘기기 쉬운 방향으로 박기)
페이지 번호 적기 
날짜와 버전을 번경하기 
그림을 넣기 
IT용어 사용 정확히 사용하기 
숫자를 쓸때는 잘 아는 것만 쓰기(모르겠으면 '구체적인 시간은 검토해야 합니다'와 같이 쓰기)
프로그래밍이 어떻게 움직이는지 확인
불가능한 기술을 전제로 하지 않기 

프로그래머의 개발 방식
1. 워터 폴 개발 프로세스 
외부 명세 정의-내부 명세 정의 - 구현 - 개별테스트-종합테스트- 납품 
명세가 도중에 바뀌지 않도록 '정의 프로그래머'가 기획과 명세의 단계에서 개입함 

2. 애자일 개발 프로세스 
소규모 팀에서 짧은 반복과정으로 아이디어 원천을 찾고 콘셉트를 검증하는 방법 
워터 폴 개발의 축소판 
엄밀한 테스트 X
개발 사이클은 1~3개월 
완성한 결과의 문제점 검증, 조금씩 수정해나감

3. 인하우스 개발 프로세스 
공식적인 개발 프로세스가 진행되기 전 단계에서 

회사의 어떤 프로그래머 혼자만의 힘으로 진행하는 소프트웨어 개발방법 
프로그래머에게는 이상적인 개발방법
예: 구글의 20% 룰, 인하우스 개발과 같은 자발적인 프로젝트를 위해서 업무 시간의 20%를 써도 된다는 규직 

프로그래머의 회사 동료 3가지 
- 프로그래머
- 이야기할 가치가 있는 동료
자신이 보지 못하는 시각을 제공해 주는 동료 
자신의 의견을 새롭게 해석해 주는 동료
어떤 개발을 하는지 물어봐주는 동료 
새로운 기술. 앱에 대해 알려주는 동료 
구체적일수록 좋음 
앱, 게임할 떄 느낀 의문점이나 막힌 부분을 메모하기 
- 이야기할 가치가 없는 동료

PCW(Plan - code - wow)를 반복하라 
계획- 프로그래밍 - 감탄 

기획자와 프로그래머 일하는 법 
- 제대로 된 작업이 시작되면 주 2번, 가능하다면 매일 진행상황을 확인하라 
- 구체적인 계획과 작업량을 비교해라 

개발자 꿀 환경
빠른 인터넷 속도 
듀얼 모니터 

인터넷 자료 활용하는 법
닷인스톨 https://dotinstall.com/
코드아카데미  https://www.codecademy.com/

초보자의 경우 게시판을 만들어보기 
ruby나  php로 만들어보기 

c언어 
처리속도 빠름, 대부분 컴터 동작 

c++
c언어 기반 객체 지향 도입 
c언어보다 코드의 재사용이 쉬움
프로그래밍 경험자가 많이 사용
윈도우용 앱과 게임 소프트웨어 사용

c#
c++을 기반으로 단점을 보완해 만든 언어
작성편리 유지보수 편리 
사용환경 한정적 

자바 
소형 단말기부터 대규모 서버까지 사용
안드로이드관련 앱은 자바로 만듦

자바스크립트 
웹 브라우저상에서 동작하는 프로그램은 대부분 해당
서버 프로그램을 작성하는 언어로 평가

Object-c
c언어기반 객체 지향 개념 도입 
mac, ios용 앱을 개발 시 사용

swift
애플사가 Object-c의 단점을 보완해서 만든 언어 
향후 ios용 개발은 swift로 바뀔 전망

Haskell
순수 함수형 프로그래밍 언어 

php
웹 서비스를 만들 때 사용하는 스크립트 언어 
facebook도 php로 만들어짐 

ruby
트위터를 비롯해 많은 웹서비스에 활용
범용 스크립트 언어 

perl
유닉스에서 사용되는 간단한 스크립트 언어 
웹 서비스 작성하는 프로그래밍 언어로 사용

FORTRAN
오래된 프로그래밍 언어 중 하나 
과학 기술 계산에 특화된 언어 
수식을 다루는 것이 특기 
Formula를 프로그래밍 언어로 translastor한다는 의미 
c언어에 큰 영향을 준 언어 

LISP
List processor의 준말 
리스트라는 데이터 더엉리를 다루는 것이 특기인 언어 

cobol
공통 사무 처리용 언어 
은행의 기간계 시스템에 사용

smalltalk
코드의 재활용이라는 개념 도입된 언어 
객체 지향

html
웹페이지 만들 때 사용
명령어의 집합을 태그
웹 브라우저는 html을 해석
자바스크립트는 html 태그 안에 포함될 수 있음

css
웹페이지의 외형을 꾸밈

sql
데이터베이스 자료 처리 

GLSL
게임 소프트웨어, 그래픽 소프트웨어에서 그래픽 처리장치를 직접 사용할 때 필요한 언어 
GPU관련 컴퓨팅에 사용 

키보드의 방식 
멤브레인 방식-구리를 통해 패턴 전달 
팬터그래프 방식 - X자 모양 구조체 이용하여 키의 움직임을 안정시킴 
메캐니컬 방식 - 기계식 스위치 사용 구성  

맥을 쓰는 이유는 많은 언어 및 환경을 자유자재로 쓰기 위함이다 

용어정리 
리팩토링: 소스코드를 정리, 불필요한 소스코드를 제거 

기획자
- 시장조사
경쟁환경 분석
고객 분석
밸류 체인 분석
전략 방향 설정
- 서비스 기획
서비스 기획 (컨셉)
비즈니스 모델링 및 사업 개발 
투자비용 분석
내부 개발조직 셋업 및 외부 협력사 소싱
서비스 정책 정의 
서비스 기호기 (상세기획, UI, 요구사항 정리)
고객 조사 

https://brunch.co.kr/@supernova9/204

- 서비스 개발
구현 가능성 검토(개발조직)
요구사항 확정 및 설계단계 지원
UI/GUI/UX개발 및 검수
개발 진행
테스트
- 서비스 마케팅
내부 유관부서 협업
마케팅 전략 수립
광고/프로모션 계획 수립 
PR준비 
- 서비스 운영
서비스 정책 재검토 
서비스 운영/고객CS
유지보수 및 서비스 수정
서비스 통계 기반 시사점 발굴
손익분석 및 정산 
 
개발자의 특징 
1. 개발자는 스스로 동의하고, 선택한 일에 헌신
2. 자존심에 목숨 거는 개발자도 있음
3. 실용미술과 예술 사이에서 서로 충돌함 
4. 할 수 있는 이유도 쉽게 찾지만 안 되는 이유를 100가지도 쉽게 찾는 존재 

댓글