반응형
SMALL

전체 글 200

[Java] 직렬화(Serialization)와 역직렬화(Deserialization)

잠시 귀차니즘으로 인해 술을 홀짝 마셨더니 정말 오랜만에 글을 작성하게 되었습니다 장마가 지나니 폭염이 시작되서 마스크가 더욱 괴롭게 느껴지네요 (코로나19 -_-) 아무튼 오늘의 학습 주제는 직렬화와 파일 입출력입니다 우리가 알고 있는 자바의 객체는 상태와 행동이 담겨있습니다 그런데 객체의 상태를 저장하고 싶을 때는 어떻게 할까요? 만약 객체의 상태를 만들어낸 자바 프로그램에서만 사용한다고 하면 직렬화를 사용하고 다른 프로그램에서도 사용한다면 일반 텍스트 파일로 저장하는 방법이 있습니다 (물론 다른 방법들도 있습니다) 먼저 알아야하는 것은 데이터는 스트림(Stream) 형태로 이동하고 자바 입출력 API에는 파일이나 네트워크 소켓과 같은 출발지 또는 목적지로의 연결을 나타내는 연결 스트림(Connect..

Java 2020.08.20

[Algorithms] 이진 탐색트리(Binary Search Tree)

이번 학습 주제는 이진 탐색트리(Binary Search Tree)입니다 앞에서 이진 탐색(Binary Search)과 선형 탐색(Linear Search)을 학습했습니다 이진 탐색과 선형탐색이 궁금하시다면 아래의 링크 ↓↓ 2020/07/27 - [Algorithms] - [Algorithms] 선형 탐색(Linear Search)과 이진 탐색(Binary Search) [Algorithms] 선형 탐색(Linear Search)과 이진 탐색(Binary Search) 하루 하루가 순식간이네요😱 오늘도 학습을 하고 잠을 청해야겠습니다 오늘의 학습 주제는 탐색 알고리즘 중에 가장 단순한 탐색 알고리즘인 선형탐색(Linear search) 혹은 순차탐색(Sequential Search) yssa.tisto..

Algorithms 2020.07.31

[Algorithms] 선형 탐색(Linear Search)과 이진 탐색(Binary Search)

하루 하루가 순식간이네요😱 오늘도 학습을 하고 잠을 청해야겠습니다 오늘의 학습 주제는 탐색 알고리즘 중에 가장 단순한 탐색 알고리즘인 선형탐색(Linear search) 혹은 순차탐색(Sequential Search)과 이진탐색(Binary Search)입니다 먼저 선형 탐색은 데이터가 저장되어 있는 배열 또는 선형 리스트를 선두에서부터 하나씩 비교해 찾고자 하는 데이터가 발견될 때까지 검사하는 탐색법입니다 #include #define true 1 #define false 0 #define SIZE 100 typedef int index; typedef int keytype; typedef int boolean; typedef char othertype; index n = -1; struct array..

Algorithms 2020.07.27

[Algorithms] 유클리드(Euclid) 호제법

미루고 미루다 드디어 알고리즘(Algorithms) 학습을 시작! 알고리즘이란 어떤 문제를 해결하기 위한 절차를 기술해 놓은 것입니다 절차는 어떠한 작동을 어떠한 순서로 행할 것인가를 나열한 것인데요 크게 아래의 4가지 특성을 만족해야 합니다 특성 설명 Preciseness(엄밀성) 기술된 내용은 한 가지 이상의 의미를 포함하지 않도록 해야 함 Effectiveness(실효성) 기술된 내용은 반드시 주어진 상황에 영향을 주어서 실제로 상황을 변화시키는 효과가 있어야 함 Input/Output(입출력) 반드시 입력이 주어지고 이러한 입력에 절차를 행한 실제 효과를 반영하는 출력이 있어야 함 Termination(종료성) 기술된 절차는 반드시 종료 상태에 도달해야 함 알고리즘의 종류로는 순차(Serial),..

Algorithms 2020.07.26

[Design Pattern] 명령 패턴(Command Pattern)과 통역 패턴(Interpreter Pattern)

이번 학습 주제는 명령(Command) 패턴과 통역(Interpreter) 패턴입니다 클래스가 일을 실행할 때에는 메소드를 호출합니다 메소드를 호출한 결과는 오브젝트의 상태에 반영되지만 일의 이력은 남지 않습니다 이 때 명령을 표현하는 클래스가 있어서 인스턴스의 집합을 관리한다면 이력을 관리할 수 있습니다 명령 패턴은 이러한 처리를 할 수 있는 패턴입니다 그럼 명령 패턴의 역할들을 정리하고 시작하겠습니다 역할 설명 Command(명령) 명령의 인터페이스를 정의 Concrete Command(구체적 명령) Command 역할의 인터페이스를 실제로 구현 Receiver(수신자) Command 역할이 명령을 실행할 때 대상이 되는 역할 Client(의뢰자) Concrete Command 역할을 생성하고 그 사..

Java 2020.07.24

[Design Pattern] 대리인 패턴(Proxy Pattern)

이번 학습 주제는 대리인(Proxy) 패턴입니다 Proxy는 주로 HTTP Proxy를 떠올리실 것 같네요 아무튼 대리인 패턴은 매우 바쁜 오브젝트 대신에 일을 처리해 줄 수있는 오브젝트가 있는 패턴입니다 물론 처리할 수 있는 일에는 한계가 존재합니다 그럼 대리인 패턴의 역할들을 정리하고 시작하겠습니다 역할 설명 Subject(주체) Proxy 역할과 RealSubject 역할을 동일시하기 위한 인터페이스를 결정 Proxy(대리인) Client 역할의 요구를 할 수 있는 만큼 처리하고 처리할 수 없어 RealSubject 역할이 필요해지면 그 때 RealSubject 역할을 생성 Real Subject(실제의 주체) Proxy 역할에서 감당할 수 없는 일이 발생했을 때 등장 Client(의뢰인) Prox..

Java 2020.07.22

[Product Review] 삼성 갤럭시 버즈(Samsung Galaxy Buds)

정말 오랜만에 제품 리뷰를 하겠습니다 오늘 소개할 제품은 삼성 갤러시 버즈 Samsung Galaxy Buds! 버즈 케이스도 함께 왔네요^^ 상자를 오픈해보겠습니다 구성품은 충전잭 1개 이어캡 4개 세트 버즈 이렇게 들어있네요 버즈를 열어보니 아주 귀여운 녀석이 들어있네요 바로 연결을 해보려고 했으나 충전이 안되어 있어서 충전을 먼저 진행하고 블루투스 연결을 진행했습니다 블루투스 연결을 진행하면 Galaxy Wearable 앱이 실행되는데요 이 앱을 통해 여러 가지 설정을 할 수가 있네요 설정 내용은 아래에~ ˙ 이퀄라이저 ˙ 알림 읽어주기 ˙ 터치패드 ☞ 누르기(곡 재생 또는 일시정지) ☞ 두 번 누르기(다음 곡 재생, 전화받기 및 끊기) ☞ 세 번 누르기(이전 곡 재생) ☞ 길게 누르기(사용자 선택..

Product Review 2020.07.21

[Design Pattern] 플라이급 패턴(Flyweight Pattern)

이번 학습 주제는 플라이급(Flyweight) 패턴입니다 권투에서 가장 체중이 가벼운 체급을 나타내는 플라이급! 플라이급 패턴은 오브젝트를 가볍게 하기 위한 패턴으로 가볍다는 의미는 메모리를 적게 사용하는 것을 의미입니다 다시 말하자면 인스턴스를 가능한 대로 공유시켜서 쓸데없는 인스턴스를 생성하지 않는 것입니다 그럼 플라이급 패턴의 역할들을 정리하겠습니다 역할 설명 Flyweight(플라이급) 공유하는 것이 좋은 것을 나타내는 역할 Flyweight Factory(플라이급 공장) Flyweight 역할을 만들어 인스턴스를 공유 Client(의뢰자) FlyweightFactory 역할을 사용해서 Flyweight 역할을 만들고 이용하는 역할 역할들만 보았을 때는 비교적 간단할 것 같다는 느낌이 스치네요^^..

Java 2020.07.21

[Design Pattern] 상태 패턴(State Pattern)

오랜만에 글을 작성하네요-_- 태안에 조개잡이를 떠났다가 여자친구가 모기에 50방을 물렸네요-_- 모기에게 100% 물리지 않는 어떤 약이나 도구가 발명된다면 대박일듯... 아무튼 이번 학습 주제는 상태(State) 패턴입니다 객체 지향 프로그래밍에서는 프로그램 할 대상을 클래스(Class)로 표현하고 이것을 설계해야합니다 오늘 학습할 상태 패턴은 상태를 클래스로 표현하는 패턴입니다 그럼 상태 패턴의 역할들을 정리하고 시작하겠습니다 역할 설명 State(상태) 상태를 나타내며 상태가 변할 때마다 다른 동작을 하는 인터페이스를 결정 Concrete State(구체적인 상태) 구체적인 각각의 상태를 표현하고 State 역할로 결정되는 인터페이스를 구체적으로 구현 Context(문맥) 현재의 상태를 나타내는 ..

Java 2020.07.20

[Design Pattern] 추억거리 패턴(Memento Pattern)

이번 학습 주제는 추억거리(Memento) 패턴입니다 문서를 작성할 때 필요한 글을 실수로 삭제하게 되면 undo(실행취소) 기능을 사용합니다 객체 지향의 프로그램에서 이 기능을 실행하려면 인스턴스가 가진 정보를 저장해야하고 인스턴스 내부 정보에 접근 가능해야합니다 하지만 접근의 허용은 자칫 캡슐화의 파괴를 초래할 수 있습니다 Memento 패턴은 캡슐화의 파괴에 빠지지 않고도 할 수 있도록 해줍니다 역할 설명 Originator(작성자) 자신의 현재 상태를 저장하고 싶을 때 Memento 역할을 생성하고 이전의 Memento 역할을 전달 받으면 그 Memento 역할을 만든 시점의 상태로 돌리는 처리를 실행 Memento(추억거리) Originator 역할의 내부 정보를 정리하며 그 정보는 비공개함 M..

Java 2020.07.16
반응형
LIST