전체 글
-
[자료구조] Data Structure StackData structure. 2020. 10. 11. 09:53
이전에 Big-O notation에 대하여 공부할 때 이것저것 영상을 찾아보던 중, 설명이 너무 깔끔한 영상이 있었는데, java로 자료구조에 대하여 코딩하는 강의가 있었다. www.youtube.com/watch?v=whVUYv0Leg0 youtube : 엔지니어대한민국 강의 속도가 너무 빨라 중간중간 멈추어 두고 안에 내용을 이해하는데 집중하였다. 우선 Stack은 LIFO구조이다, Last In First Out 가장 마지막에 들어온 것이, 가장 먼저 나간다는 뜻이다. 스택의 장점은 데이터를 추가하거나, 삭제할 시 연산속도가 상수 시간에 가능하며, 배열처럼 원소들의 이동이 필요하지 않다. 단점으로는 상수 시간에 해당하는 인덱스 항목에 접근할 수 없다. 재귀 알고리즘을 사용할 때에 스택이 유용하다. ..
-
[자료구조] Doubly Linked listData structure. 2020. 10. 11. 04:42
혼자서 책으로만 공부할때보다 훨씬 수월하게 이해가 되었으며, 이번 강의 역시 나에겐 꿀 강의였다. 갓고잉 선생님 : ) opentutorials.org/module/1335/8821 Linked list - Data Structure (자료구조) 소개 Linked List는 Array List와는 다르게 엘리먼트와 엘리먼트 간의 연결(link)을 이용해서 리스트를 구현한 것을 의미합니다. 그래서 이름도 linked list입니다. 그렇게 보면 linked list에서 가장 중요한 � opentutorials.org double linked list의 핵심은 이름과 같이 이중 연결 리스트로서, 단순 연결 리스트랑은 다르게, 노드의 앞뒤로 연결되어있다. 현재 노드와 이전 노드, 현재 노드와 다음 노드와 연결..
-
[자료구조] Data Structure - 자바 Linked ListData structure. 2020. 10. 6. 00:19
강의가 두 개로 나뉘어있는데, 나눈 이유는 ArrayList와 LinkedList의 장단점이 확연이 다르기 때문이라고 한다. 상황에 따라 알맞은 것을 사용하여 효율을 극대화할 수 있으므로, 장단점에 대하여 확실히 알아두면 좋을 것 같다. 우선 Linked List를 생성하게되면 엘리먼트 (노드) 하나당 메모리를 각각 차지하여, 분산되어있는 형태를 띄우게 된다. 그리고 영어이름 그대로, 연결 리스트이므로, 노드 객체 하나당, Data filed와 그것을 연결해주는 Link filed가 필요하다. Linked List의 장점은, Array List와 달리, 엘리먼트의 추가 / 삭제를 할 시 이전 , 이후의 참조값만 변경하면 됨으로써, 속도가 빠르다. 특정 index값을 이용하여 배열의 찾는데에 있어서는 Ar..
-
[자료구조] Data Structure 자바 - Array ListData structure. 2020. 10. 2. 08:02
이고잉님의 생활코딩 영상을 보며, 동영상 중간중간 멈춰가며 먼저 메서드를 작성해보며, 틀린 부분이 있다면 변경해가며 코딩을 따라 옮겨보았다. 깊이 있는 공부는 아닐수도 있으나, 접근자체를 못하여 이해하지 못하는 분들에게 참 좋은 강의이다. (나포함) 완벽한 ArrayList 구현은 아니지만, 추후 Java Colletions Framework에 대하여 깊게 공부할 때에 큰 도움을 받을 것 같다. 코드는, 이고잉님의 생활코딩에도 나와있지만 나도 따로 git에 업로드하였다. 진짜 꿀 강의다 www.opentutorials.org/module/1335 Data Structure (자료구조) 수업이 다루고 있는 내용 데이터 스트럭쳐 중심 본 수업은 데이터 스트럭쳐를 다루고 있습니다. 알고리즘은 데이터 스트럭쳐를..
-
Lombok @AnotationJust do it. 2020. 9. 21. 01:32
Lombok - @getter Lombok - @setter Lombok - @ToString Lombok - @ToString.Exclude 개발자가, 실수할 수도 있고,자바에서 제공하는 toString 메서드를 Overriding 하여, 사용한다면, 멤버 변수가 늘어날 때마다, 추가해주고, getter, setter 또한 추가적으로, 만들어줘야 한다. 그렇다고 한다면 쓸데없이 자바 코드수가 늘어나게 되고, 실수할 경우, 원하는 로그를 보지 못할 수 있다. 그리하여, 클래스 내부에 위와 같은 어노테이션을 이용하여 선언해주면, 멤버 변수가 늘든 말든, 자연적으로 getter,setter뿐 아니라, ToString을 개발자가 신경쓰지 않아도 된다. 또한 제외하고 싶은 toString값이 있다면 해당 멤버변..
-
[Springboot] 스프링 부트란?Just do it. 2020. 9. 19. 19:53
- Spring Framework의 설정이 복잡하고 어렵기 때문에 이와 같은 문제점으로 인하여, 만들어짐. - SpringBoot가 나오면서 초기 생산성이 획기적으로 상승함. 스프링은 다양한 식재료이고, 스프링 부트는 완성된 음식이라고 볼 수 있다.(커스터마이징) 식재료를 다양하게 섞어서 자신만의 요리를 만들고 싶어하는 사람도 있고, 다 만들어진 식품을 데워먹기만 하고 싶은 사람도 있다. 스프링 부트의 특징 - Starter를 통한 애플리케이션의 간편하고 자동화된 빌드 및 설정을 제공함. - Embed 서버를 제공함, 복잡한 배포 설정들을 간편하게 제공 - Production에서 사용할 수 있는 추가적인 기능을 제공 (actuator) Xml Configuration 설정 및 Xml + Java Conf..
-
[Java] 자바 입출력 - 직렬화(Serialization)Just do it. 2020. 9. 8. 15:56
인스턴스의 상태를 그대로 저장하거나, 네트워크로 전송하고 이를 다시 복원(DeSerialization)하는 방식 ObjectInputStream ObjectOutputStream 이란 보조스트림을 이용하여 구현 할 수 있음 Java뿐만 아니라 다른 언어에서도 지원하는 기술. Java에서의 Serialization 인터페이스 직렬화는 인스턴스의 내용이 외부 (파일,네트워크)로 유출 되는 것이므로 프로그래머가 객체의 직렬화 가능 여부를 명시한다. 구현 코드가 없는 mark interface 아래에 코드로 Animal이라는 class는 직렬화가 가능하다. 라고 명시하여줌. 명시하지 않으면, 직렬화가 되지 않음. Animal 이라는 Class안에 멤버변수 앞에 transiant 라는 키워드를 작성하여 주면 이변..
-
[Java] 데코레이터 패턴 (Decorator Pattern)Just do it. 2020. 9. 8. 13:20
데코레이터 패턴이란 무엇일까. 생성자의 매개 변수로 또 다른 스트림을 가짐 ex) protected FileInputStream(InputStream in) 생성자의 매개 변수로 InputStream을 받는다. public FilterOutputStream(OutputStream out) 생성자의 매개 변수로 OutputStream을 받음. - 바이트 단위 파일 입력 스트림 (기반이 되는 스트림) - 문자로 변환 기능 추가 (보조 스트림) - 버퍼링 기능 추가 (보조 스트림) 작성 중 원래 기반이 되는 스트림에, 보조적으로 받는 스트림을 사용 시, 이것을 데코 한다 하여, 데코레이터 패턴이라 불린다. 자바 용어는 아니고, 디자인 패턴에서 부르는 용어이다. 자바의 입출력 스트림은 데코레이터 패턴을 사용한다..