1. 앱 개발이란?
1) 의사소통
- 실제 실무에서의 면접 포인트
- 시간 단축을 통한 효율적인 일처리 가능
- 업무 차이에서 비롯한 어려운 용어 사용, 관점 차이 등의 문제 발생 가능
- 어려운 용어 관점 차이
2) 필요인력
i. 기획자
: 원하는 '제품' 또는 '기능'을 기획하는 인력
ii. 디자이너
: 제품 또는 기능을 눈에 보이게 만드는 인력
iii. 개발자
: 제품 또는 기능을 실제로 사용할 수 있게 만드는 인력
3) 개발자
i. 서버 개발자 (백엔드)
- 사용자 간의 의사소통을 목적으로 개발
- 정보를 가상 클라우드에 저장하기 위해서 개발
ex) 영상물 이어보기, 모바일과 pc에서 같은 채팅 이어 하기, 사용자 간의 커뮤니케이션 등
ii. 클라이언트 개발자 (프론트엔드)
- GUI를 만드는 개발자 (Graphic User Interface)
: 그래픽 요소가 있는 모든 것들 - 특히, 사용자의 input에 대해 반응할 때
- TYPE )) 안드로이드 / IOS / 웹 / 통합개발자 (안드로이드 + IOS)
- 백엔드 개발자와의 의사소통 많음
iii. 게임 개발자
: 다른 분야와 구별됨
iv. 머신 러닝 개발자
: 영상 추천하는 알고리즘 등
v. 임베디드 개발자
: 소형 전자기기에 들어가는 SW 개발
vi. 보안 개발자
: 사용자의 정보를 지키는 보안 관련
2. 앱 개발 프로세스
1) 다양한 인풋
: 개발의 원인 및 목표 단계
2) 기획
: 기능 추가, 제거, 수정 단계
3) 디자인
: 화면 디자인
4) 개발(서버)
: 클라이언트와의 의사소통 방식 등이 고려되어야 하므로 일반적으로 서버 먼저 구축
5) 개발(클라이언트)
:
6) 검수
7) 개발
8) 배포
개발 프로세스 방식
- 워터폴(Waterfall) : 한 번의 프로세스
- 애자일(Agile) : 짧은 cycle으로의 여러번의 프로세스 (흐름 변화에 민첩히 대응 가능)
3. 개발자의 용어
1) 클라이언트, 프론트엔드
i. GUI
: 그래픽으로 user와 의사소통하는 것
ii. 안드로이드
iii. iOS
iv. 웹
2) 서버, 백엔드
요청에 맞는 대답을 해주는 것
i. AWS
- 아마존이 제공하는 서비스
- 클라우딩 컴퓨터를 제공
- 컴퓨팅 성능을 빌려주는 업체
ii. Azure
- 클라우딩 컴퓨터를 제공
- 컴퓨팅 성능을 빌려주는 업체
3) 개발언어
i. C언어
ii. 안드로이드 -> 자바, 코틀린
iii. iOS -> Swift
iv. 서버 -> 파이썬, 자바스크립트 등
4) 소스코드
i. Git 깃
: 버전에 따라 다른 소스코드를 관리해주는 툴
ii. Github, Gitlab
: Git을 원격 저장소에 저장해주는 것 (소스코드원격저장소)
5) 운영체제
: HW와 SW의 의사소통하는 매개체
i. Unix, 우분투
ii. 안드로이드
iii. iOS
iv. 윈도우
6) 데이터
i. 데이터 베이스
: 데이터를 저장한 곳
ii. MySQL, PostgreSQL, Oracle
: 데이터베이스를 사용자가 사용하기 쉽게 개조해 판매하는 방식
iii. 빅데이터
: 데이터가 많은 걸 통칭 (몇십, 몇조)
7) 개발관련용어
i. 프레임워크
: Android Studio 같은 것
ii. Library
iii. 디버깅
iv. 레거시
: 작성한 지 오래된 소스코드
v. TDD(Test Driven Development)
: 테스트 먼저 하고 개발하는 것
8) 안드로이드 용어
i. Activity
: 모든 화면
ii. Dialog
: 팝업같이 올라오는 화면
iii. 애뮬레이터
: 가상의 핸드폰 (점검용)
iv. 안드로이드 스튜디오
9) 웹 관련 용어
i. http, https
ii. 트래픽
: 클라이언트로부터 요청받는 횟수
iii. html
iv. css
v. bootstrap
: css의 테마같은 것
vi. 반응형 (RWD: Responsive Web Design)
: 사용자의 화면크기에 반응