티스토리 뷰

오늘의 질문

2022년 7월 4일

이블로 2022. 7. 4. 22:41

・스프링 @RequestParam, @RequestBody 차이

client측 parameter 2개이상일경우

- @RequestParam(@RequestParam String name)

 form태그전달 name : jun

 json형식 : Error(Body를 통해 데이터 전달하는 json일경우 에러발생)

 객체형식 불가

- @RequestBody(@RequestBody String req)

 form태그전달 req : name=jun&age=13

 json형식 : json형식 그대로 받음({"name":"jun", "age":13}) 

 객체형식 : 객체getter, setter, 변수 일치시 해당 객체로 그대로 받아짐

※출처: https://ocblog.tistory.com/49

 

Spring / @RequestBody vs @RequestParam 이해하기

컨트롤러에서 데이터를 인자에 할당하는 대표적인 방법으로는 @RequestBody 와 @RequestParam 이 있다. @Controller public class UserController { @PostMapping("/receive") public String age(@RequestParam St..

ocblog.tistory.com

 

・스프링 MediaType

웹의 동작은 request와 response로 구성됨

클라이언트(브라우저)측에서 요청(request)한것을 서비스(서버)측에서 받은 뒤 결과값을 응답(response)함

이때 클라이언트측에서 어떤타입으로 보낼지 명시하는것이 Content-type

서버측에서 어떤타입으로 받을지 명시하는것이 Accept

스프링에서는 서버측이므로 서버입장에서 봤을때 클라이언트로 부터 받을 타입을 정하는 파라미터가 consumes

클라이언트측으로 보낼 응답값을 무슨타입으로 할지 정하는 파라미터가 produces

즉,

클라이언트(브라우저) 서비스(스프링)
Content-type (서버로 보낼 타입) consumes (클라이언트에서 받을 타입)
Accept (서버로 부터 받을 타입) produces (클라이언트로 보낼 타입)

여기서 이 타입은 application/json, image/png 등 종류가 엄청많은데 이러한 상수값들을 불러 쓰기 좋게 스프링에서 정리한것이 MediaType

※출처:https://pozafly.github.io/spring/MediaType/

 

Spring에서의 MediaType

Spring MVC에서 MediaType 매핑에 대해서 알아보고 테스트 해보자

pozafly.github.io

・@Service 어노테이션 의미

서비스어노테이션을 붙였을시 루트 컨테이너에 Bean생성해줌

데이터값이 변하는 VO(DTO)는 Bean생성하면 안됨

@Controller @Repository @Service 등은 어노테이션 붙일시 Bean생성되고

@Autowired @Quilfier등으로 Bean을 가져 올수있다.

https://codevang.tistory.com/258

 

@Repository, @Service 어노테이션

- Develop OS : Windows10 Ent, 64bit - WEB/WAS Server : Tomcat v9.0 - DBMS : MySQL 5.7.29 for Linux (Docker) - Language : JAVA 1.8 (JDK 1.8) - Framwork : Spring 3.1.1 Release - Build Tool : Maven 3.6..

codevang.tistory.com

추가질문

〇서블릿이란

사용자 요청에 대해 동적으로 작동하는 웹 어플리케이션 컴포넌트.

서블릿은 자바로 구현된 CGI라고 말한다.

CGI(Common Gate Interface)란 웹서버와 어플리케이션 사이에 교환방식

〇서블릿컨테이너란

서블릿 생성, 소멸 등 서블릿 생명주기를 관리해주는 컨테이너

〇스프링동작구조

https://www.youtube.com/watch?v=2pBsXI01J6M 

https://codevang.tistory.com/248

 

스프링(Spring) MVC 동작 구조 및 스프링 컨테이너

- Develop OS : Windows10 Ent, 64bit - WEB/WAS Server : Tomcat v9.0 - Language : JAVA 1.8 (JDK 1.8) - Framwork : Spring 3.1.1 Release - Build Tool : Maven 3.6.3 서블릿을 다루다 스프링으로 넘어온 후..

codevang.tistory.com

 

〇객체지향 5원칙 : SOLID

- SCP(Single reponsibility principle) - 단일 책임 원칙

한 클래스는 하나의 책임, 기능만 가진다. 응집도는 높이고 결합도는 낮출수있다.

- OCP(Open Close Principle) - 개방폐쇄의 원칙

기존 구성요소는 수정이 일어나지 말아야 하며 쉽게 확장 가능하여 재사용할수있어야함

클래스 설계시 변할부분과 변하지 않을부분을 명확히 구분해야함

- LSP(the Liskov Substitution Principle) - 리스코브 치환의 원칙

서브클래스가 확장에 대한 인터페이스를 준수해야함을 의미

부모클래스 상속받아서 오버라이드 할시 기존 메소드 의미 해치지 않도록

- ISP(Interface Segregation Principle) - 인터페이스 분리의 원칙

기능별로 인터페이스를 나눈다. 중복해서 사용하지 않는다.

- DIP(Dependency Inversion Principle) - 의존성 역전의 원칙

의존성 주입

 

・자바 메모리 관리

 - 
https://devkingdom.tistory.com/226

 

[JAVA] JAVA 메모리 이야기 - Stack 과 Heap

하이.. ! 어느날 회사의 누군가 Java의 메모리가 어떻게 관리되는지에 대해서 물어봤다. 대답이 많이 나오지 않았다... 나름대로 Java를 제일 잘한다고 생각했었고, 자신감도 있던 상태라 충격이 컸

devkingdom.tistory.com

・쓰레드란 무엇인가

https://ko.wikipedia.org/wiki/%EC%8A%A4%EB%A0%88%EB%93%9C_(%EC%BB%B4%ED%93%A8%ED%8C%85) 

 

스레드 (컴퓨팅) - 위키백과, 우리 모두의 백과사전

 

ko.wikipedia.org

・프로세스란 무엇인가

'오늘의 질문' 카테고리의 다른 글

2020년 10월 6일  (0) 2020.10.06
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함