카테고리 없음

오늘부터-웹-개발-인공지능-맛보기 1주차

inhooo00 2024. 8. 16. 21:41

구름톤 유니브 3기 스터디

Back-end & Front-end (웹)

Front-end ?

  • 실제로 보여지는 부분
  • 시각화의 영역
  • Back-end 로부터 넘어온 데이터를 보여주는 역할

Back-end ?

  • 보이지 않는 부분 = 웹/앱 서버(의 AP 구현), DB 등
  • 데이터 처리, 데이터 연산 등을 처리함
  • Front-end 로부터 요청을 받아 데이터를 처리하고 되돌려 보내주는 역할

Back-end & Front-end (모바일)

  • Android OS 혹은 iOS 로 개발되어 디바이스에 최적화된 전용 앱들 : Native apps
  • HTML/CSS/JS 로 만들어진 앱들 or 이렇게 만든 후 커버를 씌운 앱들 : Webapp, Hybrid apps
  • 네이티브 앱들은 Front-end와 Back-end를 굳이 나눠서 구분하지 않음
  • 보여지는 부분을 위한 u code + 내부 처리 및 DB 연동을 위한 logic code

HTML & CSS & Javascript

  • HTML = Hypertext Markup Language. 웹페이지의 구조와 콘텐츠를 생성하기 위한 표준 마크업 언어. 제목, 단락, 링크, 이미지 등 웹페이지의 다양한 요소를 정의
  • CSS = Cascading Style Sheets. HTML 요소를 스타일링하고 레이아웃을 구성하기 위해 사용. 색상, 폰트, 간격 및 레이아웃과 같은 시각적 외형을 제어
  • JavaScript = 자바스크립트는 웹페이지에 동적이고 상호작용적인 기능을 추가하는 스크립팅 언어. HTML과 CSS를 조작하고, 이벤트를 처리하며, 폼을 검증하고, 애니메이션을 만드는 등 다양한 작업을 수행

Bootstrap

  • 오픈 소스 프론트엔드 프레임워크 중 하나로, 웹 개발을 빠르고 쉽게 만들어주는 HTML, CSS, JavaScript 도구 모음

Materialize

  • 시각적으로 매력적이고 직관적인 사용자 인터페이스를 구축하는 데 중점을 둔 프레임워크로, 현대적이고 깔끔한 디자인

BoilerPlate

(바로 프론트엔드 개발을 할 수 있도록 세팅을 해둔 템플릿)
: https://html5boilerplate.com/

IDE

Integrated Development Environment

  • SublimeText (간편하고 가벼움)
  • Brackets (실시간 브라우저 연동 preview, 프론트개발에 추천)
  • Atom (프로젝트 단위로 프로그래밍하기에 편리함, 점유도 점점 오르는 중)
  • Visual Studio Code (가장 대중적인 IDE)
  • Eclipse(Java), Spring Tool Suite (STS), Android Studio, Pycharm 5

Java

  • JVM(Java Virtual Machine) 위에서 작동하므로 OS에 제약받지 않음
  • 범용성 & 속도 (slower than C-related languages

Spring

  • Java 기반의 Web framework (Django는 Python 기반의 웹 프레임워크)
  • 전자정부 표준 프레임워크
  • 프로그래밍에서의 Framework
    : 개발의 효율성을 위해 전체적인 프로그래밍 코드 및 Logic, 프로그램 구현 방법론 등을 최적화 해둔 것
  • Web framework
    : 이미 만들어져 있는 흐름을 따라 구현/수정만 하면 웹사이트가 바로 만들어 질 수 있게 기본적인 것들을 제공하는 것
    Java의 Spring, Python의 Django/Flask, Ruby의 Rails, PHP의 Laravel, JS의 React/Angular/Vue.js 등

HTTP Request? HTTP Response?

Server & Client Network architecture)

  • Server : 특정한 서비스를 제공하는 컴퓨터
  • Client : 서비스를 사용하는 사용자 혹은 사용자의 단말기

서버의 주소 (URL : Uniform Resource Locator)

서버의 종류 (default port numbers)

  • Web server : 80 (http port)
  • Database server: 3306, etc.
  • FTP server: 21
  • etc.
  • 81, 88, 888, 8888, 8080 : 소프트웨어들이 임의의 포트 지정을 할 때 많이 사용하는 포트 번호

НТТР (HyperTextTransfer Protocol)

  • WWW 상에서 정보를 주고받을 수 있는 통신 프로토콜
  • 클라이언트와 서버 사이에 이루어지는 요청/응답(request/response) 프로토콜

Request : 서버로의 요청

  • GET (method): 정보를 가져오는 영할
  • POST (method) : 정보를 입력(및 수정)하는 역할

Response : 서버로부터의 응답

  • 응답 코드 : 200(0), 400(Bad request), 404(Not found), etc
  • 응답에 담긴 데이터 : HTML / JS / CSS / image files, JSON, XML, etc.

Django 기본 개념

  • 데이터베이스 (DATABASE): Django는 SQLite, MySQL, PostgreSQL 등 다양한 데이터베이스를 지원.
  • 요청과 응답 (Request & Response): 사용자의 요청은 Django의 미들웨어를 통해 처리되며, 최종적으로 웹 서버(Nginx/Apache)를 통해 응답이 반환.
  • 뷰 (VIEW): 요청을 처리하고, 적절한 응답을 생성하는 Django의 주요 구성 요소.
  • 템플릿 (TEMPLATE): HTML 응답을 생성하는 데 사용되는 Django의 템플릿 시스템.
  • WSGI: 웹 서버와 Django 애플리케이션 간의 통신을 담당.

Django의 MTV 패턴과 MVC 모델 비교

  1. MVC 패턴
  • Model: 데이터베이스와 직접 상호작용하는 부분으로, 애플리케이션의 데이터 구조를 정의.
  • View: 사용자에게 데이터를 표시하는 역할. 즉, 사용자 인터페이스를 담당.
  • Controller: 모델과 뷰를 연결하는 부분으로, 사용자 입력을 처리하고, 그에 따라 모델을 갱신하거나 뷰를 업데이트.
  1. Django의 MTV 패턴
  • Model: MVC의 Model과 동일한 역할을 하며, 데이터베이스 테이블을 정의하고 데이터와 관련된 비즈니스 로직을 처리.
  • Template: MVC의 View에 해당하는 부분으로, 데이터가 사용자에게 어떻게 표시될지를 정의하는 HTML 파일을 처리. 즉, 사용자에게 보여지는 인터페이스를 담당.
  • View: MVC의 Controller에 해당하며, HTTP 요청을 처리하고 적절한 데이터를 가져와 템플릿에 전달하는 역할. Django에서의 View는 로직을 처리하고, 데이터베이스에서 필요한 정보를 가져와 템플릿에 전달하는 중개자 역할.
  1. 차이점
  • 용어의 차이: Django는 MVC에서의 Controller를 View라고 부르며, View를 Template으로 대체.
  • 책임 분배: Django에서는 템플릿 시스템이 View의 역할을 맡고, 실제 로직 처리는 View에서 담당. 이는 MVC에서 View와 Controller가 분리되어 있는 것과는 달리, Django의 View가 더 많은 책임을 가지는 구조.
  1. Django의 MTV 흐름
  • 사용자 요청: 웹 서버가 사용자의 요청을 Django로 전달.
  • View: Django의 View가 요청을 처리하고 필요한 데이터를 Model에서 가져옴.
  • Template: 가져온 데이터를 바탕으로 Template에서 HTML로 데이터를 렌더링 함.
  • 응답 반환: 렌더링된 HTML 페이지를 사용자에게 반환.

스터디 방법

  • KDC 참여
  • 각자 공부해온 자료 발표