전체 글 (66) 썸네일형 리스트형 스프링 컨테이너(Spring Container)란? 스프링 컨테이너는 스프링 프레임워크의 핵심 컴포넌트이다. 스프링 컨테이너는 자바 객체의 생명 주기를 관리하며, 생성된 자바 객체들에게 추가적인 기능을 제공한다. 스프링에서는 자바 객체를 빈(Bean)이라 한다. 즉, 스프링 컨테이너는 내부에 존재하는 빈의 생명주기를 관리(빈의 생성, 관리, 제거 등)하며, 생성된 빈에게 추가적인 기능을 제공하는 것이다. List, Set, Map, HashMap의 차이 List: index의 순서가 정해져 있고, 중복을 허용한다 장점: 가변적 배열 배열의 수가 자동으로 늘어난다. 단점: 원하는 값이 뒤쪽에 있을때, 속도의 느려짐. set: index의 순서가 없고, 중복을 허용하지 않는다. 장점: 빠른 속도 단점: 단순 집합의 개념으로, 정렬하려면 별도의 처리가 필요하다. map: json처럼 한 쌍을 이루어 데이터를 저장하는 인터페이스 장점: 빠른 속도 단점: Key의 검색 속도가 검색 속도를 좌우 HashMap: map의 구현 클래스 JPA의 영속성 컨텍스트란? 영속성 컨텍스트란 엔티티를 영구 저장하는 환경이라는 뜻이다. 어플리케이션과 데이터베이스 사이에서 객체를 보관하는 가상의 데이터베이스 같은 역할을 한다. 엔티티 매니저를 톷해 엔티티를 저장하거나 조회하면 엔티티 매니저는 영속성 컨텍스트에 엔티티를 보관하고 관리한다. 왜 영속성 컨텍스트가 등장하였는가 장점은 무엇인가. 우리가 데이터베이스에서 정보를 하나 꺼내올때, 계속 데이터베이스에 요청을 하게된다면 부하가 많이 걸리고, 속도에 영향을 줄 수도 있다. 해서 우리는 가상의 데이터 베이스(영속성 컨텍스트)에 정보를 저장해놓고 API요청을 처리할때 일일히 데이터베이스를 거치지 않고, 영속성 컨텍스트에서 정보를 빼오게 된다. 영속성 컨텍스트의 특징으로는 엔티티 매니저를 생성할 때 하나 만들어 진다. 엔티티 매니저를.. 항해 실전 프로젝트 트러블 슈팅 정리. 1. OpenVidu 라이브러리를 사용할때, http(80포트)를 사용하니 연결이 되지 않음. -> OpenVidu docs를 확인 후 https(443포트)를 사용해야 한다는 것을 확인후 적용. 2. OpneVidu 라이브러리를 실행까지는 완료. 하지만 클라이언트로 접속 시도시, 502 bad gateway에러 발생. -> https설정할때의 AWS로드벨런서 문제인줄 알았지만, OpenVidu라이브러리를 실행할때 사용했던 Docker의 버전문제임을 확인. Docker의 버전을 다운그레이드 시키니 정상 작동하였음. 3. 한 사람이 OpenVidu 서버에 2번 접속 하였을때, 화면이 2개 나오는 현상이 발생 -> OpenVidu session과 연결을 끊지 않은 상태에서 접속하였기 때문에 두사람이 접속한것.. Spring MVC에서의 예외처리 1.method내에서의 try-catch문을 통한 예외처리방법 2.@ExceptionHandler를 통한 예외처리 방법.(하나의 클래스에서만 예외를 발생) 3.@RestControllerAdvice를 통한 예외처리.(모든 Controller 즉 전역에서 예외를 발생) 제네릭 이란? 자바에서 ArrayList 이것처럼 안에 들어가는 타입들을 제네릭이라고 한다. 안에는 실제 데이터 타입인 String이나, Intager 등이 들어갈 수도 있지만 T, E와 같이 임의의 타입이 들어갈 수도 있다. 이 처럼 데이터 타입을 일반화 하는것을 제네릭 이라고 한다. 즉, 타입변수를 생성하는 것인데 먼저 안에 T 라는 타입 변수를 지정했다고 예를 들어보자. 그러면 나중에 이T라는 타입을 String으로 지정만 해주면 T -> String 타입으로 변환 되어 컴파일 된다. class Person{ public T info; } Person p1 = new Person(); 장점으로는 1. 클래스나 메서드 내부에서 사용되는 객체의 타입 안정성을 높일 수 있다. 2. 반환값에 대한 타입 변환 및 타입 검.. MSA란? MicroService Architecture의 줄임말 마치 레고처럼 하나의 큰 어플리케이션을 작은 어플리케이션들로 나누어, Spring으로 개발해야 할 영역은 Spring으로 개발하고, JavaScript로 개발해야 할 영역은 JavaScript로 개발할 수 있게 해주는 아키텍처입니다. 웹서버와 웹 어플리케이션 서버(WAS)를 동시에 쓰면 좋은점. 앞서 설명했듯이 웹서버는 정적인 리소스만 처리할 수 있고, WAS는 동적인 리소스까지 처리 할 수 있다. 해서 간단한 정적 리소스는 웹서버에서 관리, 동적인 리소스는 WAS에서 관리하고 만일 WAS가 다운되었다면 웹서버에서 오류 HTML을 클라이언트에 띄워줄 수 있다. 또한 정적인 작업이 많다면 웹서버를 증설하고 동적인게 많다면 WAS를 증설하면 되는 효율적 리소스 관리가 가능하다. 이전 1 2 3 4 5 6 7 8 9 다음