[자료구조&알고리즘] 자료구조와 알고리즘의 이해
Algorithm/자료구조&알고리즘2022. 12. 23. 11:30[자료구조&알고리즘] 자료구조와 알고리즘의 이해

♪ 학습 내용 순차 탐색 / 이진 탐색 알고리즘 / 빅오 표기법 * 자료구조란? 데이터를 표현 및 저장을 담당하는 것이 바로 자료구조 이다. 앞으로 학습할 자료구조는 두가지로 나뉜다. 1. 선형 자료구조 자료를 표현 및 저장하는 방식이 선형 / 일렬로 저장 리스트, 스택, 큐가 이에 해당한다. 2. 비선형 자료구조 데이터를 나란히 저장하지 안흔 구조이다. 이산수학에서 배웠던 트리나 그래프가 이에 해당한다. 자료구조와 알고리즘은 다른 과목임에도 많은 연관성을 지닌다. 왜냐하면 알고리즘은 자료구조에 의존적이기 때문이다. 예를 들어, 박스가 한줄로 높이 쌓여 있을 때 어떤 물건을 찾고 싶으면 어떻게 하냐. 나라면 위에 박스부터 내려가며 아래 박스까지 확인하는 방식으로 찾을 것이다. 순서대로 확인하지 않고 중간..

[HTTP] URI 와 웹의 흐름
Dev/HTTP2022. 12. 21. 21:29[HTTP] URI 와 웹의 흐름

♪ 학습 내용 URI ( URL , URN ) / 웹의 흐름 * URI(Uniform Resource Identifier) URI는 통합 리소스 식별자이다. 여기서 말하는 리소스는 서버 내 자원으로, URI로 식별할 수 있는 모든 것을 의미함. URI는 큰 개념으로, 로케이터와 이름으로 분류 될 수 있다. 각각의 경우가 바로 URL( locator ) , URN( name ) 주의할 점은 URL과 URN이 아니여도 URI일 수 있다는 점! 두가지로 완전 이분화 되는 것은 아니다! 우리는 흔히 링크 보고 URL 이라고 부르곤 한다. URL은 리소스가 있는 위치를 지정하고, URN은 리소스에 이름을 부여한다. URN 이름만으로 리소스를 활용할 수 있는 방법은 보편화되어있지 않기 때문에 우리는 URI와 URL..

[HTTP] 인터넷 네트워크
Dev/HTTP2022. 12. 21. 02:22[HTTP] 인터넷 네트워크

♪ 학습 내용 IP / TCP / UDP / PORT / DNS 컴퓨터는 다음과 같이 복잡한 인터넷 망을 이용하여 통신한다. 이와 관련된 개념들 * IP(인터넷 프로토콜) IP는 IP 주소를 부여해준다. like) 100.100.100.1 IP는 그렇게 지정된 주소에 데이터를 전달. 이때의 단위는 패킷이다. 패킷이란? 패키지(수하물) + 버킷(덩어리) 의 합성어로 전송할 것들을 모아놓은?정도. IP 패킷에는 데이터와 함께 출발지 IP와 목적지IP 등 기타 정보가 담겨있다. 클라이언트에서 서버로, 서버에서 클라이언트로 정보를 주고 받을 때 이 IP패킷을 주고 받는 것. 이러한 IP 프로토콜은 여러 한계를 지니고 있다. 1. 주소를 상대로 데이터를 전송하기 때문에, 대상 서비스가 불능인 경우에도 패킷을 전송..

[Spring 기본] 빈 스코프 (3)
Dev/Spring2022. 12. 18. 20:01[Spring 기본] 빈 스코프 (3)

♪ 학습 내용 웹 스코프 / 프록시 * 웹 스코프 앞에서 본 프로토타입 스코프는 요청 시에 생성하고 초기화까지만 진행, 반환. 더 이상 관리 x 웹 스코프는 스프링이 종료 시점까지 관리한다. 종류로는 request, session, application, websocket 이 중 request 스코프를 다뤘다. 프로토타입은 요청마다 새로운 생성했지만, request는 HTTP request에 요청이 들어오고 나갈때까지, 그 라이프 사이클 동안 유지된다. 그리고 각 요청마다 새로 생성하여 다른 인스턴스를 넘김!! 만약 같은 요청이 Controller 외에 Service에서도 호출되면 같은 인스턴스를 반환 (각각의 요청마다 이므로) 실행하면 오류 발생한다 왜?? @RequiredArgsConstructor ..

[Spring 기본] 빈 스코프 (2)
Dev/Spring2022. 11. 28. 00:23[Spring 기본] 빈 스코프 (2)

♪ 학습 내용 싱글톤 빈과 프로토타입 빈 충돌 시 * 싱글톤 빈과 프로토타입 빈 함께 사용시 문제 싱글톤 빈인 ClientBean이 생성자 주입으로 프로토타입 빈을 주입 받는 상황을 가정해보면 ClientBean은 싱글톤이기에 컨테이너에서 쭉 관리. 따라서 여러 고객이 ClientBean을 요청해도 같은 인스턴스를 반환해준다. 문제는 생성자 주입으로 프로토타입 빈과 의존관계를 맺기 때문에, 여러 고객이 요청한 ClientBean 이 의존하는 프로토타입 빈도 전부 같은 인스턴스이다. 빈 스코프가 프로토타입이면 매 요청시 새로운 빈을 반환해야 하는데 그게 깨져버린 상황 발생! 즉 주입 시전에 프로토타입 빈이 새로 생성되는 것이지, 요청마다 새로 생성되는 것이 아님. 원하는 건 싱글톤 빈에서도 해당 프로토타입..

