본문 바로가기
반응형

비개발자의 개발 지식 스터디34

클라우드 서비스(SaaS, PaaS, IaaS) 가상화 기술 클라우드가 전 세계적으로 인기를 끌 수 있었던 건 바로 가상화 기술 덕분 컴퓨터의 운영체제는 하드웨어 자원(CPU, 메모리)을 100% 잘 활용하지 못하므로 자원을 효율적으로 사용할 수 있는 기술에 대한 연구가 활발하게 진행 됨 -> 가상화 기술의 원천 가상화 기술은 하드웨어 자원(CPU, 메모리, 디스크 등)을 효율적으로 사용하기 위해 추상화라는 소프트웨어 기법을 통해 여러 개로 쪼개는 기술 도커,컨테이너는 수많은 가상화 기술 중 최근 가장 인기를 끌고 있는 기술로 최근 들어 컨테이너를 활용해서 클라우드에 서비스를 배포하는 경우가 많아짐 가상화 기술을 거치면 우리의 컴퓨터 자원을 효율적으로 사용할 수 있음 여러 개의 운영체제를 이용해서 한 대의 컴퓨터로도 여러 사용자들이 동시에 이용할 수 .. 2023. 7. 24.
개발자와 커뮤니케이션 개발자가 안된다고 하는 이유 개발자에게 어떤 특정 요구를 하거나 가능하냐고 물어봤을 때 안된다고 하는 경우가 많음 여러명의 개발자들이 한 프로젝트를 관리하다 보면 코드들이 점점 많아지고 읽기 어려워짐 배포까지 코드 빌드, 테스트, 리뷰, 통합 등의 프로세스를 거쳐야 함 바로 고쳐야 하는 오류(핫픽스) 등의 디버깅에 우선순위가 있음 위와 같은 이유들을 고려하여 개발자에게 요청해야 함 커뮤니케이션 TIP 개발의 프로세스에 대한 이해 없이 본인의 요구사항만 얘기하면 개발자는 답답할 수 있음 긴밀한 협업을 위해서는 프로세스의 이해가 필요 무엇을 만들지 뚜렷해야 개발자가 설계하고 개발 공수(소요시간, 난이도 등)를 산정할 수 있으므로 요구는 최대한 구체적으로 해야 함 개발자가 왜 만들어야 되는지 이유를 납득해야 .. 2023. 7. 24.
IT 용어 인프라 인프라는 폭넓은 의미로 프로그램을 실행시키기 위한 환경을 의미 프로그램을 실행시키기 위해선 하드웨어, 운영체제, 네트워크 등의 인프라(환경)이 필요. 일반적으로 인프라 환경을 클라우드에서 많이 제공 코딩 컨벤션 코드를 관리하고 읽기 쉽게 만들기 위한 규칙 코딩은 어떻게 짜냐에 따라 형태가 다양할 수 있음 위 이미지의 1번, 2번 컨벤션은 모두 똑같은 기능을 하지만 들여쓰기를 어떻게 하고 { 를 어떻게 배치하냐는 등은 개발자에 따라 다름 개발자들이 점점 늘어날수록 코드의 통일성이 떨어지게 되므로 코딩컨벤션을 통해 코드를 어떤 형식으로 짜야하는지 정리함 실제로 코딩 컨벤션은 위 예시처럼 뛰어쓰기, 들여쓰기 등의 짧은 코드의 마이너한 규칙부터 시작해서, 파일을 어떻게 배치하고 역할을 나눌지 등도 해당됨.. 2023. 7. 24.
서비스 배포하기 서비스 배포과정 QA까지 정상적으로 마쳤다면 이제 사용자들이 사용하는 실제 환경에 적용하는 배포과정만 남음 일반적으로 개발자가 코드를 짜서 프로젝트에 코드를 합치는 작업들은 전부 개발환경에서 진행됨 개인 컴퓨터를 통해서 프로그램을 실행시키고 코드를 작성하므로 실제 사용자들에게 영향 x 개발환경에서 짠 코드들이 실제 사용자들이 사용하는 운영환경에 업데이트가 되어야 하는데 이를 배포라 함 운영환경: 웹 서버, API 서버, 앱 스토어 등 실제 사용자들이 사용하게 되는 환경(서버) 배포: 개발환경의 코드를 운영환경에 프로그램을 실행시키는 일련의 작업 Example 프론트엔드 개발자가 웹을 개발한 후 웹 서버에 배포하는 작업 필요 백엔드 개발자가 API 서버를 개발한 후 API 서버에 배포하는 작업 필요 모바일.. 2023. 7. 18.
개발 코드 통합하기 개발 코드 통합하기 개발자들이 제품 개발을 위해 코드를 다 작성한 후, 프로젝트에 코드를 통합하는 과정 필요 웹, 앱, 서버 등 특정 목적을 수행하는 프로그램을 위한 소스코드들이 모여있는 공간을 프로젝트라고 하며 여러명의 개발자들이 하나의 프로젝트를 바라보고 코딩을 하게 됨 최종적으로 코드가 합쳐져야 프로젝트에 제대로 개발자들이 짠 코드가 반영됐다고 할 수 있음 소스코드 빌드 & 테스트 실행, 코드 리뷰를 안(못)하는 기업들도 많음 -> 코드를 합치려면 코드 충돌만 해결해도 가능 프로젝트 빌드 & 테스트 실행 개발자가 짠 코드가 최종적으로 원격 프로젝트 저장소에 저장되기 전에 프로젝트 빌드와 테스트 실행이 먼저 실행됨 프로젝트 빌드: 개발자들이 짠 코드를 바탕으로 실행가능한 프로그램을 만드는 것을 의미 .. 2023. 7. 18.
제품 개발하기 제품 개발하기 IT 제품은 IT 서비스를 제공하기 위해서 만들어야 하는 웹, 앱, 서버 등 폭넓은 의미로 사용되므로 IT 회사에서는 서비스를 개발할 때 제품을 개발한다고 이야기 함 제품팀은 어떻게 구성될까 일반적으로 제품팀은 PM 혹은 PO, 기획자, 디자이너, 개발자가 한 팀이 되어 활동함 PM은 Project Manager로 제품을 개발할 때 전반적으로 일정, 역할, 태스크 관리 등을 주도 기획자는 서비스 기획을 담당 예를 들어 친구초대 이벤트를 진행하기로 했다면 기획자는 간단한 화면 구성(프로토타입)을 그려보는 동시에 친구 초대의 정책도 같이 기획함 디자이너는 UI/UX를 담당 우리가 사용하는 모든 웹, 앱은 디자이너가 디자인한 화면을 개발자가 구현해놓은 결과물 개발자는 제품팀에서 나온 기획과 디자.. 2023. 7. 17.
백엔드 개발자 백엔드 개발자 백엔드 개발자는 IT 서비스에 필수적인 데이터들과 관련된 모든 프로그램을 관리하는 직군 데이터를 저장하는 데이터베이스, 데이터를 처리하기 위한 API 서버, 파일들을 저장하는 스토리지 등 백엔드라는 영역은 실제로 굉장히 넓음 작은 스타트업에서는 소수의 백엔드 개발자가 매니지드 서비스을 활용해서 백엔드 서버들의 환경을 구축함 서비스의 규모가 커지면 방대한 양의 데이터와 데이터 요청을 다루기 위해서 많은 백엔드 개발자들이 필요해지며, 백엔드 개발자의 역할이 전문적으로 나뉘게 됨 백엔드 개발자는 다양한 역할을 하며 큰 회사일수록 그 안에서 전문 분야를 나눠서 맡음 API를 개발하는 API 개발자 데이터베이스를 전문으로 맡는 DBA(데이터베이스 관리자) 클라우드를 전문적으로 맡는 클라우드 엔지니어.. 2023. 7. 17.
프론트엔드 개발자 프론트엔드 개발자 프론트엔드 개발자는 우리가 사용하는 웹 서비스를 개발 모든 웹은 HTML, CSS, Javascript 언어로 구성 HTML, CSS는 시각적으로 볼 수 있게 화면을 보여주는 역할(화면은 고정) Javascript는 사용자들이 버튼을 클릭하거나 로그인, 결제하기 등의 동적인 기능을 사용하기 위한 역할 웹서버를 관리하는 건 보통 백엔드 개발자가 하지만 작은 기업같은 경우는 웹서버도 프론트엔드 개발자가 같이 관리 프로덕트 디자이너와 협업 프론트엔드 개발자는 보통 프로덕트 디자이너와 협업을 많이 하게 됨 웹에 새로운 페이지를 만들거나, 페이지 디자인이 변경될 때 프로덕트 디자이너가 선행 작업을 함 디자이너가 작업을 완료하면 프론트엔드 개발자는 이를 통해 간격, 색상, 크기 등의 수치를 확인하.. 2023. 7. 17.
서버 스케일링 & 모니터링 서버 스케일링 많은 사용자가 서비스를 이용할수록 서버에게 많은 요청이 가게 됨 -> 트래픽이 높아짐 트래픽이 높아질수록 서버는 바빠지므로 요청에 응답하기 위해 해당 컴퓨터의 CPU, 메모리를 사용하게 되고 점점 자원이 남지 않아 결국 응답을 바로 못해주고 밀리게 되는 병목현상이 발생 이런 문제를 해결하기 위한 방법으로 스케일 업과 스케일 아웃, 크게 두가지 방법이 존재 스케일 업: 해당 서버의 컴퓨터 성능을 높이는 것으로 CPU나 메모리의 성능을 높여 더 많은 요청에 대응할 수 있게 함 스케일 아웃: 서버를 여러대로 늘리는 것으로 트래픽을 분산시켜 하나의 서버가 일하는 양을 줄여줌 클라이언트에서 요청이 많아지면 자연스럽게 API 서버가 바빠지고 이와 맞물려있는 데이터베이스, 스토리지 등도 바빠지게 되므로.. 2023. 7. 14.
클라우드 클라우드란? 백엔드의 구성인 데이터베이스 서버, API 서버, 스토리지 서버 등은 전부 서버이고 하나의 프로그램이므로 전부 컴퓨터 안에서 동작함 과거 웹 서비스 제공을 위해 웹/API/DB 서버 구축 및 네트워크 설정이 필수적이였음 현재 가상화 기술 기반의 클라우드 서비스를 제공하며 위의 모든 요소를 손쉽게 구축할 수 있게됨 기존에 회사에서 관리해야 했던 컴퓨터들을 클라우드 회사에서 직접 관리 사용자들은 본인의 컴퓨터에서 네트워크 접속을 통해 클라우드의 컴퓨터들을 사용 클라우드 특징 1. 사용자가 몇 번의 클릭만으로 온라인을 통해 서버 컴퓨터를 빌릴 수 있음 온라인으로 손쉽게 서버 컴퓨터를 빌리는 것을 서버 호스팅이라고 함 데이터베이스 같은 특정 프로그램이 미리 설치되어 있는 컴퓨터도 제공 가능 개발자들.. 2023. 7. 14.
백엔드란? 백엔드란? 프론트엔드는 폭넓은 의미로는 사용자가 서비스를 이용할 때 쓰게 되는 웹, 앱 등을 의미 백엔드는 서비스에 필요한 모든 데이터를 저장하고 다루는 공간 많이 사용하는 서비스들을 이용한 예 네이버 - 회원가입한 유저들 데이터, 웹툰 데이터들, 카페 데이터들, 블로그 데이터들 등 수많은 데이터 카카오톡 - 유저 데이터, 유저가 들어간 채팅방 데이터, 유저의 친구들 데이터 등 서비스에 필요한 많은 데이터 백엔드는 서비스에 필요한 데이터들을 저장하고 클라이언트(사용자, 관리자 등)에게 알맞게 데이터를 가공하는 역할 데이터를 가공한다는 것은 원형의 데이터들을 목적에 맞게 가공하는 걸 의미 데이터들을 바탕으로 목적에 맞게 데이터들을 끌어와서 필요없는 건 빼고 필요한 건 살리는 작업 백엔드의 구성 프론트엔드는.. 2023. 7. 14.
프론트엔드(앱) 모바일 앱 기본 지식 거의 모든 스마트폰의 OS는 android와 ios로 나뉘고, OS가 다르기 때문에 기본적으로 앱을 개발하는 방식이 다름 android는 java 혹은 kotlin 이라는 프로그래밍 언어로 개발 ios는 swift 혹은 objective c 프로그래밍 언어로 개발 웹은 HTML, CSS 코드로 화면을 그리는 반면, 모바일 앱을 개발할 때는 GUI 환경에서 화면을 짤 수 있음(프로그래밍 언어로도 화면을 구성할 수 있음) 스토어에 올라가기 전에 정상적인 앱인지 심사를 거치게 됨 심사는 사람이 직접 하게 되며 심사를 통과하고 나면 정상적으로 플레이스토어에 올릴 수 있게 됨 보통 앱 서비스를 내기 위해선 안드로이드는 구글 플레이스토어 , ios는 앱 스토어에 심사를 맡기게 됨 구글 플레이스.. 2023. 7. 14.
반응형