[스터디]스프링 리액트 스터디 2회차 스프링 기초 + HTML&CSS

스터디 팀 명

한발 🙂

스터디 진행 회차 및 일자

2회차(2021.06.13) 스카이프 콜

스터디 주요 내용

reset.css / z-index

템플릿 엔진 / MVC / API

관심사의 분리 / 역할과 책임

ViewResolver / HttpMessageConverter

Optional

서비스는 비즈니스적으로 이름을 짓고

리포지토리는 기계적으로 테이블적으로 이름을 짓는다.

테스트는 잘 터지는지도 봐야 된다.

크기 단위 이거만 알면 된다 - px, rem, em, vw, vh, %

이미지 링크와 이미지 맵

  • 이미지 맵은 한 이미지 안에서 커서 위치에 따라 다른 링크를 연결해 주는 기능

스터디에서 나왔던 질문

@Controller, @Service, @Repository 각 어노테이션에 역할이 있나요?

서버 MVC 구조에서 Controller는 어떤 단위로 작성되야 할까?

프록시 패턴

AOP에도 이 패턴이 활용된다.

템플릿 메서드 패턴

출처 : https://yaboong.github.io/design-pattern/2018/09/27/template-method-pattern/

개방 폐쇄 원칙(OCP, Open-Closed Principle)

§소프트웨어 개체(클래스, 모듈, 함수 등등)는 확장에 대해 열려 있어야 하고, 수정에 대해서는 닫혀 있어야 한다.
어떻게 하면 되는가?
§객체 지향 프로그래밍 언어에서는 인터페이스를 통한 추상화를 제공한다.
언제 신경써야 하는가?
§다른 곳에서 사용되는 개체인 경우(말단 개체인 경우 신경 X)
양방향으로 서로를 아는 개체의 경우 문제가 복잡해진다.
§상하 관계를 가지는게 프로그램 이해가 간편하다.
§필요한 경우만 양방향 관계를 가지도록 해야 한다.
스프링 Controller에서 파라미터에 (요청 수신에) 사용되는 어노테이션 목록
@PathVariable
§중괄호에 명시된 값을 변수로 받는다.
§public String userInfo(@PathVariable("id") String id)
@RequestParam
§http 요청 파라미터를 변수로 받는다. (생략가능)
§@RequestParam(value = "page", required = false, defaultValue = "1") Integer page
@ModelAttribute
§http 요청 파라미터를 VO로 받는다.(생략가능)
§public ModelAndView search(@ModelAttribute User user)
@RequestBody
§HTTP 요청의 body 부분을 그대로 변수에 넣는다. XML, JSON 일 때 이것을 주로 사용한다.
§public String message(@RequestBody KakaobotRequest request)
@CookieValue : 요청의 쿠키정보를 가져온다
@RequestHeader : 요청 헤더 정보를 가져온다

HTML Entity 코드가 뭐지?

Reserved characters in HTML must be replaced with character entities.

특정 글자로 변환되는 HTML의 예약어

자주 쓰는거에   가 있다.

https://entitycode.com/

https://dev.w3.org/html5/html-author/charref

어떤 객체들을 자원 관리 대상으로 봐야 하는가?

무거운 객체 - 자원 관리의 이유. 무거운걸 매번 맨들고 부수고 안하려고

여러개 있으면 문제가 되는 객체 - 필수

하나만 있으면 되는 객체 - 옵셔널 하다.

참고 - Why are static variables considered evil?

- 스태틱 변수란 여기저기서 쓰려고 만드는 것이고 --> 스태틱 변수에 의존하여 state한 코드가 늘어나고 --> 테스트하기가 어려워진다.

테스트 코드를 작성하면 좋다는데 어떻게, 어느 수준까지 테스트를 작성하면 될까?

클라이언트

- 특정 기능에 참여하는 요소의 상태와 기능 발현에 따라서 어떻게 동작하는지 테스트 하면  된다.

- 상태 전이 테스트

서버

- 기능 별로 인풋 아웃풋 확인. 문제 상황, 일반적 상황, 밸리데이션 처리 확인, 아무것도 없는 값 처리

- 기능이 여러 단계를 거치는 경우 각 단계를 별도 테스트, 하나로 모아서 테스트

- 제약 동작 확인. 널 처리, 길이 처리, 코드 처리, regex 처리, 

실무에서 dl, dd, dt 태그를 쓰나요?

Optional<T>를 서버에서 그대로 반환하면 JSON 포맷으로 어떻게 변환되고 클라이언트에서 무엇을 받는가?

??? 모른다.

수업에서는 강사님이 인텔리제이를 써서 VS Code로 실습하려니 안되는 기능이 많다.

VS Code에도 웬만한 기능은 다 존재한다.
컨트롤 + 점(.) 을 누르면 나오는 메뉴 활용
- 람다 표현식으로 전환
- 반환값이 있는 경우 변수를 추출하는 기능

댓글을 작성해보세요.

채널톡 아이콘