Winnie The Pooh Bear

📕 독서 기록

[독서 기록📚] 오늘도 개발자가 안 된다고 말했다(4): 개발자의 일

alwayshappydaysforever 2025. 4. 23. 17:58
반응형

 

 

[독서 기록📚] 오늘도 개발자가 안 된다고 말했다 (3): 디자이너의 일

[독서 기록📚] 오늘도 개발자가 안 된다고 말했다 (2) 기획자의 일[독서 기록📚] 오늘도 개발자가 안 된다고 말했다 (1) 가깝고도 먼 개발자1. 어딘가 이상한 비전공자의 협업 기획자 김 군의 협

alwayshappydaysforever.tistory.com


1. 개발자 이해하기 

웹 개발자 = FE, BE

1. 프론트엔드 개발자 

1) 퍼블리싱: 웹 디자이너가 만든 디자인을 웹페이지에 입히는 작업 

- 웹페이지 만들 때는 HTML과 CSS를 활용한다 

     - HTML: 다양한 태그들을 활용하여 웹 문서 구조 제작 / 현재 가장 보편화된 마크업 언어 

     - CSS: HTML로 작성된 문서를 레이아웃, 배치, 컬러, 폰트 등을 적용하여 시각적으로 아름답게 꾸미는 역할 

 

2) 프론트엔드 개발 

- 대표적인 개발 언어

   - 자바스크립트 

                   - 특징1: 가볍고, 실행 속도가 빠르며 러닝 커브가 낮다 

                   - 특징2: HTML과 CSS로 만든 웹페이지는 정적인 느낌이라면, 자바는 동적인 느낌을 줌

                      - 특징3: 다양한 기능을 제공하는 웹 애플리케이션 개발에 집중 (싱글 페이지 애플리케이션 / UI 컴포넌트 집합)

2. 백엔드 개발자 

- 서버 기반의 프로그래밍 언어로 클라이언트에서 요청하는 데이터를 처리하는 작업 

- 웹 서버는 프레임워크를 기반으로 개발하여 클라이언트에 API 또는 View를 제공하며 MySQL, MongoDB, Oracle등 데이터베이스 제품을 웹 서버 프레임워크와 연결해 사용 

- 대표 업무 : 데이터베이스와 연동하여 쓰기, 읽기, 수정, 삭제 등 데이터를 가공하는 비즈니스 로직 개발 

- 특징 : 복잡한 업무 특성 때문에 한 가지 언어와 프레임워크를 고수하는 경우가 많다 

- 소통: 백엔드 개발자와 원활한 소통과 협업을 하려면 이들이 사용하는 언어와 프레임워크가 어떤 것인지 이해하고 서비스의 방향성과 맞는 언어와 프레임워크는 어느 것인지 확인하는 과정이 중요 

 

3. 풀스택 개발자

- 프론트엔드 개발 + 백엔드 개발이 가능한 개발자 

- 대표적으로 MEAN Stack이 있다 


모바일 개발자 
모바일 = 모바일 웹(=웹 프론트엔드 개발자) + 네이티브 앱

1. iOS 개발자 

- 언어: Swift(애플에서 직접 개발한 언어, 오픈소스로 공개) 혹은 Objective-C 언어 사용 

- iOS 애플리케이션은 Mac 환경에서만 개발할 수 있고, 배포 또한 XCode라는 Mac 전용 개발 도구에서 가능 

- XCode는 스토리보드라는 UI 편집도구 제공

- 배포가 까다로워 Testflight앱으로 테스트 진행 

2. 안드로이드 개발자

- 언어: Java 혹은 Kotlin(안드로이드 스튜디오를 만든 JetBrain에서 새롭게 개발) 

- 안드로이드 스튜디오라는 프로그램으로 개발 

- 배포가 까다롭지 않다 

3. iOS + 안드로이드 개발을 합친 하이브리드 앱 개발자

- 하나의 개발로 각각의 앱스토어에 배포할 수 잇는 방식

1) 웹뷰 패키징 방식

: 모바일 웹을 개발하고 안드로이드와 iOS의 웹뷰 UI에 연결하는 방식

: 단점 - 네이티브보다 느리고, 자연스럽지 X, 디바이스의 기능을 사용하기 힘듦

2) 네이티브 빌더 방식

 

<소통에 필요한 개발 용어>

용어
서버와 호스팅 웹페이지가 브라우저에 나타나려면 서버가 필요. 
서버: 인터넷과 연결된 컴퓨터 / 호스팅: 서버를 임대해주는 서비스 

> 소규모 회사나 개인이 운영하는 경우에는 전문 웹 호스팅 회사에서 운영하는 서버 사용
트래픽 웹사이트에 사용자가 방문하면 서버에서 다양한 데이터를 불러오는데, 이 때 사용되는 서버 데이터 전송량 = 트래픽

