웹서비스 개발하기 (개요)
웹서비스와 웹사이트는 다르다.
웹사이트는 정보나 컨텐츠를 담고있는 정적인 페이지에 불과하다면
웹서비스는 사용자의 반응에 따라 상호적으로 반응하는 동적인 기능이다.
내가 만들고 싶은 것은 웹서비스이다.
웹서비스를 개발하기 위한 10단계는 다음과 같다.
1 무엇을 만들 것인지 정한다.
2 필요한 스킬과 도구를 파악한다.
3 웹 프레임워크를 선택한다.
4 기본적인 웹 서버를 구성한다.
5 HTML, CSS, JavaScript 코드를 작성한다.
6 백엔드와 프론트엔드를 연결한다.
7 데이터베이스를 연결한다.
8 서버를 배포한다.
9 테스트와 디버깅을 수행한다.
10 유지 보수 및 업데이트를 수행한다.
위 10단계를 수행하기 위해 내가 가져야할 가장 중요한 스킬은
프로그래밍 언어와 프레임워크에 대한 이해이다.
자바, 파이썬 등 내가 필요한 컴퓨터 언어를 이해하는 것이 중요하며
웹서비스를 만들기 위해 프레임워크를 선택하고 이해하는 것이 중요하다.
저 위의 상당수의 단계를 간편하게 할 수 있는 툴이 프레임워크이기 때문이다.
프로그래밍 언어
프로그래밍 언어라고 하면 어렵게 생각하지만
웹 개발 시 사용되는 언어는 그리 어렵지 않다고한다.
프론트앤드(브라우저)와 백앤드(데이터 및 로직)를 이해한다.
프론트앤드는 사용자가 볼 수 있는 컴퓨터상의 화면을 의미한다.
이 화면에서 우리는 아이디와 비번을 입력하고 로그인 하기도 하고 데이터를 받기도 한다.
프론트앤드에 사용되는 HTML 과 CSS, 자바스크립트 등을 먼저 배우고 이해한다.
(배우지 않아도 할 수 있는 방법은 많지만 근본적인 이해와 추후 발생하는 문제를 해결하기 위해 배워놓는 것이 좋다. )
백앤드 언어를 몰라도 API를 잘 쓰면 쓸만한 서비스를 만들 수 있다.
(API란?: 미리 만들어 놓은 것을 다른 어플에 가져다 쓸 수 있는 기능 Ex) 구글지도를 트립어드바이저에서 이용 가능)
변수, 조건문, 반복문, 함수만 알아도 웬만한건 만들 수 있다.
1. 변수: A는 B다 (아이디 = abc)
2. 조건문: 만약~라면 (아이디와 비번이 일치하면 로그인)
3. 반복문: ~를 n번 반복해라
4. 함수: a를 넣으면, b가 나옴 (공격력이 4면 데미지 40)
프레임워크
프레임워크란 웹서비스를 개발할 때, 필요한 기능을 제공하는 소프트웨어 도구 모음이다.
프레임워크를 사용하는 단계는 아래와 같다.
1. 프레임워크 설치
2. 새로운 프로젝트 생성
3. 라우팅 설정
4. 모델 생성
5. 뷰 작성
6. 템플릿 작성
7. 디버깅 및 테스트
8. 배포 및 유지보수
첫번째 단계로 프레임워크를 선택하고 설치해야 한다.
가장 많이 사용되는 프레임워크는 아래와 같다.
1 Django: 파이썬 기반의 웹 프레임워크
2 Flask: 파이썬 기반의 경량 웹 프레임워크로, Django에 비해 더 간단한 구조와 속도를 제공
3 Ruby on Rails: 루비 기반의 웹 프레임워크. 매우 직관적인 구조와 빠른 개발 시간, 자동화된 테스트와 배포 기능을 제공
4. Express: Node.js 기반의 웹 프레임워크
위 네가지 프레임워크중 초보자에게 가장 추천할 수 있는 프레임워크는 바로 3번 Ruby on Rails 이다.
Ruby on Rails는 가장 적게 배우고 가장 많은 활용이 가능하다고 한다.
정리
웹서비스 개발
프론트앤드와 백앤드 이해
프레임워크 초보자에게 용이한 루비 온 레일즈
웹서비스 개발 용어정리
웹서버: 웹페이지를 보관하고 HTTP를 통해 사용자 요청에 응답하는 컴퓨터 프로그램
웹프레임워크: 웹서비스를 개발할 때 필요한 기능을 제공하는 소프트웨어 도구 모음
REST API: 웹상에서 클라이언트와 서버 간 통신을 위한 아키텍처로, URL과 HTTP 메서드를 이용해 데이터를 주고받음
ORM: 객체와 데이터베이스 간의 변환을 자동화해주는 프로그래밍 기술
Git: 소스코드 버전 관리 도구로, 코드 변경 이력을 기록하고 여러 사람이 동시에 작업할 수 있도록 지원함
라이브러리: 프로그래밍을 위해 자주 사용되는 함수나 클래스 등의 모음
CDN: 컨텐츠 전송 네트워크로, 전세계 여러 지역에 서버를 설치해 사용자가 컨텐츠를 더 빠르게 받을 수 있도록 함
가상환경: 프로젝트별로 필요한 파이썬 패키지를 분리해 설치할 수 있는 독립적인 환경
SSH: 원격 컴퓨터에 접속하기 위한 네트워크 프로토콜로, 암호화된 터널을 통해 보안성을 보장함
MVC: 웹개발 패턴으로, 모델, 뷰, 컨트롤러로 구성되어 데이터 처리와 사용자 인터페이스를 분리함
프론트엔드: 웹서비스에서 사용자가 볼 수 있는 부분을 담당하는 기술 분야
백엔드: 웹서비스에서 사용자에게 보이지 않는 서버 측 로직을 처리하는 기술 분야
API: 응용 프로그램 간 상호작용을 위한 인터페이스로, 데이터를 주고받는 방식을 정의함
가상화: 하드웨어 자원을 분할해 가상 환경을 생성하는 기술로, 서버 관리와 운용을 편리하게 함
마이그레이션: 데이터베이스의 스키마 변경 등으로 인한 데이터 이전 작업
스케일 아웃: 대규모 서비스를 처리하기 위해 서버의 개수를 늘리는 작업
라우팅: URL 요청에 대한 적절한 응답을 반환하기 위해, URL 경로와 함수를 연결하는 매핑을 설정하는 것.
프레임워크: 애플리케이션 개발을 단순화하기 위해, 기본적인 기능과 규칙을 제공하는 소프트웨어 도구 모음.
템플릿: 웹사이트나 애플리케이션에서 사용되는, HTML, CSS, JavaScript 등으로 구성된 미리 정의된 디자인 패턴.
뷰 함수: 웹 프레임워크에서 클라이언트의 요청을 처리하고, 적절한 응답을 반환하는 함수.
디버깅: 소프트웨어 버그를 찾아 수정하기 위해, 프로그램 코드의 오류를 추적하고 수정하는 과정.