java
-
[자료구조] 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 (자료구조) 수업이 다루고 있는 내용 데이터 스트럭쳐 중심 본 수업은 데이터 스트럭쳐를 다루고 있습니다. 알고리즘은 데이터 스트럭쳐를..
-
[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을 받음. - 바이트 단위 파일 입력 스트림 (기반이 되는 스트림) - 문자로 변환 기능 추가 (보조 스트림) - 버퍼링 기능 추가 (보조 스트림) 작성 중 원래 기반이 되는 스트림에, 보조적으로 받는 스트림을 사용 시, 이것을 데코 한다 하여, 데코레이터 패턴이라 불린다. 자바 용어는 아니고, 디자인 패턴에서 부르는 용어이다. 자바의 입출력 스트림은 데코레이터 패턴을 사용한다..
-
[Java]Singleton Pattern에 대하여Just do it. 2020. 6. 28. 21:11
git blog address : https://egjeon.github.io/ just my story No effort betrayed. egjeon.github.io 사실 tistory에 글을 올리기 전에 git에 내용 정리를 먼저 하였다. 내가 리스펙 하시는 분께서, git은 개발과 별개로 필수적으로 알아야 할 내용이기 때문에 찐 강의를 추천해주셨다. 정말 좋은 강의였다. 그리고 사실 내용 전부는 이해하지 못했지만 이전에, 현재도 생각 없이 하던 행위? 들이 비로소 조금이나마 정리가 되었고, 나는 프로젝트 repository용으로만 사용해야만 하는 줄 알았고, 정말 바보였다. git을 블로그처럼 사용하는 것은 그분을 통하여 알게 되었다. 준우 님 짱. 다른 분들도 이 강의를 통하여 조금이나마 도움..
-
[JAVA] 스레드, 멀티스레드에 대하여 알아보자.Just do it. 2020. 4. 15. 14:18
오늘은 멀티스레드에 대하여 알아보자. 공부하시는데 참조가 되길바라며 github에 올린 예제소스를 공유드립니다. https://github.com/egjeon/thread-basic-example 1. Java 프로그램은 하나의 프로세스로 만들어져 수행된다. 2. 프로세스는 실행 중인 프로그램. 3. 하나의 프로세스 내부에서 여러 스레드가 실행될 수 있음 4. 스레드는 실행 중인 프로그램 내에 존재하는 소규모 실행 흐름. - 스레드는 경량 프로세스 멀티스레드 Java 프로그램은 하나의 스레드(main thread)로 시작된다. main 스레드에서 자식 스레드를 만들어 시작시킬 수 있음. 그러면 여러 스레드가 동시에 독립적으로 실행된다. 멀티스레드의 경우 밑에 보이는 두 번째 그림(다중 스레드 프로그램)을..