본문 바로가기

전체보기

(244)
D3.js 사용법을 알기 위한 튜토리얼 예제 분석(D3공식홈페이지 example과 실시간 Line 그래프 예제 분석) D3.js 기본 문법 정리 D3.js는 Data-Driven Documents의 약어로 데이터를 렌더링할 수 있는(그릴 수 있는, 다룰수 있는) 웹 기반 문서 라이브러리다.좀 더 간단 명료하게 설명하면 데이터 시각화 라이브러리다. (실시간 데이터 차트 및 다양한 그래프)D3 공식홈페이지에 가보면 엄청나게 다양한 그래프들이 있고 거기서 원하는 것을 골라서 소스를 얻어갈 수 있다.라이센스도 BSD로 영리든 비영리든 마음대로 사용, 수정해도 된다.D3.js의 기본 문법(사용법)을 숙지하고 예제코드를 분석할 것이다.- D3 작업 순서 1. 데이터를 불러온다.2. 작업할 공간을 선택한다.3. 공간에 불러온 데이터를 연결(바인딩)한다.4. 각각 연결한 것을 원하는대로 그린다.1234567var dataset = [..
JVM 구조와 자바 런타임 메모리 구조 (자바 애플리케이션이 실행될 때 JVM에서 일어나는 일, 과정을 설명해줄 수 있나요?) JVM(Java Virtual Machine) : 자바 가상 머신으로 자바 바이트 코드를 실행할 수 있는 주체다.CPU나 운영체제(플랫폼)의 종류와 무관하게 실행이 가능하다.즉, 운영체제 위에서 동작하는 프로세스로 자바 코드를 컴파일해서 얻은 바이트 코드를 해당 운영체제가 이해할 수 있는 기계어로 바꿔 실행시켜주는 역할을 한다.JVM의 구성을 살펴보면 크게 4가지(Class Loader, Execution Engine, Garbage Collector, Runtime Data Area)로 나뉜다.1. Class Loader자바에서 소스를 작성하면 Person.java 처럼 .java파일이 생성된다. .java 소스를 자바컴파일러가 컴파일하면 Person.class 같은 .class파일(바이트코드)이 생성..
데이터베이스 아키텍처, 오라클 구조 완벽 정리 (프로세스 + 파일 구조 + 메모리 구조) 데이터베이스 아키텍쳐(Database Architecture) 데이터 베이스 아키텍쳐 = 프로세스 + 공유메모리 영역 + 디스크(물리적 파일)영역 Oracle이나 MSSQL 같은 DBMS의 구조를 살펴보면 위와 같이 구성되어 있다. (위 사진은 오라클 구조) 프로세스(Process) * oracle이 리눅스(linux)에서는 프로세스 단위로 생성되고 운영된다. SQL server(mssql)는 쓰레드 기반 아키텍처고 oracle이 윈도우에서는 해당 프로세스를 쓰레드로 대체한다. 어차피 같은 역할을 수행하므로 프로세스로 통칭한다.프로세스는 크게 서버 프로세스(Server process)와 백그라운드 프로세스(Background process)로 나뉜다. - 서버 프로세스서버 프로세스는 사용자 프로세스(클라..
자바 압축 라이브러리 비교 및 사용법을 담은 예제 (내장패키지 java.util.zip , zip4j, apache commons-compress, google snappy-java) 자바에서 압축이 필요할 때? 자바에서 압축이 필요한 경우는 언제일까?- 사용자가 요청한 데이터를 압축해서 (다운로드 가능하게) 파일로 보내줘야할 때- 로그를 파일에 쌓고 파일을 압축하거나 로그 파일의 내용(문자열)을 압축해서 DB에 저장할 때- 압축파일 내부에 .exe파일이 있는지 검사할 때 (조금 다른 예시)기타 여러 경우가 많이 있으나 생략한다.사실 리눅스에서는 crontab 과 DBMS에서 제공하는 명령어로 압축하고 저장할 수 있기도 하다. (꼭 자바(프로그래밍 단)에서 할 필요는 없다.)어떤 경우든 결국은 압축이 필요하고 압축이 필요할 때 적절히 프로그래밍할 줄 알아야 한다.압축의 용도와 성능 압축률이 엄청나게 좋아서 1/10로 크기를 줄인게 무조건 성능이 좋다고 말할 수 있을까?물론 여전히 압축..
자바 NIO 정리 #1 개요 ("JAVA는 느리다"라는 말이 생긴 이유와 개선책, 성능이 좋아지는 입출력 포인트 2가지) "자바는 느리다" - 어디가 느릴까? 진짜 느릴까? "자바는 느리다." 라는 말은 어느 정도 프로그래밍을 해온 개발자들이라면 들어봤을 법한 말이다.그런데 자바가 어디가 느리고 왜 느린지, 그리고 얼마나 느린지에 대한 답을 하는 개발자는 많지 않다.이번 포스트부터 4개 정도의 포스트로 연재할 내용은 자바는 어떠한 이유로 느리고 그것을 개선한 방법은 무엇인지에 대한 것이다.- 자바는 어디가, 왜 느릴까?일단 자바는 C/C++과 달리 포인터로 1. 직접 메모리를 관리하고 운영체제 수준의 2. 시스템 콜을 직접 사용할 수 없다. JVM이라는 프로세스 위에서 동작하는 추상화된 비교적 고수준의 언어이기 때문에 자바는 느리다.기타 GC(Garbage Collection)의 메모리 점유 문제등 느린 이유는 더 많이 있..
자바 XML 파싱 라이브러리, XPath를 사용한 예제와 정확하게 element를 선택하는 방법을 알아보자 Java XML parse Library (=XPath) XPath : 자바에서 내장 패키지(javax.xml.xpath)로 제공하는 라이브러리로 XML형식의 웹문서, 파일, 문자열을 파싱하는데 사용한다.요즘 누가 XML쓰나? JSON이랑 비교했을 때 태그같은 군더더기도 많고 파싱 속도, 전송 속도도 딸리는데? (* JSON이 무조건 좋은 것은 아님.)하면서 별로 선호하지 않는 것은 사실이다.하지만 의외로 아직까지 현업에서 사용되는 곳이 많이 있고 XML만의 장점도 있다.따라서 데이터를 XML로 만드는 것과 XML을 파싱해서 데이터를 이용하는 것 둘다 할 줄 알아야하기 때문에 가장 먼저 XML 파싱 라이브러리인 XPath에 대해 알아보았다.OpenAPI로 받은 XML 데이터 파싱하기 OpenAPI로부터 ..
공공데이터포털 OPEN API 사용하는 방법 (API키 발급 과정부터 개발 문서 확인, 자바코드로 Response 받아보기까지 example) OPEN API 사용하는 방법 (OPEN API 사용해본적 있나요?) 공공데이터 포털에서 제공하는 OPEN API 사용하는 방법에 대해서 간단히 공부해보았다.(원래는 자바에서 XML 파싱 라이브러리를 테스트해보려고 적당한 XML 파일을 찾다가 OPEN API가 JSON 형식 말고도 XML형식으로 제공한다는 것이 생각나서 테스트해봤다.)신입 개발자로 취업할 때 가끔씩 OPEN API 사용 경험을 물어보는 곳도 있었다.이미 많은 신입 개발자들이 포트폴리오를 만들면서 어떤 프로젝트에서는 OPEN API를 사용해봤을거라 생각되지만 정리하는 겸, 사용해보지 않은 분들도 가볍게 경험할 겸해서 OPEN API를 사용하는 방법에 대해 정리한다.(2020.06.03 - 페이지 화면도 많이 바뀌었지만 검색창이나 신청버튼 ..
Jedis 튜토리얼! 자바에서 Redis 사용하는 방법 (jedis 라이브러리를 이용한 예제, sample) Jedis - Redis 자바 라이브러리 Jedis는 Redis를 자바에서 쉽게 사용할 수 있게 도와주는 라이브러리다.jedis말고도 Redis 자바 라이브러리가 다양하게 존재하지만 Jedis가 사용이 가장 간단하다고 한다. 따라서 가벼운 마음으로 실습해본다.Maven repository 가보니까 2.9.0 버전(최신버전)의 라이브러리가 제일 많이 사용되고 있기 때문에 이번 실습환경도 똑같이 jedis 2.9.0 버전을 쓴다.Redis가 뭔지 모르면 지난 포스트 http://jeong-pro.tistory.com/139 를 참고하면 좋을 것 같다.[maven dependency]123456 redis.clients jedis 2.9.0Colored by Color Scripter 메이븐을 빌드툴로 사용하..