ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 14주차 개념노트
    메가테라 2022. 11. 20. 22:40

    Static file

    이미지, 자바스크립트, CSS 파일, 동영상 등 이미 만들어진 상태 그대로 제공되는 파일을 의미한다.

    서버에 올린 파일을 수정하지 않는 이상 바뀌지 않고, 따라서 캐싱을 하기 쉽다.

    인수테스트

    사용자 시나리오에 따라 수행하는 테스트이다.

    인수 테스트를 통해 프로그램이 요구사항대로 잘 작동하는지 검증하게된다.

    BDD

    행위 주도 개발은 애자일 소프트웨어 개발 방법의 일종인데, 

    요구사항을 domain-specific-language를 이용해서 사용자의 행위와 기대하는 결과를 표현하고 구현을 한다.

    비즈니스 팀과 개발 팀이 동일한 언어를 이용하기 때문에 팀 간의 소통을 통일성있게 할 수 있게 된다.

    어떤 기능을 추가하고자하면 유저스토리를 먼저 작성하고,

    유저 스토리를 바탕으로 여러 팀이 함께 회의를 하고,

    합의가 된 내용으로 인수테스트를 작성하고, 

    인수테스트가 통과하도록 구현을 하는 방식으로 작업하게 된다.

    localStorage

    웹 브라우저에 데이터를 key-value형식으로 저장하기 위한 용도로 사용된다.

    만료기간이 없기 때문에 웹 브라우저나 탭을 닫아도, 혹은 컴퓨터를 껐다 켜도 남아있게 된다.

    오리진(도메인, 프로토콜, 포트)이 같은 모든 탭과 창에서 공유된다.

    inherit

    css에서 inherit속성을 이용하면 부모 요소의 값을 이용하게 된다.


    Spring WebMVC

    멀티 쓰레드 기반의 MVC패턴으로 Web Service를 만들 수 있게 도와주는 모듈이다.

    요청을 디스패처 서블릿이 받게되고,

    요청을 처리할 컨트롤러에게 요청을 전달하고,

    비즈니스 로직을 처리해서 

    응답을 클라이언트로 반환하게 된다.

    Reflection

    인터페이스, 필드, 메서드 등의 클래스의 정보들을 클래스 이름만으로 가져오거나 수정할 수 있게 해주는 API이다.

    런타임에 동적으로 타입을 분석해서 JVM에서 정보를 가져오게 된다.

    private으로 선언된 메서드나 필드에도 접근 가능하기 때문에 프레임워크나 라이브러리를 만들 때 주로 사용하고,

    굳이 사용하지 않아도 되는 경우에는 사용하지 않는 것이 바람직하다.

    Backdoor API

    E2E 테스트를 할 때 로그인이 되어있어야 한다거나 사용자가 어떤 상태여야 하는 등의

    미리 설정해줘야 할 부분들이 있을 수 있는데,

    그런 설정을 하기 위해 일반적인 방식이 아닌 방식으로 사용할 수 있게 도와주는 API이다.

    해커의 표적이 될 수 있기 때문에 절대 배포가 되지 않도록 주의해야한다.

    SQL

    관계형 데이터베이스를 다루기 위한 언어이다.

    선언형으로 표현하기 때문에 어떻게 대신 무엇을 원하는지를 표현한다.

    데이터를 정의할 때는 CREATE, DROP, ALTER 명령어를 사용하고,

    데이터를 조작할 때는 INSERT, UPDATE ~ SET, DELETE FROM, SELECT ~ FROM을 활용한다.

    @SpringBootTest

    빈을 스캔하고 애플리케이션 컨텍스트를 생성해서 테스트를 실행하기 때문에

    통합테스트를 할 때 편리하게 사용할 수 있는 어노테이션이다.

    VO

    value object, 즉 값 객체로, 값을 저장하기 위한 객체이다.

    값으로 식별되기 때문에 값이 같으면 같은 취급을 해야하는 경우에 쓰인다.

    예를 들어 날짜, 주소, 우편번호 등이 이에 해당한다.

    @Embeddable & @Embedded

    @Embeddable 어노테이션을 이용해서 해당 클래스가 다른 엔티티에 포함될 수 있다고 나타낼 수 있다.

    @Embedded 어노테이션을 이용하면 @Embeddable어노테이션이 붙은 클래스를 엔티티에 포함시킬 수 있다.

    Redis

    Remote Dictionary Server의 약자로, 데이터를 메모리에 저장해서 매우 빠르게 접근할 수 있다.

    String, Bitmap, Hash, List, Set, Sorted Set, Geospatial Index, Hyperloglog, Stream 등의

    다양한 자료구조를 지원하고, key-value형태로 저장한다.

    @ControllerAdvice

    @ControllerAdvice어노테이션을 쓰면 여러 곳에서 핸들링하고 있는 컨트롤러에서 발생하는 예외를

    전역적으로 하나의 클래스에서 처리할 수 있게 된다.

    만약 예외가 발생했을 때 컨트롤러에서 예외 처리를 @ExceptionHandler로 하고 있지 않다면

    @ControllerAdvice의 @ExceptionHandler로 처리하게 된다.

    @ResponseBody

    컨트롤러에서 뷰가 아닌 데이터를 반환하기 위해 사용되는 어노테이션이다.

    @RestController는 @Controller에 @ResponseBody가 추가되어 있기 때문에 자동으로 @ResponseBody가 동작한다.

    @ResponseBody 어노테이션을 이용하면 스프링이 반환값을 JSON으로 변경해서 HTTP response에 적어주게 된다.

    서블릿

    동적 페이지를 제공하기 위해 도와주는 웹서버 내에서 동작하는 프로그램이다.

    http 요청, 응답을 쉽게 처리할 수 있는 메서드들을 제공한다.

    서블릿 컨테이너가 요청이 들어올 때마다 쓰레드를 생성해서 각 서블릿을 관리하고,

    요청을 처리한 후에 서블릿 객체를 소멸시킨다.

    즉, 서블릿은 로딩, 초기화, 요청 처리, 소멸의 생명 주기를 가진다.

     

    '메가테라' 카테고리의 다른 글

    13주차 개념노트  (0) 2022.11.13
    12주차 개념 노트  (1) 2022.11.06
    11주차 개념노트  (0) 2022.10.30
    10주차 개념노트  (0) 2022.10.23
    9주차 개념노트  (0) 2022.10.18

    댓글

Designed by Tistory.