-
[Java] JVM 구조Developer/Java 2013. 3. 13. 11:07
JVM에서 실행되는 모든 프로그램들(스레드)들은 메소드 영역과 힙 영역을 공유하게 된다. 메소드 영역은 클래스 내의 메소드에 해당하는 바이트코드와 클래스 변수 등이 저장되는 영역이며, 힙영역은 프로그램의 실행 중에 생성된 객체를 저장하게 된다. 스택영역은 각각의 스레드가 수행되면서 실행하고 있는 메소드의 호출 상태를 저장하며, 여러개의 스레드가 수행되는 경우 다수개의 스택 프레임으로 구성될 수 있다. 메소드 영역 자바 프로그램을 구성하고 있는 메소드와 클래스 변수(static으로 선언된 변수)를 저장하기 위한 공간이다. JVM은 복수개의 스레드가 메소드를 정상적으로 사용하기 위한 동기화 기법을 제공한다 힙 영역 프로그램 상에서 데이터를 저장하기 위해 동적으로(실행시간에) 할당하여 쓸 수 있는 메모리 영역..
-
[Java] Multi-Thread - 채팅Developer/Java 2013. 3. 13. 10:19
파일 1 ClientThread.java package network.chatting.client; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintWriter; import java.net.Socket; import network.util.close.NetworkUtil; /* * 서버가 출력한 글을 읽어서 표준 출력(모니터)에 출력 */ public class ClientThread extends Thread { private Socket socke..
-
[Spring] DI 개념Developer/Spring 2013. 3. 13. 09:38
스프링 프레임워크의 가장 큰 특징 중 하나가 DI를 지원한다는 것입니다. DI(Dependency Injection), 한글로 하면 ‘의존성 주입’ 이라는데.. 이름만 봐서는 뭘 해주는 녀석인지 이해가 가지 않습니다. DI(Dependency Injection) ? 제가 생각할 때 DI를 사용하는 가장 큰 목적은 다음 한 줄로 나타낼 수 있을 것 같습니다. 코드 의존성 제거 - 수정 사항이 있을 때 손이 덜 가게 하고 싶다. 예를 들어 프로그램 시작 시, 동작하는 곳의 IP address를 알아야 한다고 가정합시다. IP address를 코드상에 기록한다면 설치할 때마다 매번 코드를 수정해야 하지요. 하드코딩된 IP address를 찾는 것도 일입니다. 파일에 IP address를 적어두고 프로그램이 실..
-
[ajax, web] 성능관리Developer/HTML+Script 2013. 3. 13. 09:36
서버 자원 낭비는 Ajax 응용 프로그램 성능에 영향을 주고, 과도한 HTTP 요청을 유발하고, 많은 메모리를 소모하고, 응용 프로그램이 동작하는 데 비정상적인 폴링을 필요로 하게 됩니다. developerWorks의 고정 필자인 Judith Myerson이 Ajax 응용 프로그램의 문제를 해결하기 위해 사용할 수 있는 몇 가지 오픈 소스 도구와 파이어폭스 부가 기능을 추천합니다. 소개 필자가 쓴 developerWorks 기사 "Speed up your Ajax applications while dodging Web services vulnerabilities"에서, 네트워크에 병목현상을 유발하는 과도한 대역폭, 빈번한 HTTP 요청, 메모리 누수에 대해 논의했다. 그 기사를 통해 병목현상을 제거하고 ..
-
[ajax] 폴링, COMETDeveloper/HTML+Script 2013. 3. 13. 09:28
폴링(polling) 이란 하나의 장치(또는 프로그램)이 충돌 회피 또는 동기화 처리 등을 목적으로 다른 장치(또는 프로그램)의 상태를 주기적으로 검사하여 일정한 조건을 만족할 때 송수신 등의 자료처리를 하는 방식을 말한다. 서버의 제어 장치(또는 프로그램)는 순차적으로 각 단말 장치(또는 프로그램)에 회선을 사용하기 원하는지를 물어본다. 폴링의 문제점 1. 주기가 짧으면 서버의 성능에 부담이 간다 2. 주기가 길면 실시간성이 떨어진다. Comet이란? Comet은 새로 개발된 혁신적인 기술을 의미하지 않는다. Ajax와 마찬가지로 이전부터 사용되던 방법을 지칭하기 위한 통일된 용어가 필요했고 그 용어를 Comet이라 명했을 뿐이다. 그 이전에는 이와 비슷한 방식을 두고 Reverse Ajax라고도 불렀..
-
[ajax] 란?Developer/HTML+Script 2013. 3. 13. 09:25
1. AJAX 란? 웹 2.0을 실현하는 핵심기능인 AJAX(Asynchronous Javascript And XML) 는 웹 사용자들에게 보다 높은 수준의 인터페이스를 제공하여 인간 친화적 웹을 구현할 수 있도록 도움을 주는 기술 ** WEB 2.0 : 사용자 위주, 참여 위주의 웹으로 사용자들의 참여와 공유로 데이터가 쌓이고, 이렇게 쌓인 데이터를 다시 사용자들이 재 사용할 수 있도록 API가 공개 되며, 이를 응용할 수 있는 아이디어에 의해 새로운 서비스가 탄생하여 다시 새로운 참여를 유도하는 형태 2. 구성요소 - 비동기 방식으로 HTTP 요청을 보내고 응답받기 위한 XMLHTTP - 정보를 구조적으로 전달하기위한 XML - 정보를 화면에 표시하기 위한 DOM방식을 조작하는 자바스크립트 - 정보를..
-
[2013] 게임회사 취업 정보일상.. 그 따분함 2013. 3. 11. 09:36
▲ 각 게임사의 현위치와 이전 계획 여부. ▲ 게임사의 상반기 채용 계획. ▲ 각 게임사의 복지 혜택. 수시로 변경되는 만큼 확인이 필요하다. ■게임사 비전 살펴보니...글로벌 공략과 모바일 게임 사업 확대 가장 중요한 것은 회사의 안정성과 비전이다. 대부분의 게임사는 올해가 위기라고 보고 있지만 새 게임 출시, 모바일 게임 사업 확대 등을 통해 재도약을 하겠다는 각오를 보였다. 넥슨은 온라인 게임의 성과에 만족하지 않고 모바일 분야의 경쟁력을 높이고 있다. 이 회사는 지난해 인블루와 글룹스를 인수하며 모바일 게임 분야의 역량 강화에 나섰다. 자체적으로도 모바일 개발 전문 개발사인 ‘네온스튜디오’를 설립하는 등 새로운 시도를 멈추지 않고 있다. 엔씨소프트는 블레이드앤소울과 길드워2로 중국 시장 공략에 박..