webdev,

Project Planning

Dahna Dahna Follow Feb 26, 2024 · 4 mins read
Project Planning
Share this

웹사이트 구축 단계

  1. 프로젝트 요구사항 정의
    웹사이트의 목적과 기능
    타겟 사용자
    기대되는 트래픽 양과 확장성 요구사항

  2. 기술 스택 선택
    프론트엔드: HTML, CSS, JavaScript (프레임워크 예: React, Vue.js)
    백엔드: Node.js, Django, Flask, Ruby on Rails 등
    데이터베이스: MySQL, PostgreSQL, MongoDB 등
    웹 서버: Nginx, Apache 등
    클라우드 서비스: AWS, Google Cloud, Azure 등 (선택적)
    보안: SSL 인증서, 데이터 암호화

  3. 개발 환경 설정
    개발에 사용할 IDE 및 코드 편집기 선택
    버전 관리 시스템 (예: Git) 설정
    개발, 테스트, 프로덕션 환경 분리

  4. 웹 서버 구축
    선택한 기술 스택에 맞게 서버 설정
    도메인 구입 및 DNS 설정
    SSL 인증서 설치하여 HTTPS 설정
    클라우드 서비스 사용 시, 해당 서비스의 인스턴스 및 관리 도구 활용

  5. 데이터베이스 설계
    테이블 설계
    데이터 관계 및 무결성 유지를 위한 설계
    백업 및 복구 전략 수립

  6. 프론트엔드 및 백엔드 개발
    사용자 인터페이스 설계 및 구현
    사용자 인증, 작품 업로드 및 관리 등의 백엔드 로직 구현
    API 개발 및 통합

  7. 보안 조치
    사용자 데이터 보호를 위한 암호화 적용
    SQL 인젝션, XSS, CSRF 등의 보안 취약점 방지
    서버 및 데이터베이스의 접근 권한 관리

  8. 테스팅 및 배포
    단위 테스트, 통합 테스트, 성능 테스트 등을 수행
    배포 전 최종 점검
    지속적 통합 및 배포 (CI/CD) 도구 사용 (선택적)

  9. 유지보수 및 업데이트
    정기적인 보안 업데이트 및 패치 적용
    사용자 피드백을 바탕으로 기능 개선
    서버 및 데이터베이스 성능 모니터링 및 최적화


웹 서버 구축 옵션

  1. 전용 호스팅
    전용 서버: 물리적 서버를 임대하여 웹사이트를 호스팅
    이 옵션은 서버에 대한 전체 제어 권한을 제공하며, 고성능과 고가용성이 필요한 대규모 웹사이트에 적합하다.
  2. 공유 호스팅
    공유 서버: 가장 경제적인 웹 호스팅 형태로, 여러 웹사이트가 하나의 서버 자원을 공유.
    소규모 웹사이트나 블로그에 적합하지만, 다른 웹사이트의 트래픽에 따라 성능에 영향을 받을 수 있다.
  3. 가상 사설 서버(VPS) 호스팅
    VPS: 가상 사설 서버는 전용 서버의 일부 자원을 가상화하여 제공
    사용자는 루트 액세스 권한을 가지며, 서버 설정과 관리에 대한 더 많은 제어를 할 수 있다.
    중소규모의 비즈니스에 적합하며, 비용 대비 좋은 성능을 제공함
  4. 클라우드 호스팅
    클라우드 서비스: AWS, Google Cloud, Azure와 같은 클라우드 서비스 제공업체를 통해 서버 자원을 임대
    확장성과 유연성이 뛰어나며, 사용한 만큼만 비용을 지불하는 구조.
    트래픽 변동성이 큰 웹사이트에 적합하다.
  5. 관리형 호스팅 서비스
    관리형 호스팅: 서버 운영에 대한 기술적인 관리를 호스팅 제공업체에 맡김
    서버 설정, 유지보수, 보안 업데이트 등을 포함할 수 있으며, 기술적인 부담을 줄여줌
  6. 코로케이션(Colocation)
    코로케이션: 자신의 서버를 데이터 센터에 배치하고, 데이터 센터의 인프라(인터넷 연결, 전력, 냉각 시스템 등)를 사용한다. 이 방식은 전체적인 제어권을 유지하면서도, 고급 인프라의 이점을 누릴 수 있다.


AWS의 EC2와 S3 차이점

Amazon EC2 (Elastic Compute Cloud)
목적: 가상 서버를 제공.
사용자는 이 가상 서버를 사용하여 애플리케이션을 호스팅하고, 서버 사이드 작업을 실행하며, 다양한 컴퓨팅 작업을 수행할 수 있다.
기능: EC2는 사용자가 원하는 만큼의 CPU, 메모리, 스토리지 및 네트워킹 용량을 갖춘 가상 컴퓨팅 환경을 제공함. 사용자는 이를 통해 서버 규모를 쉽게 조정할 수 있으며, 다양한 운영 체제와 애플리케이션 소프트웨어를 실행할 수 있다.
사용 사례: 웹 애플리케이션 호스팅, 데이터 처리, 백엔드 서버 운영, 게임 서버, 컴퓨팅 작업 등.

Amazon S3 (Simple Storage Service)
목적: S3는 인터넷을 통해 언제 어디서나 접근할 수 있는 스토리지 서비스를 제공한다.
사용자는 S3를 사용하여 데이터를 저장하고 검색할 수 있음
기능: S3는 높은 내구성과 가용성을 제공하는 객체 스토리지 서비스이다.
사용자는 사진, 비디오, 로그 파일 등 다양한 형태의 데이터를 S3에 저장할 수 있으며, 데이터는 ‘버킷’이라는 컨테이너에 저장됨.
S3는 무한한 스토리지 용량을 제공하며, 사용한 만큼만 비용을 지불한다.
사용 사례: 웹사이트의 정적 파일 호스팅, 백업 및 아카이브, 빅 데이터 분석용 데이터 레이크, 모바일 애플리케이션의 데이터 저장 등.

⇨ EC2는 가상 서버를 제공하여 컴퓨팅 작업을 실행할 수 있는 환경을 제공하는 반면, S3는 데이터를 저장하고 검색할 수 있는 스토리지 서비스임
EC2는 컴퓨팅 리소스의 확장성과 유연성을 제공하고,
S3는 데이터 저장과 관리에 초점을 맞춘 서비스
EC2와 S3는 종종 함께 사용되어 애플리케이션을 운영하고 데이터를 저장하는 데 필요한 종합적인 솔루션을 제공한다. 예를 들어, 웹 애플리케이션은 EC2 인스턴스에서 실행될 수 있으며, 정적 콘텐츠와 미디어 파일은 S3에 저장될 수 있다.


개발 환경

Frontend: HTML, CSS, JavaScript
Framework: React
Backend: Flask
Database: MySQL
Web Server: Nginx
Cloud Service: AWS
Version Control: Git
IDE, Code Editor: PyCharm, VS Code

추가할 기능
콘텐츠 보호 기술
저작권 고지 및 사용약관 추가
언어지원
서치기능

Nav
작가소개, 이력
이전, 현재, 다가올 전시 리스트 & 정보
작품소개 - 서양화, 일러스트, 조소, 상품화 등 분류(판매 페이지 연결)
Contacts, FAQ, Reproduction Request


작가 사이트 참고
David Hockney
1

Yayoi Kusama
2

Banksy
3


Dahna
Written by Dahna Follow
Hi, I am Dahna, the author of this blog!