분류 전체보기 161

Linked List implemented by JAVA

JAVA로 구현한 링크트리스트 소스 코드는 다음과 같다. class Node { Object data; Node next_node; Node(Object obj) { this.data = obj; this.next_node = null; } } Node클래스다. 기본적으로 데이터가 들어갈 부분과 Next Node로 이루어져 있으며 어떤 데이터 타입이 들어올지 모르기 때문에 Object타입으로 클래스를 정의하였다. public class LinkedList { private Node head; private Node tail; private int size = 0; Linked List 클래스이다. head 노드와 tail 노드, 그리고 리스트의 크기를 나타내는 변수가 있다. 기본적으로 리스트 생성 시 노..

컴퓨터공학 2019.05.29

Red Black Tree - Summary

Binary Search Tree의 최악의 상황에 대해서도 균형된 시간 복잡도가 나올 수 있도록 새롭게 고안된 Balanced Binary Search Tree다. 즉, 최악의 경우 (한쪽에만 노드가 일렬로 정렬된 경우) 가 나오지 못하도록 제약 조건을 걸고 있다. [제약 조건] 1. Root Property : 루트 노드의 색은 검정(Black)이다. 2. External Property : 모든 외부 노드들은 검정(Black)이다. 3. Internal Property : 빨강(Red)노드의 자식은 검정(Black)이다. == No Double Red(빨간색 노드가 연속으로 나올 수 없다.) 4. Depth Property : 모든 리프노드에서 Black Depth는 같다. == 리프노드에서 루트노드..

컴퓨터공학 2019.05.29

RxJava 시작

RxJava란 RxJava란 Reactive Programming을 하기위한 라이브러리인 Rx(Reactive Extensions)의 JVM판입니다. StreamAPI + 비동기 콜백같은 느낌. 이벤트를 정의한 Observable 인스턴스에 대해 짧은 함수를 엮은(체인) 스트림같이 이벤트 결과 데이터를 가공하는 처리를 정의, 지연실행, 비동기 콜백을 할 수있다. 기본적인 사용법 처리를 싱행하고 결과를 전달하는 Observable, 결과를 수신할때의 처리를 정하는 Observer를 사용한다. 우선 “Hello”와 “world”라는 2개의 문자열을 결과로 전달하는 심플한 Observable를 생성해보자. ※java.util.Observable가 아니므로 주의 Observable myObservable = O..

SSUNOIN iOS 앱 개발 포트폴리오

SSUNOIN이란, 숭실대학교(Soongsil Univ.) 공지사항(Notice) 인문대학(InMun)의 약자로 만들어진 iOS 앱이다. Swift언어를 사용하며 개발이 된 앱이다. 기독교학과를 제외한 모든 학과가 들어가 있다. (기독교학과는 싸이월드를 학과홈페이지로 사용하고 있어 개발 당시 파싱 어려움) 예시로 국어국문학과를 선택해보겠다. 국어국문학과의 학과 공지사항을 최신순으로 나타낸 화면이다. 오른쪽에 클립 모양이 있는 게시물은 첨부파일이 있는 게시물을 의미한다. 가장 최신 게시물을 눌러보도록 하겠다. 공지사항 부분이 HTML로 이루어져 있어 HTML을 보여줄 수 있는 WebView를 사용하였다. 하단의 첨부파일의 경우 파일 명을 Parsing하고 개수를 Count하여 레이아웃 하단에 나타나도록 하..

포트폴리오 2019.04.20

GC vs. ARC

ARC는 가비지컬렉션이 절대 아니다! 혼동하면 안됩니다. 방식 자체가 둘이 완전히 다르거든요. Objective C는 기본적으로 Reference Counting 이라는 메모리 관리 모델을 사용합니다. Objecitve C에서만 사용되는 방법은 아니지만 어쨌든 Objective C에서는 기본적으로 메모리를 관리하는 방법 그런데, 이 역시도 어떤면에서든 수동으로 메모리를 관리하는 것이 기본이다보니 프로그래머가 사람인 이상 실수할 때도 있더라는 겁니다. 그래서인지 애플은 XCode 4.2와 iOS 4.3부터 ARC (Automatic Reference Counting) 이라는 메모리 관리 기능을 추가 이로써 프로그래머들이 직접 메모리를 release 하지 않아도 되게 됨 오히려, ARC 기능이 추가되면서, ..

클라이언트 2019.04.13

영문 이력서 작성법(캐나다워홀 출신 발췌)

캐나다 워홀 출신이 말하는 영문 이력서(Curriculum Vitae / Resume) 작성법출처 : https://kangmodae.tistory.com/323#11. 영문 이력서(Resume/CV) 작성법 - 이력서 항목 및 작성 팁* CV/Resume는 캐나다에서 인사쪽을 담당하셨던 현지인의 도움으로 피드백을 받아가며 완성된 내용을 기준으로 작성하였습니다. 영문 이력서(Resume/CV) 란?Resume와 CV(Curriculum Vitae)는 이력서입니다. 해외에서 취업하거나 아르바이트를 구하기 위해서는 필수적으로 작성하고 제출해야하는 서류입니다. 국가에 따라 일부는 CV 혹은 Resume라고 부릅니다.인터넷을 찾다보면 CV는 Resume보다 더 구체적인 항목들을 원한다고 되어 있지만, 사실 아일..

취업 2019.02.09

MQTT에 대한 이해

https://blog.neonkid.xyz/126 MQTT ( Message Queue TELEMETRY TRANSPORT )통신 장비, 모바일, 스마트폰 기기에 최적화된 가벼운 메시징 프로토콜로 IoT장비에 현재 많이 사용되고 있는 프로토콜 HTTP/HTTPS를 사용할 수도 있지만, IoT와 같은 Lite한 장비에 대해 단순 메시징 교환을 위해 무거운 프로토콜을 사용하면 성능 저하가 발생하게 된다. XMPP의 경우 메시지의 크기와 형태가 xml 파일 형식이므로 리소스가 크다는 단점이 있다.그래서 사용한 것이 바로 MQTT가 되겠다. MQTT는 Broker Pattern을 사용한다.Broker라는 중계자가 존재하고 해당 서버에서 Topic선정, Topic의 구독자들에게 메시지를 전달해주는 방식이다. 1..

클라이언트 2019.02.08

Kotlin Singleton

JAVA로 Android 개발 시 종종 등장했던 Singleton을 Kotlin에서 사용하는 간단한 예제를 소개하고자 한다. JAVA에서는 보통 다음과 같이 Singleton을 구현했었다.public class Singleton { private static Singleton singleton; private Singleton() { } public Singleton getInstance() { if(singleton == null) singleton = new Singleton(); return singleton; } }Kotlin에서는 아래와 같이 object를 사용하여 간단하게 Singleton을 하나 만들어 보았다. object KotlinSingleton { val value: String = ..

인원 현황판 만들기

시간 아껴서 최대한 빠르게 인원 현황판을 만들려고 하여 시도해보았다.Chrome에서 정상작동하는 코드이다. 작업 반의 반장이 왼쪽에 나오고 구성원이 영내자와 영외자로 구분되어 표시되는 레이아웃을 시도해보았다.이코드를 계속 다듬으면서 간단하게 코드를 구성할 생각이다. CSS3를 하면서 계속 느끼는 것이지만 잘못 클래스를 설계하면 스타일시트 파일이 정말 많이 더러워진다는 것이다.이를 명심하면서 클래스 설계시 신경을 많이 써야 겠다. 시간만 충분하다면 여유롭게 설계할텐데 너무 많이 더러워졌다. 중복되는 코드도 많아진 것 같고... 암튼 이상이다. ㅇㅅㅇ Specific Td Border Line F-4E/F 준위 홍길동 영외자 영내자 상사 홍길당 부사관 123기 상사 홍길당 부사관 123기 상사 홍길당 부사관..

클라이언트 2017.12.03

ANSI 형식의 csv파일 불러오기

Javascript 언어로 ANSI형식으로 저장된 csv파일을 불러오는 방법을 정리해보고자 한다. csv파일의 경우 주로 엑셀 프로그램에서 저장하는 형식 중 하나인데 Microsoft Excel의 경우 인코딩 형식을 따로 설정한 후 저장할 수 있느 기능이 존재하여 ANSI 던지 UTF-8 이던지 결정할 수 있지만 한셀이나 넥셀같은 국산 소프트웨어의 경우 Excel처럼 사용자가 형식을 저장할 수 없이 ANSI 형식으로 저장된다. ANSI 형식은 euc-kr형식이며 windows-1252형식과 동일하다.이러한 형식으로 HTML5 FIleReader를 활용한 csv Reader를 구현해보고자 한다. 아래는 예시 CSV파일이다. 열1,열2,열3,열4 데이터1-1,데이터2-1,데이터3-1,데이터4-1 데이터1-2..

클라이언트 2017.12.02