일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 카프카
- nestjs공부
- 스프링공부
- K8S
- 프로그래머스
- DDD
- querydsl
- 코테준비
- 기술공부
- JPA공부
- Flutter
- 알고리즘공부
- JPA예제
- nestjs스터디
- 기술면접공부
- 스프링부트
- 스프링
- 코테공부
- JPA스터디
- JPA
- 플러터 공부
- Axon framework
- 자료구조공부
- 자바공부
- 스프링 공부
- nestjs
- JPA 공부
- 스프링부트공부
- Kafka
- 플러터 개발
- Today
- Total
목록분류 전체보기 (715)
DevBoi
Set인터페이스를 구현한 클래스로써 객체를 중복해서 저장할 수 없고, 저장 순서가 유지 되지않는다. TreeSet이란 이진탐색트리 구조로 이루어져 있다. -추가,삭제에는 시간이 더 걸리지만, 검색과 정렬에는 유리하다 -불균형으로 인한 퍼포먼스 문제를 해결한 레드블랙 트리로 구현되어있다. -한번 저장할때마다 정렬된 상태로 저장이 되기때문에, 검색 및 정렬에 유리하다 (LinkedList의 검색은 처음부터 탐색을 해야하기 때문에, 검색이 느리다는 단점을 보완해준다.) * 레드블랙트리 넣을때 노드보다 큰값이면 오른쪽, 작으면 왼쪽으로 이동해서, 넣는 방식, 구현되어있는 방식이다. ex) (추가: 유용한 메서드들 )
HashSet과 동일한 구조를 가지지만 HashSet은 순서를 관리하지 않아, 출력할때마다 다른 순서대로 출력이된다. 하지만 LInkedhashSet은 등록한 순서대로 출력을 한다. 공통점 은 중복값을 허용하지 않는다 HashSet의 경우에는 데이터를 해싱한 값을 배열 인덱스로 활용하여 저장하여 순서가 지켜지지않는다. LinkedHashSet의 경우에는 동일하게 저장하지만 prev와, 다음 노드를 저장하는 next를 두는 양방향 연결구조를 가지고, 상호 연결을 해주는 원리로 저장이 되기 때문에, 순서를 보장할 수 있도록 LinkedList의 기능이 추가 되었다고 이해하면된다.
Set 인터페이스 구현 클래스 HashSet은 객체들을 순서없이 저장하고 동일한 객체를 중복저장 하지 않는다 순서가 보장되지 않는다 HashSet은 저장하기 전에, hashCode() 메서드를 호출해서 해시코드를 얻고 이미 저장 되어있는 객체들의 해시코드와 비교한다. 만약에 해시코드가 있다면 equals를 사용하여, 두 객체를 비교해 동일 객체로 판단되면, 저장하지 않는다
1. xml Bean 태그 이용 , Xml 컴포넌트 스캔(ComponentScan은 자바로도 가능) 3.Config 파일을 통한 Bean등록 4.Config의 ComponentScan을 활용한 Bean등록
컨테이너란? 인스턴스의 생성, 생명주기, 사용관계를 관리하며, 생성된 빈에게 추가적인 기능을 제공한다. 1. 서블릿 컨테이너(ex.Tomcat) 웹서버와 통시하기 위해, 소켓을 생성하고 특정 포트에 리스닝하고 스트림을 생성하는 복잡한 일을 하지 않게 해준다. Servlet의 생성부터 소멸까지 사이클을 관리해준다. 2.스프링 컨테이너 (IOC컨테이너) 1. Bean Factory 스프링 설정파일에 등록된 빈의 생성하고 관리하는 기본적인 기능만한다. 컨테이너가 구동될때 빈을 생성하는 것이 아니라, 클라이언트 요청에 의해 빈이 사용되는 시점에 (Lazy loading) 빈이 생성된다. 일반적으로 사용을 잘 하지 않고, ApplicationContext는 이 빈 팩토리를 상속 받고있다 2.ApplicationC..
MVC1은, JSP에서 view와 controller의 로직을 모두 담당한다. 즉 JSP에서 컨트롤러의 역핟도 하고 view의 역할도 한다. 중소형 프로젝트에 적합하고, 유지보수성이 많이 떨어진다. 코드 재사용성이 줄고, 운영을 해갈수록 점점 더 복잡해져서, 관리가 힘들다 MVC2는 컨트롤러가 서블릿으로 구현되어, 뷰와 컨트롤러가 나눠진 것이다. 가장많이 보이는 설계이고 뷰와 컨트롤러가 나눠져 있어서, 유지보수가 뛰어나고 추후에, 수정이 필요한 부분만 수정하면 되기 때문에 변경 및 관리에도 편하다
1. 웹 어플리케이션이 시작되면 web.xml이 로딩된다. 2. web.xml 에 등록되어있는 ContextLoaderListener가 생성 3.ContextLoadListener는 ServletContextListener를 구현, ApplicationContext를 생성한다. (ApplicationContext는 Ioc 엔진이며, 빈의 생명주기를 담당한다.) 3.ContextLoadLinstener가 ApplicationContext를 생성하면서, root-context를 로딩 ContextLoaderListener : 서블릿을 초기화하는 용도로 사용된다. 4.root-context에 등록되어있는 설정에 따라 Spring container가 구동 5.클라이언트로부터 Web Application에 요청 ..
1) Embed Tomcat을 사용 내장형 톰캣을 사용하기 때문에, 따로 Tomcat을 설치하거나 매번 버전관리를 하지 않아도 된다. 2) starter를 통한 dependency 자동화(의존 라이브러리 버전 관리) Spring Framework에서는 각각의 dependency 들의 호환되는 버전을 일일히 맞추어야 했다. 또한 각 dependency들의 버전을 일일히 맞춰야해서 힘이 들었다. 하지만 이제 starter가 대부분의 dependency를 관리해주기 때문에, 이러한 걱정이 없어졌다. 3) XML 설정을 하지 않고, 자바로 설정이 가능하다. 4) jar file을 이용해 자바 옵션만으로 쉽게 배포가 가능하다 +Spring Actuaor를 이용한 애플리케이션의 모니터링과 관리를 제공한다. 5) A..
1. 웹 애플리케이션이 실행되면 Tomcat에 의해 web.xml이 loading 된다. 2. web.xml에 등록되어있는 ContextLoaderListener가 생성이 된다. (ServletContextListener 구현) ,ApplicationContext를 생성하는 역할을 수행한다. 3. 생성된 ContextLoaderListener는 root-context.xml 을 로딩한다. 4. root-context.xml에 등록되어있는 Spring Container가 구동된다. 이 때 개발자가 작성한 비즈니스 로직에 대한 부분과 DAO, VO 객체들이 생성된다. 5. 클라이언트에게서 웹 애플리케이션 요청이 온다.(web.xml에 등록한 url 패턴과 맞다면) 6. DispatcherServlet이 생성..
스프링 프레임워크란? - 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크이다. - 자바 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 프레임워크이다. - 자바 개발을 위한 프레임워크로 종속 개체를 생성 조립해준다. 스프링 특징 - 경량 컨테이너로서 자바 객체를 직접 관리 * 각각의 개체 생성, 소멸 과 같은 라이프사이클을 관리하며 스프링으로부터 필요한 객체를 얻어올 수 있다. - 스프링은 POJO방식의 프레임워크 * 일반적인 J2EE 프레임워크에 비해 구현을 위해 특정한 인터페이스를 구현하거나 상속받을 필요가 없어, 기존에 존재하는 라이브러리 등을 지원하기에 용이하고 객체가 가볍다. - 스프링은 제어의 역행을 지원 * 컨트롤의 제어권이 사용자가 아니라 프레임워크에 있어 필요에 따라 스..