[PHP] - 웹(WEB) 이해하기/PHP와 서버들
·
Backend/PHP
웹(WEB) 이해하기1️⃣ 인터넷(Internet)이란?전 세계의 무수한 네트워크를 하나의 네트워크로 묶어서 서로 연결한 컴퓨터 네트워크네트워크에 연결된 모든 사용자가 영리적이고 상업적인 성격을 띄며 그룹을 형성함최신 정보를 간편하고 빠르게 얻고 다른 사람과 다양한 정보를 공유할 수 있음2️⃣ 월드와이드웹(WWW, World Wide Web, W3, 웹)위치에 상관 없이 인터넷에 연결된 컴퓨터만 있으면 정보를 공유할 수 있는 정보공간웹 표준 언어인 HTML로 작성3️⃣ 웹서비스네트워크 상에서 서로 다른 종류의 컴퓨터들 간에 상호작용을 하기 위한 소프웨어 시스템ex) email, FTP, Telnet, 메신저 등FTP(File Transfer Protocol): 원격지에 있는 서버에서 데이터나 파일들을 가..
[Spring] 3. 회원 관리 예제 - 비즈니스 요구사항 정리 / 회원 도메인과 레포지토리 생성
·
Backend/Spring 입문
비즈니스 요구사항 정리 - 가상의 시나리오- 데이터: 회원ID, 이름- 기능: 회원 등록, 조회- 아직 데이터 저장소가 선정되지 않음일반적인 웹 애플리케이션 계층 구조컨트롤러: 웹 MVC의 컨트롤러 역할서비스: 비즈니스 도메인 객체를 활용한 핵심 비즈니스 로직 구현ex) 회원은 중복가입이 되지 않는다리포지토리: 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리도메인: 비즈니스 도메인 객체ex) 회원, 주문, 쿠폰 등등 주로 데이터베이스에 저장하고 관리됨클래스 의존관계아직 데이터 저장소가 선정되지 않아서, 우선 인터페이스로 구현 클래스를 변경할 수 있도록 설계데이터 저장소는 RDB, NoSQL 등등 다양한 저장소를 고민중인 상황으로 가정개발을 진행하기 위해서 초기 개발 단계에서는 구현체로 가벼운 메..
[Spring] 2. 스프링 웹 개발 기초
·
Backend/Spring 입문
정적컨텐츠웹 브라우저에서 localhost:8080/hello-static.html이라는 요청이 들어오면 스프링부트에서 우선1. 스프링 컨테이너에 hello-static 관련한 컨트롤러가 있는지 확인한다.2. 없을 경우 resource 폴더 안에 있는 static/hello-static.html라는 정적 컨텐츠를 웹 브라우저에 띄운다. MVC와 템플릿 엔진🏷️ MVC: Model, View, Controller@GetMapping("hello-mvc") public String helloMvc(@RequestParam("name") String name, Model model){ model.addAttribute("name", name); return "hello-temp..
[Spring] 2. 프로젝트 환경설정
·
Backend/Spring 입문
프로젝트 생성 JetBrains Account account.jetbrains.comJetBrains Account에서 인텔리제이 학생 라이센스를 갱신해줬다.. !졸업한지 벌써 4년이 지났는데 아직도 접속 가능하다니 .. 감격 우선 인텔리제이를 사용할 예정이라 intellij 학생 라이센스를 갱신해줘야 한다. 구매할거면. ... 구매해도 됨 강의에서는 java 11을 사용하는데, 이미 노트북에 java 17(jdk 17)이 설치되어있어서 .. 그냥 17버전으로 진행할 예정 https://start.spring.io/에 들어가서 프로젝트를 생성해준다.과거 프로젝트들은 Maven으로 생성했는데, 요즘은 Gradle로 생성하는 것이 추세Dependencies 추가해서 프로젝트 파일 만든 후 해당 zip 파일 ..
[네트워크] 6. HTTP 상태코드
·
Backend/HTTP 웹 기본 지식
HTTP 상태코드: 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능1xx (informational): 요청이 수신되어 처리중2xx (Successful): 요청 정상 처리3xx (Redirection): 요청을 완료하려면 추가 행동이 필요4xx (Client Error): 클라이언트 오류, 잘못된 문법 등으로 서버가 요청을 수행할 수 없음5xx (Server Error): 서버 오류, 서버가 정상 요청을 처리하지 못함만약 모르는 상태 코드가 나타나면?클라이언트가 인식할 수 없는 상태코드를 서버가 반환하면?클라이언트는 상위 상태코드로 해석해서 처리미래에 새로운 상태코드가 추가되어도 클라이언트를 변경하지 않아도 됨ex) 299 ??? -> 2xx (Successful)ex) 451 ??? ->..
[네트워크] 5. HTTP 메서드 활용
·
Backend/HTTP 웹 기본 지식
클라이언트에서 서버로 데이터 전송데이터 전달 방식은 크게 2가지쿼리 파라미터를 통한 데이터 전송GET / 주로 정렬 필터(검색어)메시지 바디를 통한 데이터 전송POST, PUT, PATCH / 회원가입, 상품주문, 리소스등록, 리소스변경[ 4가지 상황 - (1) 정적 데이터 조회 ]이미지, 정적 텍스트 문서조회는 GET사용정적 데이터는 일반적으로 쿼리 파라미터 없이 리소스 경로로 단순하게 조회 가능ex) /static/star.jpg[ 4가지 상황 - (2) 동적 데이터 조회 ] 주로 검색, 게시판 목록에서 정렬 필터(검색어)조회 조건을 줄여주는 필터, 조회 결과를 정렬하는 정렬 조건에 주로 사용조회는 GET 사용GET은 쿼리 파라미터 사용해서 데이터를 전달[ 4가지 상황 - (3) HTML Form 데..
[네트워크] 4. HTTP 메서드
·
Backend/HTTP 웹 기본 지식
1️⃣ HTTP API를 만들어보자요구사항: 회원정보 관리 API를 만들어라- 회원 목록 조회, 회원 조회, 회원 등록, 회원 수정, 회원 삭제가장 중요한건 리소스 식별 API URI 고민리소스의 의미는 뭘까?회원을 등록하고 수정하고 조회하는게 리소스가 아니다!ex) 미네랄을 캐라 -> 미네랄이 리소스회원이라는 개념 자체가 바로 리소스다.리소스를 어떻게 식별하는게 좋을까?회원을 등록하고 수정하고 조회하는 것을 모두 배제회원이라는 리소스만 식별하면 된다 -> 회원 리소스를 URI에 매핑회원 목록 조회, 회원 조회, 회원 등록, 회원 수정, 회원 삭제 API URI 설계 - 리소스 식별, URI 계층 구조 활용회원 목록 조회/members회원 조회/members/{id}회원 등록/members/{id}회원 ..
[네트워크] 3. HTTP기본 - 비연결성 / HTTP 메시지
·
Backend/HTTP 웹 기본 지식
비연결성연결을 유지하지 않는 모델은 서버와 클라이언트간 연결하고,요청과 응답이 오면 연결을 바로 끊음으로서 최소한의 자원이 유지된다.HTTP는 기본적으로 연결을 유지하지 않는 모델일반적으로 초 단위 이하의 빠른 속도로 응답1시간 동안 수천명이 서비스를 이용해도 실제 서버에서 동시에 처리하는 요청은 수십 개 이하로 매우 작음ex) 웹 브라우저에서 계속 연속해서 검색 버튼을 누르지는 않는다서버 자원을 매우 효율적으로 사용할 수 있음HTML문서를 주고 받는 상황에서는 비연결성을 유지하는게 서버 자원을 효율적으로 사용할 수 있다.한계와 극복(단점)TCP/IP 연결을 새로 맺어야 함 - 3 way handshake 시간 추가ex) 내가 페이지를 보다가 다른 페이지로 이동하게 되면 사용자 입장에서는 TCP/IP 연..
[네트워크] 3. HTTP 기본 - HTTP / Stateful / Stateless
·
Backend/HTTP 웹 기본 지식
모든것이 HTTPHTTP(HyperText Transfer Protocol) - HTTP 메시지에 모든 것을 전송HTML, TEXTIMAGE, 음성, 영상, 파일JSON, XML (API)거의 모든 형태의 데이터 전송 가능서버간에 데이터를 주고 받을 때도 대부분 HTTP 사용지금은 HTTP 시대라고 해도 과언이 아님HTTP 역사HTTP/0.9 (1991): GET 메서드만 지원, HTTP 헤더 XHTTP/1.0 (1996): 메서드, 헤더 추가HTTP/1.1 (1997): 가장 많이 사용, 우리에게 가장 중요한 버전* RFC2068(1997) -> RFC2616(1999) -> RFC7230(2014)HTTP/2 (2015): 성능 개선HTTP/3 진행중: TCP 대신에 UDP 사용, 성능 개선기반 프로..
[네트워크] 2. URI와 웹 브라우저 요청 흐름
·
Backend/HTTP 웹 기본 지식
URI (Uniform Resource Identifier)Uniform: 리소스 식별하는 통일된 방식Resource: 자원, URI로 식별할 수 있는 모든 것(제한 없음)Identifier: 다른 항목과 구분하는데 필요한 정보URL (Uniform Resource Locator), URN (Uniform Resource Name)URL - Locator: 리소스가 있는 위치를 지정URN - Name: 리소스에 이름을 부여위치는 변할 수 있지만, 이름은 변하지 않는다.urn: isbn:8960777331 (어떤 책의 isbn URN)URN 이름만으로 실제 리소스를 찾을 수 있는 방법이 보편화되지 않음URL 전체 문법https://www.google.com:443/search?q=hello&hl=kosch..