TIL - Spring 입문(2)

김지현·2023년 4월 20일
0

항해99

목록 보기
11/16

2023-04-20


IP주소

네트워크망에서 각자의 컴퓨터(노드)를 식별하기 위한 위치 주소
192.168.0.123 와 같이 생긴 숫자
-> 실제로는 32자리의 2진수로 이뤄져있음 ( 8비트인 각각의 영역을 '.'으로 구분 )
( 00000000.00000000.00000000.00000000 ~ 11111111.11111111.11111111.11111111 )

192.168.0.123
└───┬────┘└─┬─┘
 네트워크 호스트
   주소   주소
  • 네트워크 주소 : 공통적인 부분
  • 호스트 주소 : 중복이 없고 유일한 식별자 역할
    ( 하나의 네트워크 상에 여러 호스트 주소가 있을 수 있음 )

브라우저

( browser )
인터넷에서 웹 서버의 모든 정보를 볼 수 있도록 하고, 문서 검색을 도와주는 응용프로그램
( 네이버나 구글 같은 사이트에 접속할 수 있는 도구 )
Google Chrome , Apple Safari , Naver Whale, Microsoft Edge


DNS

( Domain Name System )
웹사이트의 IP주소와 도메인 주소를 이어주는 시스템
( 도메인 주소를 사용했을 때 입력한 도메인을 실제 네트워크상에서 사용하는 IP주소로 바꾸고 해당 IP주소로 접속하는 과정이 필요함. 이 과정, 전체 시스템을 DNS라고 함 )
-> 길고 복잡한 IP주소를 외울 수 없기 때문에 사용함

역트리 구조로 최상위 루트(Root)부터 Top-Level Domain, Second-Level Domain, Third-Level Domain을 단계적으로 찾음

www.naver.com.
<-------------
뒤에서부터 찾음
  • . : 맨 마지막에 붙은 .은 Root로서 생략함
  • com : Top-Level Domain ( TLD )
  • naver : Second-Level Domain
  • www : Third-Level Domain

( 이미지 출처 )

  • Local DNS ( 기지국 DNS )
    기본적으로 인터넷을 사용하기 위해선 IP를 할당해주는 통신사(KT, SK, LG 등)에 등록을 해야 함
    인터넷에 연결되면 가입한 각 통신사의 기지국 DNS 서버가 자동으로 등록됨

  • Root DNS ( 루트 네임서버 )
    ICANN( 국제인터넷주소관리기구 )이 직접 관리하는 절대 존엄 서버
    TLD DNS 서버 IP들을 저장해두고 안내하는 역할을 함

  • TLD DNS Server ( 최상위 도메인 서버 )
    도메인 등록 기관이 관리하는 서버
    도메인의 가장 마지막 부분( .com , .co.kr 등 )을 관리하고 부여하는 서버
    Authoritative DNS 서버 주소를 저장해두고 안내하는 역할

  • Authoritative DNS Server ( 권한 )
    실제 개인 도메인과 IP주소의 관계가 기록, 저장, 변경되는 서버


HTTP

( HyperText Transfer Protocol )
데이터를 주고 받는 양식을 정의한 정해둔 약속 , 통신 규약
HTTP에서는 언제나 Request(요청), Response(응답)라는 개념이 존재함
( 이미지 출처 : 항해99 )

HTTP 구성요소

■ Method

( 호출 / 요청 방식 )

  • GET : 조회
  • POST : 생성
  • PUT : 변경
  • DELETE : 삭제

■ Header

( 추가 데이터, 메타 데이터 )
다양한 의사 표현을 위한 데이터를 모두 포함하고 있으며 MethodHeader 에 포함됨

■ Payload

( 실제 데이터 )
응답 : 서버가 응답을 보낼 때는 항상 Payload를 보낼 수 있음
요청 : 클라이언트가 요청을 할 때는 GET method 를 제외한 요청일 때 payload를 보낼 수 있음

RESTful API

( Representational State Transfer )
서버 api가 적절하게 http를 준수하며 잘 설계되어있음


Spring

Java 애플리케이션 개발을 편하게 할 수 있게 해주는 오픈소스 프레임워크

SpringBoot

스프링으로 애플리케이션을 만들 때에 필요한 설정을 간편하게 처리해주는 별도의 프레임워크


레이어드 아키텍처 패턴

( Layered Architecture Pattern = Multi-tier Architecture Pattern )
백엔드 API코드에 가장 널리 적용되는 패턴 중 하나로서,
코드를 논리적인 부분 혹은 역할에 따라 독립된 모듈로 나누어서 구성하는 패턴
( 이미지 출처 )

■ Presentation Layer

  • 사용자와 상호 작용 처리 계층
  • MVC ( Model & View & Controller )가 속함
  • @Controller

■ Business Layer

( = Domain Layer = Service Layer )

  • 서비스 / 시스템의 핵심 로직
  • 입력 / 저장된 데이터를 기반으로 계산해서 애플리케이션이 수행해야하는 도메인과 관련된 작업들을 담당함
  • @Service

■ Persistence Layer

( = Data Access Layer )

  • DB 또는 원격 서비스에 영구 데이터를 관리하는 방법을 분류하는 데이터 접근 계층
  • @Repository

ORM

( Object Relational Mapping ) - 객체 관계 매핑
프로그래밍 언어의 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 도구

- 사용 이유

객체지향 프로그래밍은 클래스를 사용하고, 관계형 데이터베이스는 테이블을 사용하기 때문에 객체 모델과 관계형 모델간의 불일치가 존재함
-> ORM을 통해 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결함
( 객체를 통해 간접적으로 DB를 다룸 )

JPA

( Java Persistence API )
ORM을 사용하기 위한 인터페이스의 모음

0개의 댓글

관련 채용 정보