본문 바로가기
웹 사이트와 웹 응용 프로그램의 차이 VS.NET 2005 서비스 팩1를 설치하면 프로젝트에 웹 응용 프로그램이라는 것이 추가됩니다. 이 웹 응용 프로그램 프로젝트는 기존의 ASP.NET 1.1방식을 따릅니다. 즉, 빌드를 하면 obj폴더가 생성되고 이 안에 debug폴더나 release폴더가 생성되고, bin폴더에 컴파일된 dll이 생성됩니다. 웹 사이트에서는 obj,debug,release폴더가 생성되지 않습니다. 또 빌드를 해도 bin폴더에 dll을 생성하지 않고 단지 소스의 에러 체크 정도만 확인하는 수준에서 끝납니다. bin폴더에 dll이 추가되는 경우는 다른 dll을 참조할 때 입니다. 또 다른 차이점은 웹사이트는 aspx웹페이지 파일들이 요청될 때 동적으로 컴파일된다는 겁니다.(미리 컴파일이라는 것이 있는데 일단 여기서는 제외합.. 2008. 5. 26.
Debug in C# : using #if & conditional attribute C++을 사용하시는 분들은 VC계열에서 전처리자을 이용하는 방법에 대해서 익숙하신 분들이 많으실겁니다. 특히 전처리자, #define, #if ~ #endif등을 이용해서 디버그할때만 필요한 코드를 릴리즈할때 무시하도록 하는 일은 한번쯤은 해보셨지 않았나 싶습니다. C#으로 넘어오면서 네임스페이스등의 개념이 본격적으로 사용되고 전처리자를 잘 사용하지 않게 되었습니다. 하지만 코드를 짜다보니 여전히 디버그용으로 만든 코드가 릴리즈에 포함되지 않게 하는일이 필요하더군요. 그래서 어떻게 쓸수있지 않을까 고민하던 중에 다음과 같은방법을 발견했습니다. using System; using System.Diagnostics; class Program { static void Main(string[] args) { #.. 2008. 5. 26.
ZDNet 협업 노하우 [협업 노하우 ①] 커뮤니케이션과 협업 [협업 노하우 ②] 위키를 활용한 협업 노하우 [협업 노하우 ③] BTS 활용 노하우 [협업 노하우 ④] Jira와 Mylyn 활용 전략 [협업 노하우 ⑤] CVS/SVN을 이용한 버전 관리 [협업 노하우 ⑥] Visual Studio Team System과 협업 2008. 5. 23.
앉을때의 바른자세 엉덩이를 최대한 깊숙하게 뒤로 해서 등받이에 닿도록 한다 엉덩이를 깊숙히 넣어 앉는 것은 척추의 정상적인 곡선을 유지하기 위한 것이다 등받이에 상체를 완전히 맡기고 의자를 당겨서 책상 앞으로 최대한 가까이 간다등받이에 상체를 완전히 맡겨야만 상체와 척추의 부담을 덜어 줄 수 있으며 의자에 걸터앉는 잘못된 습관의 교정을 위해 책상에 가까이 다가갈 것을 권장하는 것입니다. 흉추12번이나 요추1번 부위에 허리 받침대를 대 주도록 한다 흉추12번이나 요추1번 부위는 구부정하게 앉았을 때 가장 많이 뒤로 굽는 부위로 허리에 부담을 가장 많이 받는 부위입니다. 허리받침대는 이러한 허리부위의 부담을 덜어주며 척추의 정상적인 곡선을 유지하는데 도움을 줍니다. 의자에 앉을 시 발바닥은 필히 바닥에 닿아야 하며 무릎이 엉.. 2008. 5. 23.
서블렛 + JDBC 연동시 코딩 고려사항 -제3탄- 질문이 구체적이지 않아, 무얼 묻고 있는지 추측으로 답변드리겠습니다. 질문추측: JDBC를 이용하여 DB작업을 하는데, 여러개의 클래스로 각각의 몇몇 SQL문장을 실행하는 구조인데, 지금은 하나의 클래스에서 개별적으로 Connection을 얻어 Statement를 실행하고 Connection을 닫는 구조입니다. 그러나, 주된 메인클래스에서 그렇게 만들어진 여러 클래스의 메소드를 호출하여 전체가 하나의 DB Transaction으로 연결되게 하고 싶습니다. 어떻게하면 됩니까? 답변: Servlet/JSP를 이용한 프로젝트에서, 국내에서 유통(?)되고 있는 대표적인 DB핸들링 기법은 (제 생각으로는) 다음과 같은 유형으로 축약되는 듯 합니다. 첫째, "DbBean"의 형태 입니다. 즉, Entity Data.. 2008. 5. 22.
서블렛 + JDBC 연동시 코딩 고려사항 -제2탄- 5. JDBC Connection Pooling 을 왜 사용해야 하는가 ? Pooling 이란 용어는 일반적인 용어입니다. Socket Connection Pooling, Thread Pooling, Resource Pooling 등 "어떤 자원을 미리 Pool 에 준비해두고 요청시 Pool에 있는 자원을 곧바로 꺼내어 제공하는 기능"인 거죠. JDBC Connection Pooling 은 JDBC를 이용하여 자바에서 DB연결을 할 때, 미리 Pool에 물리적인 DB 연결을 일정개수 유지하여 두었다가 어플리케이션에서 요구할 때 곧바로 제공해주는 기능을 일컫는 용어입니다. JDBC 연결시에, (DB 종류마다, 그리고 JDBC Driver의 타입에 따라 약간씩 다르긴 하지만 ) 대략 200-400 ms 가 .. 2008. 5. 22.
서블렛 + JDBC 연동시 코딩 고려사항 -제1탄- 다들 아실법한 단순한 얘깁니다만, 아직 많은 분들이 모르시는 것 같아 다시한번 정리합니다. 아래의 각각의 예제는 잘못 사용하고 계시는 전형적인 예들입니다. 1. 서블렛에서 instance variable 의 공유 1.1 서블렛에서 instance variable 의 공유 - PrintWriter - 다음과 같은 코드를 생각해 보겠습니다. import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class CountServlet extends HttpServlet { private PrintWriter out = null; // 2008. 5. 22.
현장에서 마주칠 수 있는 10가지 타입의 프로그래머 프로그래머들은 특별한 사람이라고 평가되는 것을 좋아한다. 사실은 어떤 모범적인 프로그래머들은 다른 프로그래머들의 이상한 점을 개발자들의 커뮤니티 내에서도 발견한다. 아래에 10가지 타입의 프로그래머를 소개한다. 여러분은 이 중에 어떤 타입인가? #1: 간달프(Gandalf) 이 프로그래머 타입은 ‘반지의 제왕’에 나오는 마법사 간달프와 닮았다. 이 타입의 외관은 턱수염을 기르고, 이상한 모자를 쓰고, 겨울에 망토 같은 외투를 입을지도 모르며, 좋게 보면 간달프와 같은 마법으로 팀을 위하고, 안 좋은 면은 팀원들이 간달프가 눈길을 걸어올라 오는 시간을 기다리듯이 그가 전산실에 오는 시간을 오랫동안 기다려야 한다는 것이다. 이런 타입은 실력이 아주 뛰어난 중요한 인물이지만 보통은 같이 일하기를 꺼려한다. 하.. 2008. 5. 22.
SourceForge 에 Open Source 프로젝트 생성하기 #1 - 고절가주팁 SourceForge 에 생성된 YSLog 메인 페이지그런데 막상 SourceForge를 통해 Open Source 로 진행하려다 보니 제가 Open Source 프로젝트 진행에 대해 아는 바가 너무 없어서 약간 헤메고 있었습니다. 이제서야 어느 정도 정리가 돼서 그 동안 정리된 내용을 공유하고자 합니다.다음은 SourceForge 를 통해 Open Source 프로젝트를 생성하고 기본 Setup 하는 절차입니다.1. SF.net 계정 생성하기2. 프로젝트 생성 요청 작성.3. secure shell 설치4. Project Home Page 작성5. Subversion 활성화6. Subversion Client 설치7. 초기 소스 코드 import1. 먼저 계정 생성하는 것부터 설명 드려 보겠습니다. 우.. 2008. 5. 22.