JSON accumulrate와 Put의 차이


Dev&Prog

Written by 블럭 on 2013. 12. 31. 11:05

 

JSON accumulrate와 Put의 차이 그리고 element ...?

Json 연습중 accumulate, put, element가 있어서 사용해보았는데
accumulate는 데이터에 Null값은 제외하고 담는 반면
Put은 Null값도 전부 담아주는 것 같다.
그리고 element와 accumulate
element는 요소에 데이터를 집어넣는 것으로 "test", "value"의 값을 집어넣으면 test를 while로 돌려도
최종적인 값이 들어가게 된다.
accumulate는 '축적하다'라는 뜻으로 말그대로 "test", "value"의 값을 집어넣으면 test를 while로 돌렸을 때
5회 수행시 최정적인 값은 value가 5번 들어간 값이 된다.

안드로이드 내장 DB 접근


Dev&Prog/Android

Written by 블럭 on 2013. 12. 24. 17:09

cmd -> adb shell -> su -> 권한획득 확인 -> chmod 777 /data -> DDMS data 폴더 접근

1시간동안 삽질했는데 결론은 루팅 된 폰에서만 접근 가능한 것 같다..............
내장 DB 배워보려고 했는데 초반부터 시간만 잡아먹었다.

이번학기에 배운 JAVA 언어를 이용하여 동일한 기능의 프로그램 세 가지를 작성해본다.
1. JAVA GUI
2. Android
3. JSP

세 가지 모두 하나의 Filtering class를 HashMap으로 구현하여 작성했다.

 

1. JAVA GUI

 

2. Android

 

3. JSP


예전에는 안드로이드 어플리케이션을 만들때 무작정 외워서 했지만
이번학기에 JAVA를 배우고나니 안드로이드가 이렇게 쉬운줄은 몰랐다.
아직은 시작에 불과하지만 내가 생각하는게 모두 구현될때까지 더더 열심히 공부해야겠다.

 

티스토리 초대장 배포


일반

Written by 블럭 on 2013. 12. 18. 23:15

티스토리 초대장 10장 배포합니다. 비밀 댓글로 이메일 주소와 어떤 종류의 블로그를 개설할지 남겨주세요!

가상메모리 - 교체알고리즘


컴퓨터

Written by 블럭 on 2013. 12. 13. 22:40

Page Replacement 알고리즘
Page Fault 가 발생하면 OS는 프로세서가 요구하는 워드를 포함한 페이지를 하드디스크로부터 물리메모리(메인메모리)로 이동시키는 데, 이때 이미 메인 메모리에 저장되어 있던 page를 교체하는 방법

가상메모리 시스템 중 교체 알고리즘에 대한 예제
FIFO, LRU, Clock 세 가지

 

  HIT

 USED

 

FIFO교체
메모리 내에 가장 오랫동안 있었던 페이지를 교체하는 알고리즘이다. 이 방법은 가장 오래전에 적재된페이지가 다시 사용될 확률이 적다는 논리를 이용해서, 메모리에 가장 오래 있었던 페이지를 교체하는 것이다. 각 페이지가 주기억장치에 적재될 때마다 그때의 시간을 기억시켜 둬야 한다.

2, 3, 4, 2, 6, 2, 5, 6, 1, 2 페이지에 대한 요청

 요청 

 PF0 

2

2

2

6

6

6

6

1

1

PF1

 

3

3

3

3

2

2

2

2

2

PF2

 

 

4

4

4

4

5

5

5

5

 

 

 


적중률은 3/10 = 30% 이다.

LRU교체
메모리 내에 적재된 페이지 중에서 사용되지 않은 채 가장 오래 있었던 페이지를 교체하는 알고리즘이다. 각 페이지가 참조될 때마다 그때의 시간을 테이블에 기억시켜 두고, 페이지가 교체될 때마다 가장 오랫동안 있었던 페이지를 교체한다. 지역성의 원리를 따른다면, 이 페이지는 향후 참조될 가능성이 가장 적을 것으로 판단된다. 구현이 어려우며, 참조될 때마다 시간을 기억하는 것은 오버헤드가 많다.

요청 

 PF0 

2

2

2

2

2

2

2

2

1

1

PF1

 

3

3

3

6

6

6

6

6

6

PF2

 

 

4

4

4

4

5

5

5

2

 

 

 

적중률은 3/10 = 30% 이다.

Clock교체
FIFO알고리즘을 수정한 것으로서, 주기억장치 내에 적재된 페이지의 시간과 사용빈도를 고려한다. 그래서 이 교체 방법을 FINUFO라고도 한다. 이 방법을 구현하는 데는 페이지 사용을 나타내는 사용 비트와 페이지가 적재되는 위치를 나타내는 포인터가 사용된다.

 

 Pnt

Pnt+1 

 

 REQ

 

 

 

 

 

 

 

 

 

 

 

 PF0

 PF1

 

 

 0

 PF2

 

 

 

 

 

 

 

Clock 알고리즘은 사용비트가 1이면 사용 비트를 0으로 변경 후 포인터를 증가시킨다. 새로운 포인터가 가리키는 곳에 Page가 변경이 되면 포인터를 다시 증가시킨다.  Hit시에는 포인터가 증가하지 않음
적중률은 4/11 = 36% 이다.

 

[DB모델링] Cafe de Horang / 2학기 팀 프로젝트


Dev&Prog

Written by 블럭 on 2013. 12. 2. 18:52

이번 2학기 과목중 하나로 데이터베이스모델링을 수강했다.
학기가 끝나가며 DB 실습 팀프로젝트를 내주셨고 우리 팀은 JSP를 이용한 웹페이지를 이용하여
약간의 시뮬레이션이 포함 된 커피숍 홈페이지를 제작하기로 했다.

1차로 요구사항을 수집 개념적 논리적 설계를 하고 2차로 쿼리를 짜본다음 3차로 JSP 연동을 했는데
처음 접한 DB설계라 어려움이 많았지만 팀원이 꽁꽁 뭉쳐 서로 피드백을 하다보니 깔끔한 데이터 베이스와 페이지가 만들어졌다.

 나름 JSP를 확실하게 사용하려고 세션도 넣고 디자인과 코드부분도 나눠 깔끔하게 짜보았다. css, js, jsp 구분!
디자이너가 아니라 완벽한 디자인은 나오지 못했지만 틀은 어느정도 잡힌 것 같아서 뿌듯하고 완성도가 매우 높다고 생각하여 만족스럽다. 

 

[JSP] JSP&서블릿, 기본 셋팅


Dev&Prog/JSP

Written by 블럭 on 2013. 11. 30. 11:47

JSP(JavaServerPages)는 웹 브라우저의 요청을 받아 해당하는 웹 페이지를 찾아서 보내주는 Web server다.
이 웹 서버는 웹 브라우저로부터 URL을 받아서 그에 해당하는 문서를 찾아 웹 브라우저로 보내주는 일을 한다.

JSP는 기본적으로 JAVA프로그래밍은 이해해야하고 HTML을 많이 써본 사람이라면 코딩하는데 어려움이 없을 것 같다.
- HTML문서 안에 자바 코드가 삽입되는 구조이기 때문에...
(초등학교 3학년 때 재밌다고 다음 카페 태그교실에서 배운게 지금도 많은 도움이 되고있다!)

JSP는 기본적으로 <% %>, <%= %> 등으로 사용을 하지만 JSP2.0에서 추가 된 EL(ExpressionLanguage)을 사용하여
자바코드를 제거해 코드가 간결하고 가독성을 좋게 할 수 있다. 최근에는 자바코드를 이해할 필요가 없는 디자이너와의 협업이 많아지면서 JSP문에 자바코드를 제거하여 작성하는 곳이 많다고 한다. JSTL, JavaBean 등...

Servlet 자바를 기반으로 하는 웹 애플리케이션 프로그래밍 기술이다.
서블릿은 자바 클래스 형태로 작성이 되며 이렇게 작성 된 클래스는 서블릿 클래스라 부른다.
서블릿은 자바코드 안에 HTML 문이 삽입 된다.

*서블릿 클래스를 작성할 때의 규칙*
1. javax.servlet 패키지에 속하는 Servlet 인터페이스를 구현하도록 만들어야 한다.
- import Servlet.http.*;  후 HttpServlet을 상속하여 사용하는게 편함
2. doGet 이나 doPost라는 메서드를 선언하고, 그 안에 서블릿 클래스가 호출되었을 때 해야할 일을 써 넣어야 한다.
- 파라미터로는 HttpServletRequest request, HttpServletResponse respone가 들어간다.
3. 동적인 HTML 문서 생성을 위해 doGet이나 doPost 메서드의 두 번째 파라미터 파라미터를 이용해야 한다.

-서블릿 클래스 작성 예제-

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*; 
public class ServletTest extends HttpServlet{
    public void doGet(HttpServletRequest request, HttpServletResponse response) 
                            throws ServletException,    IOException{
    PrintWriter out = response.getWriter();
    out.println("<HTML>");
    ......
    out.println("</HTML>");
    }     
}

