diff --git a/css/style.css b/css/style.css index b42eb2e..e63e29b 100644 --- a/css/style.css +++ b/css/style.css @@ -13,42 +13,67 @@ header { section { background-color: #fff; - border-radius: 8px; - box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); - padding: 20px; - margin-bottom: 20px; + border-radius: 8px; /*테두리 모서리 둥글게 (반지름 8px) */ + + /*그림자 효과 추가, 수평 0, 수직 4px, 블러 정도 8px, 그림자 색상: 흑색, 투명도 0.1*/ + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); + padding: 20px; /*내부 여백*/ + margin-bottom: 20px; margin-left: 50px; margin-right: 50px; } h2 { - color: #c18ccf; - border-bottom: 2px solid #c18ccf; - padding-bottom: 10px; - margin-bottom: 20px; + color: #c18ccf; /*보라색*/ + border-bottom: 2px solid #c18ccf; /*하단 테두리를 두껍게(2px), solid 스타일, 보라색*/ + padding-bottom: 10px; /*하단 패딩 10px 추가*/ + margin-bottom: 20px; /*하단 마진 20px 추가*/ +} + +h3 { + color: #1E96FF; /*하늘색*/ + border-bottom: 2px solid #FF9BD2; + padding-bottom: 5px; + margin-bottom: 20px; } p { - line-height: 1.6; + /*text-align: right;*/ + line-height: 1.6; /*줄 간격*/ color: #555; } -ol { - list-style-type: none; +left { + text-align: left; + line-height: 1.6; /*줄 간격*/ + color: #555; +} + + +ol { /*순서가 있는 항목*/ + list-style-type: none; /**/ padding: 0; } -li { - display: flex; - justify-content: flex-start; - align-items: center; +li { /**/ + display: flex; /*목록 항목-> 플렉스 박스(flexbox)로 지정. 내부 요소들을 수평 정렬*/ + justify-content: flex-start; /*플렉스 박스의 주축(main axis)을 따라 내부 요소들을 시작 부분에 정렬*/ + align-items: center; /*플렉스 박스의 교차축(cross axis)을 따라 내부 요소들을 가운데 정렬*/ margin-bottom: 20px; } +lii { /**/ + display: flex; /*목록 항목-> 플렉스 박스(flexbox)로 지정. 내부 요소들을 수평 정렬*/ + justify-content: flex-start; /*플렉스 박스의 주축(main axis)을 따라 내부 요소들을 시작 부분에 정렬*/ + align-items: center; /*플렉스 박스의 교차축(cross axis)을 따라 내부 요소들을 가운데 정렬*/ + margin-bottom: 20px; + text-align: left; +} + li img { max-width: 100px; height: auto; - border-radius: 8px; + border-radius: 8px; /**/ margin-right: 20px; } @@ -57,11 +82,11 @@ a { text-decoration: none; } -a:hover { +a:hover { /**/ text-decoration: underline; } -.card { +.card { /**/ display: flex; flex-direction: column; align-items: center; @@ -71,4 +96,78 @@ a:hover { footer { text-align: center; color: #888; +} +orange{ + color: #fd5000; + padding-bottom: 5px; + margin-bottom: 20px; + border-bottom: 3px solid orange; +} +green{ + color: #0ed10e; + padding-bottom: 10px; + margin-bottom: 20px; +} + +purple{ + color: #9E329E; /*보라색*/ + padding-bottom: 10px; + margin-bottom: 20px; +} + +pink{ + color: #F088B1; /*핑크색*/ + padding-bottom: 10px; + margin-bottom: 20px; +} +red{ + color: #CD1F48; /*빨간색*/ + padding-bottom: 10px; + margin-bottom: 20px; +} +blueB{ + background-color: lightblue; /*하늘색*/ + padding-bottom: 1px; + margin-bottom: 20px; +} +grayB{ + background-color: #B4B4DC; /*회색*/ + padding-bottom: 1px; + margin-bottom: 20px; +} + +left{ + text-align: left; +} +center{ + text-align: center; +} +point { + color: gray; + border-bottom: 3px solid lightgray; + padding-bottom: 5px; + margin-bottom: 20px; + line-height: 2.0; + font-weight : bold; +} +bold{ + font-weight : bold; +} + +line { + border-bottom: 3px solid lightgray; + font-weight : bold; +} +.bg-img{ + display: flex; + flex-direction: column; + align-items: center; + text-align: center; + background-image : url("https://ifh.cc/g/81G2kJ.jpg"); + width:100px; height:100px; border: 1px solid black; + background-size : 100% 100%; +} + +.profile{ + } \ No newline at end of file diff --git a/index.html b/index.html index 7602152..cbd26de 100644 --- a/index.html +++ b/index.html @@ -9,31 +9,34 @@ BCSDLab Web 과제 - +
-

안녕하세요, 최준호입니다!

+

안녕하세요, 윤해인입니다!

기본 정보

-

이름: 최준호

-

학번: 2019136135

+

이름: 윤해인

+

학번: 2022136080

전공: 컴퓨터공학부

-

이메일: junho5336@gmail.com

+

이메일: woovwave8.o0@gmail.com

- Github 주소

+ Github 주소

-

인사말

-

- 안녕하세요! 공유를 좋아하는 개발자 최준호입니다.
- 저의 취미는 도전입니다. 새로운 일에 도전하는것을 항상 즐깁니다.
- 최근에는 클라이밍에 흥미를 가져봤는데 꽤나 괜찮은 취미활동이라고 생각합니다
- 검은 화면에 흰 글씨가 나오는 모습이 멋있어보여서 백엔드 트랙에 지원했습니다.
-

+

자기소개

+ + 안녕하세요. BCSD 프론트엔드 비기너 윤해인입니다.
+ 평소에는 운동과 게임을 즐기고, 작년부터 사진찍는 취미를 가져보았는데
+ 출사를 나가서 여유롭게 힐링하는 시간을 좋아합니다.
+ 머릿속에만 있는 아이디어를 서비스로 직접 설계, 디자인해서
+ 결과물을 구현해내는 점이 멋잇다고 생각해서 프론트엔드 트랙에 지원했습니다.
+ 나만의 창작물을 만드는 걸 좋아합니다.
+ 감사합니다!

+
@@ -41,36 +44,170 @@

Web 퀴즈!

  1. - HTTP Method 종류를 아는대로 설명해주세요. + Q. HTTP Method 종류를 아는대로 설명해주세요.

    -
    - {위 질문에 대한 답변을 자유롭게 작성해주세요}
    - HTML 태그를 적극 활용해도 좋습니다. -
    + + + + HTTP Method
    + : Client-Server 구조에서 request와 response가 이루어지는 방식.
    + Q. 왜 사용하는가?
    + : 리소스와 동작을 분리하기 위함.

    + + -get : data 받아오기. 리스트 조회 메서드.
    + ex) URL 입력, 링크 클릭
    + *멱등성 > 여러 번 요청해도 리소스는 변하지 않음.

    + -post : 새로운 resource 생성
    + - 성공적으로 creation 완료 > 201(Created) HTTP response응답 반환
    + - get과 비교) 보안good (데이터가 외부로 노출되지 않음)
    +
    + -put : data 수정 - 덮어쓰기 방식. - null처리
    + - client가 resource식별 가능
    + - 부분 수정 불가능
    + *멱등성

    + - patch : resource의 일부만 수정 (갱신 방식)
    + - put과 같이 resource 수정 역할 +
    - BUT resource 부분 변경한다는 점에서 차이.
    + - 갱신하기 때문에 null 처리되지 않는다.
    + - 멱등성X
    + - PATCH를 지원하지 않는 서버 > POST로 대체
    + +
    + -delete
    + : resource 제거
    + 갱신이 무조건 필요한 거 아닌가? put 보다 patch?
    + + *멱등성
    + + post + - patch 갱신의 위험성 + - ex) 은행 시스템. 돈을 보내면 잔액 변화 +
  2. + + +
  3. - 인터넷과 웹의 차이에 대해 설명해주세요. + Q. 인터넷과 웹의 차이에 대해 설명해주세요.

    -
    - {위 질문에 대한 답변을 자유롭게 작성해주세요}
    - HTML 태그를 적극 활용해도 좋습니다. -
    + + - WEB : web page들의 연결, 즉 집합체
    + - WEB은 인터넷의 일부

    + 웹과 인터넷의 차이
    + + 인터넷
    + TCP/IP 기반의 네트워크가 세계적으로 확대되어 연결된 네트워크들의 네트워크

    + WEB
    + : HTML이라는 문서 형태와 HTTP 문서 전송 프로토콜
    + => URL로 문서의 위치를 표시하는 시스템

    + - 멀리 떨어진 사람에게 문서를 주고받기 위해 탄생함.
    + - 인터넷의 여러 기능 중, HTTP 프로토콜을 사용하는 웹이 있는 것!

    + => WEB보다 인터넷이 더 광범위한 범주
    + + +
  4. - www.naver.com을 치면 무슨 일이 일어날까요? + Q. www.naver.com을 치면 무슨 일이 일어날까요?

    -
    - {위 질문에 대한 답변을 자유롭게 작성해주세요}
    - HTML 태그를 적극 활용해도 좋습니다. -
    + + +
    주소창에 "www.naver.com"을 작성 후 엔터를 치면 + Naver 메인화면이 바로 나타나게 되지만,
    + + + 사실은 사용자에게 보이지않는, 좀 더 복잡한 과정들이 있기에 결과물이 나올 수 있다.
    +
    + =====================
    + <실행 단계>
    + 1. 입력한 텍스트 정보 확인
    + 2. 네트워크 호출
    + 3. 렌더링 작업
    + 4. naver 페이지 출력
    + =====================

    + + 1. 입력한 정보 확인
    : 브라우저는 사용자가 주소창에 입력한 텍스트가 '검색어'인지 'URL'인지 판단한다.
    + -1. 검색어라면? : 브라우저) 검색 엔진의 URL에 '검색어를 포함한 주소로 페이지'를 이동시킨다.
    + -2. 만약 URL이라면? : 브라우저 엔진) 네트워크 스레드를 통해-> 네트워크 호출을 수행한다.

    + + 2. 네트워크 호출
    + Q. 브라우저가 네트워크 호출을 수행하는 이유?
    + : 브라우저가 유저에게 네이버라는 사이트를 화면에 보여주려면
    + 네이버의 HTML 문서, CSS 문서, 스크립트, 이미지 등등 각종 데이터를 가지고 있어야 함.
    + 하지만 이런 정보들은 브라우저가 아닌 네이버 서버 컴퓨터에 존재한다.
    + + => 결론) 네이버 서버와 네트워크 통신을 통해 데이터들을 가져와야한다.
    + ㄴ서버가 어딘지 알아야 하니까 - 네이버 서버가 있는 컴퓨터의 IP 주소를 파악해야한다.

    + + =======================================================
    + ➔ 네이버 서버의 주소를 알기 위한 name server와 통신
    + ➔ 알아낸 주소로 - 네이버 서버와 통신 - 원하는 데이터 받기
    + =======================================================
    +
    + - 네이버 서버의 주소를 알기 위한 DNS 서버와 통신
    + 브라우저는 캐시를 조회하여 해당 웹사이트의 IP 주소를 가지고 있는지 확인해본다.
    + + 요청된 도메인 네임의 IP 주소를 찾을 수 없다면,
    + 첫번째로 자신(로컬)의 host 파일에서 도메인 네임 (naver.com) 에 대응 하는 IP 주소가 있는지 확인한다.
    + +
    URL이 host 파일 내에서도 발견되지 않으면,
    + -'네이버 IP 주소 알려줘' 라는 DNS 요청을 보낸다.
    + + 인터넷은 컴퓨터의 주소인 IP 주소를 기반으로 동작한다.

    + 하지만 우리가 인터넷을 사용할 땐 사용하기 쉽도록
    + IP 주소 대신 사용하기 쉬운 '문자로 이루어진 도메인 네임'을 사용한다.

    + + 따라서 도메인 네임 ➔ IP 주소로 변환해주는 환경 DNS(Domain Name System) 가 필요함.
    + => DNS Server/Name Server

    + + 네임 서버가 도메인 주소에 대응하는 IP 주소를 찾아준다.
    + 클라이언트는 naver.com에 해당하는 IP 주소를 요청하고 응답 받을 수 있다.

    + + - 알아낸 IP 주소로 네이버 서버와 통신하여 원하는 데이터 받기
    + : 웹 사이트를 브라우저에 띄울 수 있도록 웹 서버로부터 원하는 정보들을 받아야함.

    + + + [Q. 어떻게 받아올까?]
    + + HTTP Request를 통해 요청하고,
    + HTTP Response를 통해 받아오면 된다.

    + + 3. 렌더링 작업

    + - 네이버 서버로부터 응답받은 데이터는 바이트 형태의 텍스트 문서
    + => 브라우저 엔진이 읽을 수 없음
    + - 따라서 브라우저 엔진은 렌더링 엔진에게 해당 데이터를 해석하고,
    + 웹 페이지를 화면에 띄울 것을 요청한다.
    + + - 요청을 받은 렌더링 엔진은 받은 데이터를 바탕으로 렌더링 프로세스를 수행하고,
    + 이 과정이 끝나면 브라우저 엔진 에게 작업 완료를 알린다

    + + + 위과정을 FE 관점과 BE 관점에서 생각해보기

    + 1. FE
    + : 사용자가 직접 보고 확인할 수 있는 부분.

    + + - 웹 브라우저를 통해 요청을 보내는 것, 응답을 받고 해독하여 반영하는 부분까지 프론트엔드로 간주
    + - 즉, 유저의 naver.com 홈페이지를 보여달라는 요청을 수행하기 위해
    + 필요한 데이터, 리소스서버에서 조회하여 화면에 띄우는 역할

    + + 2. BE
    + : 사용자의 눈에 보이지 않아 직접 보고 확인할 수 없다. + (백엔드는 프론트엔드와 반대되는 개념)

    + + - 백엔드프론트엔드에서 보내준 요청을 처리하고,다시 응답을 제공해준다.
    + 프론트에서 요청하는 리소스들을 가공하여 내어주는 역할

    + + 출처1 + 출처2 +