[Spring 기본] 빈 스코프 (1)
Dev/Spring2022. 11. 25. 02:28[Spring 기본] 빈 스코프 (1)

♪ 학습 내용 빈 스코프 / 싱글톤 스코프 / 프로토타입 스코프 * 빈 스코프란 무엇인가 빈 스코프란 무엇인가?? 스코프에 대해서는 jsp 맛보기 공부하거나 spring 입문 강의할 때 몇번 듣고 사용해봤는데 사실 잘 모른다. 대충 느낌적으로는 영역? 이정도로 이해하고 있다. - 스코프는 빈이 존재할 수 있는 범위를 뜻한다. 스코프의 종류는 다음과 같이 다양하다 싱글톤 스코프(디폴트) / 프로토타입 스코프 / 웹 관련 스코프( request, session, application ) 등록할 때는 애노테이션을 이용해서 @Scope("singleton" 또는 "prototype") @Component(자동 등록) 나 @Bean(수동등록) 에 붙는다. * 싱글톤 스코프 싱글톤 스코프가 바로 우리가 여태 사용해..

[Spring 기본] 빈 생명주기 콜백
Dev/Spring2022. 11. 22. 22:45[Spring 기본] 빈 생명주기 콜백

♪ 학습 내용 빈 생명주기 콜백 * 빈 생명주기 콜백 애플리케이션 시작 시점에 연결 미리 해두고 종료 이전에 연결을 종료(안전하게) ( like 애플리케이션 과 DB를 미리 연결 해두는 ) 를 위해서는 객체의 초기화, 종료작업 필요!! 스프링 빈은 다음과 같이 두 단계로 이루어진다는 것을 앞에서 학습했다. 1. 빈 객체 생성 2. 의존관계 주입 이 과정이 모두 끝난 후에야 데이터를 사용할 수 있는 준비 완료됨. 그렇다면 의존관계가 끝난 후에 초기화 작업을 해야하는데. 우리가 스프링 빈의 의존관계 주입이 끝났는 지 어떻게 알 수가 있나.. ? 초기화 콜백 ==> 의존관계 주입까지 끝났으니 이제 너 하고싶은 대로 마음대로 해 생성자 인젝션은 스프링 빈 생성과 동시에 의존관계 주입을 한다는 것을 앞에서 학습했..

[Spring 기본] 의존관계 자동 주입 (4)
Dev/Spring2022. 11. 20. 23:18[Spring 기본] 의존관계 자동 주입 (4)

♪ 학습 내용 조회되는 동일 타입의 빈 모두 필요 할 경우 / 자동 또는 수동 빈 운영 기준 * 조회 빈 모두 이용 스프링 컨테이너에 등록된 빈 중 동일 타입이 있을 경우 오류 발생. 전 학습에서 우선순위를 두거나 고르는 방식으로 하나를 골라 조회했었다. 이번에는 조회되는 빈 모두를 이용..! List 와 Map 을 이용해본다 Map은 key 값으로 스프링 빈 이름이, value 값으로 DiscountPolicy 타입의 스프링 빈이 담아진다 (rateDiscountPolicy, fixDiscountPolicy 가 담아지겠지 ? ) 생성자 의존관계 주입 이용( 생성자가 하나이므로 @Autowired 지워도 똑같다 ) discountCode로 넘어오는 스프링 빈 이름으로 빈을 찾고, 해당 객체의 discou..

[Spring 기본] 의존관계 자동 주입 (3)
Dev/Spring2022. 11. 19. 17:47[Spring 기본] 의존관계 자동 주입 (3)

♪ 학습 내용 의동일한 타입의 빈이 두개 이상일 경우에 의존관계 자동 주입 / 애노테이션 생성 * 여러 동일 타입 빈 Autowired는 컨테이너에서 빈을 찾아 자동으로 주입해준다는 것을 학습했다. 이때 빈을 찾는 방식은 타입으로 조회이다. ac.getBean(DiscountPolicy.class); 와 비슷하다. 그렇다면 컨테이너에 동일한 타입의 스프링 빈이 두개 이상이라면 어떻게 될까?? 실행 시 오류가 발생한다 어떻게 해결할 수 있을까?? 만약 다음과 같이 하위 타입으로, 구현에 의존한다면 오류는 사라질 것이다 @Autowired public OrderServiceImpl(MemberRepository memberRepository, RateDiscountPolicy discountPolicy) {..

[Spring 기본] 의존관계 자동 주입 (2)
Dev/Spring2022. 11. 18. 02:22[Spring 기본] 의존관계 자동 주입 (2)

♪ 학습 내용 의존관계 주입 옵션처리 / 생성자 주입 / 롬복 라이브러리 설정 및 이용 * 옵션처리 @Autowired 이용 시에 해당하는 자동 주입 대상이 없으면 오류가 발생한다 하지만 개발하다보면 빈 없이도 동작해야할 때가 가끔 있기 때문에 따로 처리가 필요 세가지 방법!! - Autowired의 required 값을 false로 설정한다 (디폴트는 true) @Autowired(required = false) public void setNoBean(Member member){ System.out.println(member); } 위의 Member클래스는 스프링에서 관리하는 클래스가 아니기 때문에 빈으로 등록되어있지 않고 자동의존관계 주입도 불가하다. 하지만 Autowired의 required 옵션의..

image