이제 코드를 작성하여 테스트를 할 서버를 만들어 보자.(톰캣과 이클립스를 이용하여 작성)
준비물 - Tomcat 6.0 / JDK SE / Eclipse EE
톰캣 6.0 - http://tomcat.apache.org/download-60.cgi
>> 32-bit/64bit Windows Service Installer 클릭하여 다운로드
JDK - http://www.oracle.com/technetwork/java/javase/downloads/index.html
>> JDK DOWNLOAD - Java SE Development Kit에서 Accept 자신의 OS와 맞는 exe파일 다운로드
Eclipse - http://www.eclipse.org/downloads/
>> Eclipse IDE for Jave EE Developers 오른쪽에 자신의 OS에 맞게 클릭하여 다운로드

설치는 간단히 다음 다음을 눌러주면 되며 JDK의 별도의 환경변수 설정은 필요없으나
Eclipse EE를 실행 후 Window - Preferences - Runtime Environments 에서 Add - Apache Tomcat v6.0을 추가해야한다.

셋팅이 모두 끝났으면 이클립스에서 New - Dynamic Web Project 로 프로젝트를 생성한다.
(마지막 창에서 Generate web.xml이 체크 되어있나 확인)
프로젝트가 생성되었으면 ProjectName - WebContent안에다 jsp 파일을 생성 후 Run As를 눌러서
http://localhost:8080/ProjectName/FileName.jsp 가 하얀색 화면으로 뜨면 성공이다.

JSP 스터디를 하면서 배웠던 내용을 복습하는 겸 블로그에 적어봤는데 스쳐지나간 내용이나 자칫하면 까먹을 뻔했던 내용이 이제는 내 머리속에서 깔끔하게 정리 되었다.

[컴퓨터 구조] SRAM 설계


컴퓨터

Written by 블럭 on 2013. 11. 27. 22:08

 

메모리셀의 배열이 64 * 64
512*8의 메모리칩의 내부 구조
총 9개의 주소선과 8개의 데이터 선이 필요하다.

이를 이용하여 4K * 1, 1K * 4, 256 * 16 등의 다른 메모리 구성 설계도 해보자.

[MFC] 프로젝트


Dev&Prog

Written by 블럭 on 2013. 11. 24. 15:58

 윈도우 프로그래밍의 학기말 프로젝트
우리조는 최근 문제가 되고 있는 성범죄자에 관한 주제로 성범죄자 관리 및 예방 시스템을 구현중이다.
현재 나와있는 전자발찌의 부족한 기능에 살을 붙히고 창의적인 기능을 추가해 제출할 예정이다.

어제 본격적으로 시작을 하고 마일스톤에 올리는데 올리자마자 해결, 해결, 해결 떠서 정말 뿌듯하다!!!
svn을 사용하면서 정말 개발자가 된 느낌을 받아서 그런지 하루종일 새벽이 되어가는데도 MFC만 만지고 있다.
정말 정말 내가 생각한 기능이 눈앞에서 보여질 때의 짜릿함이란 !! 이 짜릿함에 어떻게 코딩을 그만두랴!!
하지만 ... 나의 젤 문제는 쓸떼 없이 여러언어를 접하고 있다는 것.. 너무 짜릿함만 느끼고 있는 건 아닐련지

Revision.7
1. 배경음 추가
2. 경고문구 출력 후 경찰 등장

Revision.8
1. 더블 버퍼링 구현

Revision.9
1. 도로 위 자동차를 랜덤하게 생성
 // car_Time은 랜덤함수 측정용

Revision.11
1. 미니맵 구현

Revision.12
1. 메뉴에 리셋버튼 추가

Revision.15
1. 모달리스 <-> 뷰 상호 통신

Revision.16
1. 비프음 추가 == 수정중

Revision.17
1. Draw 영역 분할
 - 모든 맵에서 공통적으로 출력하는 DrawImage
 - 각 맵에서 각각으로 출력되는 DrawMonitor

 Hint
 >> 어느맵을 선택하던지 미니맵은 보여야 하므로 DrawImage에 맵을 구현
 >> 각 맵마다 맵과 등장인물 등의 다른 요소가 보여야 하므로 DrawMonitor에 구현

[MFC] 윈도우 크기 고정 및 스타일


Dev&Prog

Written by 블럭 on 2013. 11. 23. 23:44

윈도우 생성시 크기조절 및 스타일 설정  

CMainFrame::PreCreateWindow(CREATESTRUCT& cs){
//...................... 
 cs.cy = 600;    

 cs.cx = 600; 
 cs.style &= ~WS_THICKFRAME;     //스타일, 프레임 크기 조절 비활성화
 cs.style &= ~WS_MAXIMIZEBOX;    //최대화 버튼 비활성화

//.........................
 }