접속자 수에 비해 트래픽 용량이 적다면 서버 다운
프로토콜 컴퓨터, 서버, 네트워크 장비가 통신할 수 있도록 공용화된 언어 = 프로토콜 
대표 프로토콜: HTTP, HTTPS, FTP,....
HTTP/HTTPS 하이퍼텍스트 전송 프로토콜의 약자, 서버에서 데이터를 전송해주는 가장 기본적인 프로토콜 
> 하지만 암호화되지 않아 내용 노출 가능성 - 보안 문제를 보완해주는 프로토콜: HTTPS
SSL 서버와 브라우저 사이의 데이터 보안을 위해 만들어짐 
SSL을 구축하면 HTTPS 프로토콜을 구성할 수 있음 
FTP 서버에 파일을 전송하기 위한 프로토콜 
DNS 도메인 네임 서버, 네트워크에 연결된 컴퓨터나 스마트폰 등의 장치들은 서로 구분할 수 있는 IP 주소를 가짐 
= DNS를 이용해 IP 주소를 문자로 변환하여 사람들이 쉽게 접속하도록 도움 
클라이언트와 서버 클라이언트: 사용자, 서비스를 제공받는 유저 = 프론트엔드
서버:서비스를 제공하고 데이터를 저장하는 컴퓨터 = 백엔드
프레임워크 특정 개발 언어를 개발하고자 하는 목적 등에 맞게 쉽게 작성할 수 있도록 뼈대를 갖추어 
개발자가 손쉽고 빠르게 구현할 수 있도록 만든 것 

> 프레임워크 안에는 '라이브러리' 코드가 포함 
라이브러리 필요한 기능을 모아둔 도구 

> 프레임워크를 지정했다면, 그에 맞는 기능을 구현하기 위해 미리 짜여진 '라이브러리' 코드를 가져와서
사용하면 더 쉽고 빠르게 개발 가능 
리팩토링 개발 코드의 기능을 바꾸지 않으며 코드의 가독성을 높이고 수정하기 쉽게 만드는 과정 

> 버그 발견하거나 줄일 수 있고, 개발 속도 단축 가능 
> 새로운 개발 기능을 추가해야 할 때 리팩토링 하는 경우가 많음 
버그 코드에 오류가 있음
디버깅 버그의 원인을 찾고 수정하는 작업
API / 오픈 API API: 개발자가 만든 특정 기능을 다른 사람이 사용할 수 있도록 모듈화한 것 
오픈 API: 누구나 사용할 수 있도록 공개, 사용된 코드는 숨겨서 공유 (ex. 소셜 로그인 API, 지도 API) 
데이터베이스 데이터를 저장하는 장소 
DB 관리하는 시스템: MySQL, MongoDB
Git / Github Git: 개발자들이 사용하는 버전 관리 프로그램 
GitHub: 백업, 다른 유저들에게 오픈소스 공유
예외 처리 -
컴파일 작성한 코드를 컴퓨터가 이해할 수 있는 기계어로 변환하는 작업
빌드 -
배포 -
핫픽스 긴급배포를 하기 위한 코드 작업
SDK 소프트웨어 개발 키트 / 개발, 디버깅 프로그램,, API 등 응용 프로그램을 만들 수 있게 해주는 개발 도구 
APK/IPA APK: 안드에서 동작하는 애플리케이션 확장자
IPA: iOS에서 동작하는 애플리케이션 확장자
= 디바이스에 앱 설치하는 역할
IDE 통합 개발 환경 (ex. 인텔리J, 이클립스, Xcode,...) 
리눅스 컴퓨터 운영체제, 유닉스 운영체제 기반으로 만들어짐 
= 저렴해서 개인, 중소기업에서 사용
동기방식/비동기방식 동기: 요청 순서대로 데이터 처리
비동기: 요청 순서 관계없이 데이터 처리 
워터폴방법/
애자일방법
워터폴: 기획이 완전히 끝난 후 개발
애자일: 서비스를 단위로 쪼개어 특정 기간안에 개발 범위를 세분화하고 점진적으로 고도화 
코드 리뷰
오픈 소스  누구나 자유롭게 확인,수정, 배포할 수 있는 코드 (ex. 리눅스 OS) 
모듈 프로그램을 구성하는 요소의 일부, 기능별로 나누어지는 프로그램 
알고리즘 문제 해결할 때 이용하는 논리적인 절차, 방법
순서도 알고리즘을 알아보기 쉽게 도식화하여 작성한 것 
모바일 웹 웹 개발 방식으로 모바일 스크린 크기에 맞춰 제작한 웹
네이티브 앱 모바일 스토어에서 내려받아 단말기에 직접 설치하는 어플 
하이브리드 앱 HTML 기반으로 제작된 모바일 웹앱

 

 

2. 생산성 향상을 위한 협업 툴

1) 커뮤니케이션 도구

- 슬랙 

- 지라: 할당 업무 부여(티겟)

- 컨플루언스: 위키 소프트웨어 (위키백과)

- 트렐로: 소규모 추천 

- 노션

 

2) 기획자/디자이너 협업 도구

- 스케치

- 제플린: GUI 가이드 프로그램

- 피그마

 

 

반응형