개발/기술
-
명령형 UI vs 선언형 UI개발/기술 2021. 11. 26. 20:00
애플리케이션마다 UI Framework가 각각 다른데, 크게 명령형 UI(Imperative UI) 와 선언형 UI(Declarative UI) 로 나눌 수 있다. 명령형 UI Win32 부터 안드로이드, iOS 까지 기존 개발자들에게 가장 친숙한 형태로 메뉴얼하게 화면에 UI View를 추가하거나 삭제할 수 있는 형태의 프레임워크를 말한다. 위 예시 왼쪽 그림에서 View c1, c2를 갖고 있는 ViewB를 오른쪽 그림처럼 배경 화면이 빨간색이고 c3를 갖고 있는 화면으로 변경한다면 명령형 UI 에선 아래 같은 코드로 구현 하게 된다. // Imperative style b.setColor(red) b.clearChildren() ViewC c3 = new ViewC(...) b.add(c3) 선언형..
-
Kafka - Event Streaming Platform개발/기술 2021. 10. 13. 20:30
Event Streaming Platform Kafka를 간단히 설명하면 Event Streaming Platform이다. 그래서 Kafka에 대해서 이해하려면 먼저 Event Streaming Platform이 무엇인지 먼저 이해할 필요가 있다. Kafka 공식 문서에서는 Event Streaming을 다음과 같이 정의한다. Technically speaking, event streaming is the practice of capturing data in real-time from event sources like databases, sensors, mobile devices, cloud services, and software applications in the form of streams of e..
-
JAVA 파일 생성/읽기/쓰기개발/기술 2018. 11. 25. 13:11
JAVA는 객체지향관점에 따라 시스템에 존재하는 파일이나 폴더를 하나의 객체로 보고 관리한다. 시스템 내에서 특정 위치의 파일을 읽거나 삭제 또는 생성하고 싶다면 해당 파일에 대한 객체를 생성해주면 된다. 파일 객체는 아래의 예제 코드처럼 파일 경로와 파일 이름을 생성자의 인자로 넣어주면 간단히 생성할 수 있다. File file = new File(filepath + File.separator + fileName); 1. 파일 유무 확인 및 생성 파일 객체 안에는 여러가지 함수가 있는데 가장 요긴하게 쓰이는 함수는 exists() 함수다. 주로 파일을 생성하거나 사용하기 전에 해당 위치에 파일 또는 폴더가 이미 존재하는지 아닌지를 확인할 때 사용한다. 아래의 코드는 파일의 유무를 확인하고 없는 경우 파..
-
스택, 힙, 코드, 데이터영역개발/기술 2018. 11. 10. 14:20
OS에서 프로세스가 바라보는 메모리 영역은 크게 코드(Code), 데이터(Data), 힙(Heap), 스택(stack) 영역으로 나뉘어진다. Code 영역 프로세스가 실행할 코드와 매크로 상수가 기계어의 형태로 저장된 공간이다. 컴파일 타임에 결정되고 중간에 코드를 바꿀 수 없게 Read-Only 로 지정돼있다. Data 영역 코드에서 선언한 전역변수 또는 static 변수 등등이 저장된 공간이다. 전역변수/static 값을 참조한 코드는 컴파일 하고 나면 Data 영역의 주소값을 가르키도록 바뀐다. 실행 중도에 전역변수가 변경 될 수도 있으니 이 영역은 Read-Write로 지정돼있다. 단, 초기화 되지 않는 전역 변수는 BSS 영역에 할당된다. Stack 영역 자료구조로 많이 알려진 Stack은 프로..
-
VNC와 RDP개발/기술 2018. 9. 12. 22:10
원격 데스크톱을 연결하는 프로토콜은 여러 가지가 존재하는데 이중 대표적인 방법이 VNC와 RDP다. 두 프로토콜 모두 단순히 커맨드 라인 창만 띄우는 ssh를 넘어서서 원격 PC의 그래픽 인터페이스까지 연결해준다는 점은 동일하지만 둘의 세부 동작 방식과 주 사용 용도는 조금 다르다. 이번 포스트에서는 VNC와 RDP의 원리를 분석하고 각각의 차이점을 간단히 정리해보고자 한다. VNC (Virtual Network Computing) VNC는 RFB(Remote Frame Buffer)프로토콜 방식을 이용해 서버에서 보낸 화면 정보를 클라이언트에 설치된 그래픽 라이브러리를 이용해 그리는 방식이다. 사용하기 위해선 원격으로 접속하려는 PC에서는 지속적으로 화면 정보를 RFB의 형태로 변환해 전송하는 서버가 ..
-
jupyter notebook 소개개발/기술 2018. 8. 4. 11:58
파이썬은 라이브러리가 많다는 것이 무궁무진한 장점인데 정작 개발할 때는 어떤 함수가 있고 그 함수를 사용하려면 어떤 인자가 필요한 건지 알지 못해 난감한 경우가 있다. 물론 구글 검색을 통해서 알 수 있지만 궁금한 함수가 한 두개가 아닌 경우에는 매번 검색으로 알아보는 것도 꽤 일이다. 이럴 때는 jupyter-notebook을 사용하면 편리하다. jupyter notebook은 C를 처음 배울때 사용했던 비주얼 스튜디오처럼 객체에서 사용가능한 함수들을 쭉 나열해주고 함수가 어떤 역할을 하며 사용할 때 필요한 인자는 무엇인지 뽑아준다. 매번 선언이 안된 함수를 사용해서 (나처럼) 붉은 에러 메시지를 뿜어내는 사람에게는 필수 소프트웨어 툴이다. pandas 모듈에서 사용가능한 함수들을 출력하고 필요한 인자..
-
URI (Uniform Resource Identifier)개발/기술 2018. 7. 2. 22:34
URI (Uniform Resource Identifier) 현재 URI을 간략하게 소개하는 글을 쓰기 위해 접속한 티스토리 에디터의 주소는 이렇다. http://kwony91.tistory.com/admin/entry/post/?type=post&returnURL=/manage/posts/ 위 주소를 가지고 URI을 이루는 요소에 대해서 간단히 알아보자 1. 스키마(Scheme) 주소 맨 앞에 있는 "http://" 은 많이들 봤을 것이다. 이것 말고도 https도 있고 개발하는 사람들은 ftp, ssh도 봤을 것이다. 일할 때는 특별한 명칭 없이 "http에요? https에요?"라고 말하곤 했는데 전문적인 용어로 스키라(Scheme)라고 부른다. 스키마의 역할은 웹브라우저나 스마트폰 같은 일종의 클라..
-
libgdx - Viewport개발/기술 2018. 6. 22. 21:49
Viewport 정의/종류 Renderer 클래스를 통해 화면에 그려진 결과물을 게임 스크린의 크기에 맞춰 비율을 조정할 수 있는 객체다. 여러 가지 종류가 있는데 이번 포스트에서는 대표적인 세개만 다루고자 한다. 1. StretchViewport 렌더링 결과물을 화면 크기에 맞춰 재조정 해주는 객체다. 주로 윈도우 그림 파일의 가로/세로 크기를 임의 조정할 때 볼 수 있는데 글로 설명하는 것보다는 그림을 보는게 훨씬 이해하기 쉬울 것 같다. 코드상에서는 화면 중앙에 동그란 원을 그렸는데 게임 스크린의 가로 길이가 세로보다 길어 화면 비율에 맞추다보니 원이 타원형으로 보여지고있다. 사각형도 정사각형을 그렸는데 실제로 보이는건 가로가 더 긴 직사각형이다. 2. FitViewport 화면 비율에 따른 재조정..