TIL 210608

박수빈·2021년 6월 8일
0

TIL

목록 보기
7/25
post-thumbnail

✔ 백준

1735

solved.ac에서 계속 실버3를 했더니 이제 문제가 너무 쉬워졌다. 단순히 분수 합 구하고, 기약분수로 나타내는 문제라, 전에 공부했던 유클리드 호제법을 써서 최대공약수를 구하고 나누는 방식으로 해결했다.

15656

중복 순열이 필요했는데, itertoolsproduct 함수를 사용했다. 근데 이전에 사용하던 combinations 나 permutations 와 방식이 달랐다.
product(iterable, repeat=n) 해서 반복 횟수를 n 에 적으면 됐다.



✔ SpringBoot

윤석진 <스프링 부트로 배우는 자바 웹 개발>

서블릿

서블릿 시작하기

  • 서블릿 Servlet: JVM 기반에서 웹 개발을 하기 위한 명세이자 API. HTTP 요청과 응답을 처리하기 위한 내용 담고 있다.
    • 웹서버가 동적 페이지 제공할 수 있도록 도움
    • MVC 패턴에서 Controller로 이용됨
    • 간단히, 자바 안에서 html을 사용하는 방법인 듯 하다!
  • 서블릿 컨테이너: 서블릿을 관리(생명주기). 클라이언트의 요청을 받고, 응답하도록 웹서버와 소켓으로 통신
  • gretty: 내장 서블릿 컨테이너. gradle 내에서 jetty(경량서버) 사용하게 해주는 plugin. 톰캣을 로컬에 별도로 설치하지 않고 결과 확인

서블릿 내부 동작

서블릿의 생명 주기

  • 웹 앱 컨테이너에서 콘텍스트가 초기화되면 생명주기 시작!

  • 생명주기: 초기화(initialize), 서비스(service), 소멸(destroy)

    • 초기화: 로드한 서블릿의 인스턴스 생성, 리소스 로드. (클래스 생성자처럼)
    • 서비스: 클라이언트의 요청에 따라서 호출할 메서드 결정
    • 소멸: 서블릿 언로드

멀티파트

파일 업로드 등의 기능을 가능하게 해줌.

서블릿 관련 객체

필터

  • 전처리가 필요한 경우
  • 링크를 *.jsp로 하여 모든 jsp 파일이 실행될 때, 실행되게 함.
  • 필터 체인: 하나의 요청에 대해 여러개의 필터를 매핑

쿠키

  • 사용자가 사이트 방문했을 때, 사용자의 컴퓨터에 저장되는 정보
  • 이름, 값, 유효 시간, 도메인, 경로
  • htttp가 상태 정보를 저장하지 않으므로, 쿠키를 이용해 사용자 컴퓨터에 상태 저장
  • '오늘은 더 이상 보지 않기'와 같은 정보.
  • 다른 페이지에서도 읽을 수 있다.
  • 쿠키를 삭제하는 API는 존재하지 않고, 유효시간을 0으로 해 무효화 한다.

세션

  • 서버와 클라이언트의 유효한 커넥션을 식별하는 정보
  • 서버는 클라이언트가 요청을 보내면 요청을 식별할 수 있는 ID 부여 (세션ID)
  • 이 세션ID가 쿠키에 저장되고, 재접속시 쿠키를 이용해 세션 ID를 서버에 전달

디자인 패턴

  • GOF 디자인 패턴: 앱 개발시 문제 해결책

Java EE 패턴

  • Java EE 패턴: 자바 웹 개발 시 문제 해결책
  1. Intercepting Filter: 요청에 대한 전처리 및 후처리

  2. Front Controller: 요청에 대한 처리를 관리하는 중앙 컨트롤러

    • 컨트롤러가 공통 요청 먼저 수행하고, 뷰 호출
    • response.sendRedirect(경로);
    • `requestDirect.forward(servletRe
  3. View Helper: 뷰의 표현을 위해 비즈니스 로직을 가지고 있는 개념상의 Helper

  4. Composite View: 레고 블럭 같은 작은 뷰들을 조합해서 만든는 전체의 뷰

  5. Service to Work: Front Controller와 View Helper Pattern을 이용해 dispatcher 컴포넌트를 구성

  6. Dispatcher View: Service to Work와 동일하며, 더 안정적이고 뷰 수행 중에 실행


스프링 프레임워크

빈 + 컨테이너

  • 스프링: 엔터프라이즈 앱 개발 위해 객체 관리 해주는 빈 컨테이너 프레임워크
  • 의존도가 낮아서 많은 모듈이 추가 되고 있음

IoC 패턴 활용

  • IoC: Inversion of Control 제어의 역전
  • 생명주기의 주도권이 웹 앱 컨테이너에 있음
  • 의존 관계 역전 원칙: 인터페이스에 의존, 추상화는 세부 사항에 의존해서는 안된다. 근데 자바는 인터페이스를 이용해도, 인스턴스화를 위한 객체 생성이 필요. -> 의존성 주입(DI)

꼼지락 🐥

알고리즘 스터디를 하고, 길에서 방황하다가 좋아하는 사람 만나서 밥먹었당. ㅎㅎ 빨리 복학해서 같이 다니고 싶다. 종강해라 내사람들..!!!!!! GDSC 자소서 쓰는데 글이 너무 안써진다. 자소서는 언제나 너무 어렵다. 휴우우우ㅜ 집가서 책읽고 쉬어야지

profile
개발자가 되고 싶은 학부생의 꼼지락 기록

0개의 댓글