분류 전체보기

    [java] JSON 라이브러리

    자바에는 org.json 라이브러리를 이용하여 JSON 데이터를 다룰 수 있다. org.json 라이브러리에서 제공하는 JSONObject, JSONArray 클래스는 JSON데이터를 가지고 있고 JSON형식의 문자열로 출력이 가능하다. JSON JSON은 JavaScript Object Notation 의 약자로 자바스크립트에서 데이터를 전달하기 위해 만들어졌다. JSON 파일의 특징으로는 다음과 같이 key-value 형태로 데이터를 가진다. { "name" : "james", "info" : { "age" : 28, "from" : "USA", "job" : "student" } } JSONObject JSONObject 는 JSON에서 key-value 데이터를 쌍으로 표현하는 객체다. JSONO..

    [Oracle] 계층형 쿼리

    계층형 쿼리 한 테이블에 담겨있는 여러 레코드들이 서로 상하관계(부모, 자식)을 이루며 존재할 때, 이 관계에 따라 레코드를 상,하위 한 구조로 가져올때 사용되는 SQL START WITH ... CONNECT BY 절로 생성 Oracle 9 부터 지원한다. START WITH 절에 시작 조건을 찾은 후 CONNECT BY 절에 연결조건을 찾는다. SELECT [컬럼]... FROM [테이블] WHERE [조건] START WITH [최상위 조건] CONNECT BY [NOCYCLE][PRIOR 계층형 구조 조건]; SELECT DEPT_NAME, DEP_CD, PARENT_CD, LEVEL FROM DEP START WITH PARENT_CD -- 최상위 노드 설정, CONNECT BY PRIOR DE..

    자료구조

    Data Structure 사실 자료구조라는 말을 한마디로 정의하기는 쉽지 않다. 굳이 한마디로 정의하자면 자료가 어떻게 생겼는지? 를 말하는게 아닐까 싶다. 데이터, 즉 내용을 효율적으로 관리하기 위해 사용하는 형식이다. 자료의 효율적인 접근 및 수정을 가능케 하는 자료의 로직, 관리, 저장을 자료구조라 칭한다. 적절한 자료구조를 적용했을 때 자료를 더 효율적으로 저장하고 관리하여 실행시간 단축 및 메모리 용량의 절약을 이끌 수 있다. 자료구조의 선택기준 자료의 처리시간 자료의 크기 자료의 활용빈도 자료의 갱신정도 프로그램의 용이성 자료구조의 특징 효율성 자료구조를 사용하는 목적은 데이터를 목적에 맞게 효율적으로 관리 및 사용하기 위함이다. 적절한 자료구조를 선택하여 사용한다면 코드의 효율👍 추상화 추..

    [spring] Bean, VO, DTO

    자바 스프링 프로젝트를 진행하면서 무수히 많이 봤을 녀석들이다. Bean, VO, DTO 너무 자연스럽고 당연시하게 사용은 했지만 문득 저 세 녀석들의 차이점이 무엇일까? 라는 생각이 들었다. 용어 정의에 대한 중요성을 다시 한 번 느끼면서 Bean, VO, DTO 를 정의해보도록 하자. Bean Bean 객체는 Spring의 IoC Container를 통해 관리되어지는데, DI(Dependency Injection : 의존성 주입)는 XML의 설정정보를 읽어와 객체를 생성하여 등록작업 후에 클래스가 사용될 때 외부에서 객체를 주입하는 기능이다. Spring이 시작되면서 패키지에서 Bean으로 생성할 어노테이션을 가지고 있는 클래스를 서치한 후에 생성된다. (@Controller, Service 등) V..

    [javascript] jQuery dynatree(트리구조)

    Dynatree 제이쿼리에서는 dynatree라고 하는 플러그인을 제공한다. 여러 오픈소스가 존재하지만 자주 사용하여보기도 하였고 편리하다고 생각되어 dynatree 를 소개하고자 한다. 대부분의 트리구조는 Json, Html의 태그를 이용하여 트리를 그려주는 것이 대부분이다. dynatree도 여타 다른 트리구조와 마찬가지로 다양한 방법을 제공한다. li 태그를 이용한 트리구조 위와같은 방식으로 트리를 그려줄 수 있지만 화면이 많이 복잡해진다는 문제점이 있다. 정적인 트리구조를 그리는 간단한 데이터라면 이런식으로 해도 무방하다. dynatree를 이용한 트리구조 $('#treeList').dynatree({ title: 'treeTest', fx: { height: 'toggle', duration: ..

    [node] node.js 시작하기

    최근 원티드나 기타 채용사이트를 살펴보면 요구조건 혹은 우대조건에 node.js가 많이 보인다. 자바를 주력으로 사용하는 나에게 node.js 는 많이 들어보긴 했는데 정확히 무엇인지 잘 몰랐었다. 그냥 단순히 자바스크립트 기반으로 빌드된 자바스크립트 런타임?? 정도로만 알고 있었는데 최근에 크게 관심이 생겨서 노드에 대해 공부를 시작했다. node.js 공식사이트에서는 노드를 다음과 같이 정의하고 있었다. 'Node.js는 Chrome V8 Javascipt 엔진으로 빌드된 Javascript 런타임 입니다.' 즉 노드를 통해 다양한 자바스크립트 애플리케이션을 실행할 수 있고, 서버를 실행하는데 제일 많이 사용된다. 특징 Node.js가 나오기 이전 자바스크립트를 구동하기 위해선 웹 브라우저가 필요했다..

    Redis에 대하여

    Redis Key, Value 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈소스 기반의 비관계형 데이터베이스 관리 시스템이다. 데이터베이스, 캐시, 메세지 브로커로 사용되며 인메모리 데이터 구조를 가진 저장소이다. db-engines.com 에서 key, value 저장소 중 가장 순위가 높다. Redis 의 특징 Key, Value 구조이기 때문에 쿼리를 사용할 필요가 없다. 데이터를 디스크에 쓰는 구조가 아닌 메모리에서 데이터를 처리하기 때문에 속도가 빠르다. String, Lists, Sets, Sorted Sets, Hashes 자료 구조를 지원한다. String : 가장 일반적인 key-value 구조의 형태 Sets : String의 집합. 여러개의 값을 하나의 value 에 넣을 수 있..

    모바일 웹에서 앱 띄우기(deepLink)

    모바일기기에서 웹서핑을 하다가 누구나 한번쯤은 '앱으로 여시겠습니까?' 라는 문구를 본적이 있을 것이다. 이처럼 모바일 웹에서 앱을 여는 기능을 딥링크라고 한다. 모바일에서 특정 앱 접근 시 흔하게 볼 수 있는 기능이다. 앱으로 보기 클릭 시 1. 앱이 기기에 다운로드 되어있는 경우 앱을 열어 해당 페이지로 이동 2. 앱이 기기에 다운로드 되어있지 않은 경우 스토어 페이지로 이동 (안드로이드 -> 구글플레이스토어 / 아이폰 -> 앱스토어 등) 1. 딥링크(deepLink) 특정 주소 혹은 값을 입력하면 앱이 실행되거나 앱 특정 화면으로 이동시키는 기술을 딥링크라고 한다. URI 스킴 방식 : 앱에 uri 스킴(scheme) 값을 등록하여 딥링크 사용 앱링크(appLink) : Android..