본문 바로가기

study110

Linked List array list와 다르게 메모리에 저장될 때 나란히 저장되지 않을 수 있다. 그래서 인덱스가 노드마다 지정되어있지 않음 Big(O) linked list에서 n은 노드의 수라고 생각하면 된다. append(adding sth to the end) 노드가 몇개이든 바뀌는 게 없음 ⇒ 0(1) remove last node linked list의 연결 방향은 반대로 가는 게 불가능 예를 들면 여기서 7 노드를 없앤다면 tail을 23 노드로 옮겨야 하는데 반대로 추적할 수 없기 때문에 head부터 반복문을 돌려서 마지막 노드를 찾아야 함. n이 클수록 반복문 돌려야 하는 횟수도 늘어나기 때문에 ⇒ O(n) remove first 여기서 11 노드를 삭제한다고 하면 head를 11노드 다음에 있는 노드로 .. 2023. 7. 28.
classes & pointers classes 필드와 생성자로 구성이 되어있다. 클래스는 비유를 하자면 쿠키를 만드는 틀이라고 할 수 있다. 클래스의 생성자로 클래스의 인스턴스들을 생성하여 쓸 수 있다. 자료구조에서 클래스가 어떻게 쓰이냐 예를들면 linkedList 클래스가 있으면 append, remove 와 같은 기능들이 정의되어있다. 그것을 쓰기위해 우리는 그저 linkedList 생성자를 통해 linkedList의 인스턴스를 생성해서 쓰면된다. pointers 이것을 이해하기 위해 먼저 java의 데이터 타입을 알아두면 조금 수월하다. 포인터가 아닌경우 직접 값을 넣어줄때. 기본 데이터타입(primitive type)은 값복사가 일어난다. int a = 11; int b = a; a = 22; //result // a = 22.. 2023. 7. 21.
빅오 Big(O) Big O 표기법(Big-O notation)은 코드가 얼마나 효율적으로 수행되는지에 대해 수학적으로 계산해서 나타내는 수치입니다. 코딩인터뷰 단골질문! 빅오표기법은 시간 복잡도와 공간 복잡도를 나타내는데에 쓰입니다. 시간복잡도(time complexity) - 해당 코드가 실행되는 데에 걸리는 시간 공간복잡도(space complexity) - 해당 코드가 실행될때 메모리를 차지하는 정도를 나타냄 시간 복잡도를 표기하는 3가지 방식 Ω(omega) 해당 코드의 최상 실행시간 θ(theta) 평균 실행시간을 뜻함 O(omecron) 최악 실행시간 그러므로 Big-O는 항상 최악케이스에 해당합니다. 평균빅오는 몇이냐, 최상의 빅오는 잘못된 표현. 빅오 표기법 n은 입력받은 값의 크기를 나타냄. 1. O(n.. 2023. 7. 19.
Spring boot AutoConfiguration 자동구성 작동 원리 이 글은 김영한님의 스프링부트 핵심원리와 활용 강의를 듣고 정리한 것입니다. 자동구성 파트 스프링부트의 핵심 기능 중 하나인 자동구성 AutoConfiguration 이것의 작동 원리를 이해하려면 2가지만 알면 된다. @Conditional @AutoConfiguration --- @Conditional 먼저 @Conditional 부터 정리해 봐야겠다 autoconfiguration 디펜던시 안을 보면 많은 것들이 자동으로 등록되게 되어있다. 그중 하나인 JdbcTemplate을 보면 @ConditionalOnMissingBean이 있다. 이것의 의미는 지정한 클래스아님 인터페이스의 빈이 없으면 어노테이션이 적용된 클래스를 빈으로 등록하겠다는 것이다. 어노테이션에 들어가보면 @Conditional 로 .. 2023. 7. 7.
Spring boot 실행 작동 원리 이 글은 김영한님의 스프링부트 핵심원리와 활용 강의를 듣고 정리한 것입니다. main을 실행하면 main에 있는 클래스와 args를 파라미터로 받는 run이라는 메서드가 실행된다. 이 메서드는 2가지 일을 하는데, 첫번째는 내장 톰캣을 실행해주고 두번째는 디스패처 서블릿 생성 및 등록하고 스프링 컨테이너를 생성 및 디스패처 서블릿에 연결한다. 그렇다면 우리가 만든 컨트롤러라던지 클래스들을 스프링 컨테이너가 어떻게 인식하고 작동하는 것일까 그건 run 메서드가 받는 파라미터와 관련이 있다. run에서 보낸 클래스는 primarySource가 되어 등록이 되는데... 그 클래스에는 main말고는 아무것도 없었는데 어떻게 된 일일까 그것은 @SpringbootApplication 어노테이션에 component.. 2023. 7. 7.
자바 웹개발 워크북 6장 서블릿(컨트롤러)들을 많이 만들다보면 중복되는 코드가 발생. 완화를 위해 프론트 컨트롤러(디스패치 서블릿)을 만듦. 디스패치 서블릿은 vo를 만들어주고 요청에 해당하는 url로 요청을 인클루딩함. 오류처리도 디스패치 서블릿에서.. 1. vo 만들어주기 2. 요청을 처리하는 서블릿(컨트롤러)로 요청 보내기 3. jsp로 위임 4. 오류처리. 2023. 4. 25.
728x90