키워드 실행단위 : cpu core에서 실행하는 하나의 프로세스와 스레드를 포괄하는 게념 동시성 한순간에 여러가지 일이 아니라, 짧은 전환으로 여러가지 일이 동시에 처리하는 것처럼 보이는 것 순서 Process vs Thread Multi-process vs Multi-thread Multi-core 요약 프로그램(Program)이란 파일 시스템에 존재하는 실행파일입니다. 소스코드가 등록된 실행 파일입니다. ex) Hwp.exe, MapleStory.exe 등 프로세스(Process)란? 프로그램을 실행시키는 주체 프로그램은 그저 하나의 소스코드에 지나지 않았다, 하지만 실행되어서 사용할 수 있는 무언가가된다면 그것이 바로 프로그램이다. 다음과 같이 프로그램은 바탕화면에 있는 Chrome.exe이고, P..
public boolean equals(Object obj) { return (this == obj); } @Test void test(){ Map map1 = new HashMap(); map1.put("1", 1); map1.put("2", 2); Map map2 = new HashMap(); map2.put("1", 1); map2.put("2", 2); Assertions.assertThat(map1).isEqualTo(map2); } isEqualTo로 HashMap을 비교하면 success가 떨어진다. 왜냐면 isEqualTo는 동등비교이기 때문이다. 그런데 내가 만든 TestObject객체로 isEqualTo비교 시 Exception이 발생하였다 @Getter @AllArgsConstruc..
springMvc2_Exception 스프링 MVC2편 - 백엔드 웹 개발 활용 기술 예외처리와 오류페이지 예외처리와 오류페이지 아래처럼 프로젝트를 생성하고 시작해보쟈아 1. 서블릿 예외 처리 서블릿은 다음 2가지 방식으로 예외 처리를 지원한다. Exception response.sendError(HTTP 상태코드, 오류메시지) @Slf4j @Controller public class ServletController { @GetMapping("/error-ex") public void errorEx(){ throw new RuntimeException("예외 발생!"); } @GetMapping("/error-404") public void error404(HttpServletResponse respon..
springMvc2_Login 스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 - (로그인 처리) 쿠키는 브라우저에 담겨, 모든 요청이 있을 때마다 서버도 전달된다. 쿠카는 영속쿠키와 세션쿠키가 있다 영속 쿠키 : 만료 날짜를 입력하면 해당 날짜까지 유지된다. 세션 쿠키 : 만료 날짜를 생략하면 브라우저 종료시 까지만 유지된다. 브라우저 종료시 로그아웃이 되길 기대하므로, 우리에게 필요한 것은 세션 쿠키이다.?? 이상하네 우리는 요청 할 때마다 연장되는거였으니까 세션쿠키가 아니라 영속쿠키를 한거아냐??????? 그렇다면 로그인과 로그아웃 처리를 Cookie를 통해 해보자 LoginController.java // 로그인 Cookie idCookie = new Cookie("memberId", Strin..
springMvc2_validation 스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 - Validation 4장 Validation V1 errors?.containsKey('itemName') 오류 메시지 V2 Java BindingResult addError FieldError ObjectError bindingResult.addError(new FieldError("item", "itemName", "상품 이름은 필수 입니다.")); bindingResult.addError(new ObjectError("item", "가격 * 수량의 합은 10,000원 이상이어야 합니다. 현재 값 = " + resultPrice)); bindingResult.hasErrors() Thymeleaf #fie..
ArgumentResolver, MessageConverter의 동작 흐름 큰 흐름 첫번째 Tomcat 작동 시 - RequestMappingHandlerAdapter을 생성 - messageConverters - argumentResolvers - returnValueHandlers들을 셋팅한 뒤, 스프링 컨테이너에 등록 - RequestMappingHandlerMapping 생성 및 스프링 컨테이너에 등록 두번째 Client의 첫 요청 시 DispatcherServlet객체를 생성한 후 요청을 처리한다. - 이는 싱글톤으로 관리되기에 - 첫 요청시에만 생성 - 이 때, Servlet안에 스프링컨테이너를 탐색하여 handlerAdaptro와 mapping을 변수에 등록 세번째 doDispatch 함수를..
ApplicationContext는 자바의 환경설정파일을 만들 때 다양한 방식으로 정보를 만들 수 있도록 도와준다. 아래 그림을 확인해보면 Annotation을 이용할 수 있도록 도와주는 AnnotationConfigApplicationContext XML파일로 환경설정 될 수 있도록 도와주는 GenericXmlApplicationContext 등이 있다. 우리는 보통 어노테이션을 활용한 AnnotationConfigApplicationContext를 사용한다. (스프링부트를 많이 사용하면서 XML기반은 잘 사용하지 않는다) 그래도 간단하게 예제로 알아보며 비교해보자 1. 어노테이션 이용하여 Bean등록하기 어노테이션을 이용하려면 AnnotationConfigApplicationContext을 사용한다...
BeanFactory와 ApplicationContext BeanFactory는 스프링 컨테이너를 만들어주는 가장 최 상위 인터페이스이다. 스프링 빈을 관리하고 조회하는 역할을 한다. 예시로 getBean 등 관련된 함수를 가지고있다. 우리는 보통 스프링컨테이너를 ApplicationContext라고 부른다. ApplicationContext는 BeanFactory를 모두 상속받아서 제공해준다. 그렇다면 BeanFactory를 직접 사용하면 되지않은가? 라는 의문이 들 수 있지만, ApplicationContext는 BeanFactory에서 상속받은 기능 말고도 다양한 기능을 한다. 아래 그림을 참고해보자 MessageSource 메시지소스를 활용한 국제화 기능 예를들어서 한국에서 들어오면 한국어로, 영..
- Total
- Today
- Yesterday
- Vuex
- NPM
- map
- AnnotationConfigApplicationContext
- container
- 영속성 컨텍스트
- mvn
- 스트림
- Intellij
- vscode
- 자바8
- BeanFactory
- elasticsearch
- Vue
- webpack
- java
- JPA
- stream
- ngnix
- 람다
- nginx
- 차이
- install
- docker
- ApplicationContext
- MAC
- 최종연산
- springboot
- lambda
- 중간연산
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |