목록전체 글 (332)
삶 가운데 남긴 기록 AACII.TISTORY.COM
정치다당제 민주주의가 가장 경제 성장에 좋습니다. 예산초반에 빚이 있을 때는 예산을 조절해서 빚을 먼저 갚습니다.개인 소득세: 최대 79.9% 이하로 올립니다. 그 이상은 정부 예산을 최대로 올려도 정부지지율이 떨어져 선거에서 패배하게 됩니다.정부 예산: 정부예산은 개인 소득세에 비례해서 올립니다. 자세한 수치는 정부 지지율을 보면서 조절하면 됩니다.사회시설, 환경, 교육: 75% 이상으로 합니다. 100% 추천합니다.의료보험, 통신, 관광업: 예산의 여유가 있는 만큼 조절해 줍니다.정치선전: 정치선전은 올리면 정부지지율은 올릴 수 있으나 외교 관계에 좋지 않습니다. 그걸 감안해서 조절합니다.국외원조: 우호도를 올릴 필요가 있으면 올리고 그게 아니라면 적당히 조절합니다. 인구 버그1. 시간을 0배속으..
1. host name 등록 sudo vi /etc/hosts ip와 호스트 네임 등록 후 저장합니다. 2. 라이센스 발급 Technet 효율적인 시스템 관리를 위한 기술 전문 포탈, 테크넷서비스 technet.tmaxsoft.com 티맥스 소프트 가입 후 로그인 데모라이선스 신청 버튼 클릭 JEUS Version 5fix#19 or Later 을 선택 후 제출하기 버튼 클릭 그러면 이메일로 라이센스 파일이 첨부되어 옵니다. 리눅스용 라이센스 license.dat 파일을 license 으로 파일명 변경 3. 설치파일 다운로드 https://technet.tmaxsoft.com/ko/front/download/findDownloadList.do?cmProductCode=0101 TmaxSoft Techni..
CATALINA_HOME과 CATALINA_BASE를 분리 Tomcat 하나에서 여러 web application 을 context root를 분리해서 구동시킬 수 있습니다. 그런데 $CATALINA_HOME과 $CATALINA_BASE를 분리해서 하나의 Tomcat으로 여러개의 인스턴스를 각각 다른 포트 번호로 구동할 수도 있습니다. 여러 인스턴스로 구동하게 되면 각각의 구동 환경을 분리해서 webapp을 구동시킬 수 있습니다. 이렇게 하면 tomcat을 업데이트 할 때 인스턴스는 그대로 두고 tomcat만 교체하면 되기 때문에 편리합니다. server.xml 파일 하나에 여러 호스트 정보를 등록해서 관리 할 수도 있는데 이런 경우 Tomcat 재구동시 모든 서비스들이 재시작되므로 추천하지 않습니다. ..
설치 가능한 JDK 확인 sudo yum list java*jdk-devel 설치 가능한 JDK 리스트가 출력됩니다. openjdk11 설치 sudo 나 root계정이 필요합니다. sudo yum install java-11-openjdk-devel.x86_64 JAVA_HOME 설정 .bashrc는 세션이 시작될 때 자동으로 환경 변수가 등록되며 .bash_profile 은 1회용 환경변수이므로 세션이 달라지면 사라집니다. 우선 jdk의 경로를 확인합니다. find / -name "javac" 2>/dev/null 여기서는 로그인한 계정의 홈 디렉토리에있는 .bashrc를 수정하도록 하겠습니다. vi ~/.bashrc 여기서의 JAVA_HOME 경로는 위에서 설치한 jdk의 경로를 지정해둡니다. 만약 ..
gitlab 설치 시에 기본 port가 8080 입니다. 그런데 8080은 흔히 WAS에서 사용하는 포트기 때문에 보통 gitlab의 포트를 8080 포트가 아닌 다른 포트로 변경해서 설치합니다. (external_url 설정으로...) 그런데 gitlab을 구동했을 때 8080 포트가 사용중인 경우가 있습니다. 깃랩 서비스가 시작된 후 사용 중인 포트를 조사해보면 sudo netstat -nltp puma가 8080 포트를 점유중인것을 알 수 있습니다. puma 구글에서 검색해보면 unicorn 설정이 많이 나오지만 gitlab 14.0 부터는 unicorn 의 지원을 제외한다고 합니다. 그런데 puma 가 8080 포트를 기본 값으로 사용하고 있어서 tomcat같은 was를 사용할 때 8080 포트가..
1993년 루카스필름 작, 매니악 맨션 후속작 텐타클 최후의 날입니다. 영화/애니메이션을 제작하던 회사답게 미국식 애니메이션과 미국식 개그 코드가 재미있는 게임입니다. 시간 여행을 소재로 하였기 때문에 모은 아이템들을 시간 이동 시켜서 각 시간대에서 문제를 해결해 나가는 게임입니다. 게임 곳곳에 제작팀의 번뜩이는 창의력이 돋보이는 명작입니다. 게임 오버는 없지만 문제를 해결하지 못하면 더 이상 진행을 못합니다. 등장인물 버나드 : 이전작에도 등장했던 전형적인 너드한 공돌이 캐릭터. 현재 시간대를 담당합니다. 래번 : 의대생으로 말투가 느려서 귀엽습니다. 200년 후 시간대를 담당합니다. 호기 : 밴드에서 드럼을 맡고 있는 뮤지션 캐릭터. 200년 전 시간대를 담당합니다. 줄거리 매니악 맨션에서는 오수로 ..
100 : 현재 데이터를 서버가 받은 상태 200 : 에러없는 정상 처리 204 : 정상처리되었지만 서버에서 응답 데이터가 없음 301 : 요청 페이지가 새 URL로 변경되었음 304 : 기존 데이터와 변경된 것이 없음 400 : Request에 문제가 있어서 서버가 인식 할 수 없음 403 : 서버에서 허락되지 않음 404 : URL에서 자원을 찾을 수 없음 406 : 전송 방식(method)가 허락되지 않음 500 : 서버 처리시 문제 발생 502 : 게이트웨이나 프록시 상태 문제(과부하) 503 : 일시적 과부하 혹은 서비스 중단 504 : 서비스가 타임 아웃 되어 처리되지 못함.
Spring MVC 프로젝트 구조 설명 src/main/java/ : 자바 소스 경로 src/main/resources/ : 실행시 자동 참고되는 경로(주로 설정파일, log4j.xml 등등) src/test/java/ : 테스트 자바 코드 경로 src/test/resources/ : 테스트 관련 설정 파일 경로 src/webapp/WEB-INF/spring/appServlet/ : sevlet-context.xml 외 spring 설정 파일 src/webapp/WEB-INF/spring/ : root-context.xml 외 spring 설정 파일 src/webapp/WEB-INF/views/ : MVC 패턴 중 view 페이지(jsp) 들이 위치 한 경로 src/webapp/WEB-INF/ : tom..
여기서는 한국어와 영어만을 대상으로 합니다. properties 파일 작성 Spring MVC 프로젝트에서... src/main/resources 경로에 message_ko.properties 와 message_en.properties 파일을 생성합니다. 그러면 빌드와 배포를 했을 때 WEB-INF/classes 경로(classpath)에 프로퍼티 파일들이 생성됩니다. 이 프로퍼티 파일들은 유니코드로 저장되며, 이클립스를 전자정부프레임워크를 사용하거나 properties editor 플러그인을 사용하면 자동으로 유니코드를 한국어로 표기해줍니다. Help > Install New Software... > Add... Name : properties editor Location : http://propedi..
html 파일에 한글 설정 server.xml 한글 설정 GET방식에서는 질의 문자열들을 URI에 포함되기 때문에 URI인코딩 처리 작업을 해야 합니다. server.xml 파일에 URIEncoding="UTF-8" 프로퍼티를 설정합니다. web.xml 한글 설정 encodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 forceEncoding true encodingFilter /* POST 전송 방식은 요청 body에 담아 전달됩니다. CharacterEncodingFilter는 http상 주고받는 데이터의 헤더 값을 인코딩합니다. Servlet에서 request.setCharacterEncoding("ut..
JDK 설치 오라클 사이트에서 JDK를 다운받아서 설치합니다. 여기서는 JDK11을 기준으로 합니다. 설치한 후에는 환경 변수에서 JAVA_HOME 을 등록하고 JDK가 설치된 경로를 지정해줍니다. 환경변수의 PATH에는 %JAVA_HOME%bin 으로 저장합니다. 설정이 완료된 뒤에는 명령프롬프트(cmd)에서 javac 명령어를 입력해서 컴파일러가 정상 실행되는지 확인합니다. 이클립스(STS, 전자정부프레임워크) 설정 Lombok 라이브러리의 안정성 때문에 이클립스를 JRE환경이 아닌 JDK환경에서 구동되도록 설정을 변경합니다. eclipse.ini(혹은 sts.ini) 파일의 상단에 아래와 같은 내용을 추가합니다. (윈도우 경로 기준) -vm JDK설치경로\bin\javaw.exe 이클립스 한글 인코..
관점 지향(Aspect Oriented Programming) 로깅 보안/인증 트랜잭션 리소스 풀링 에러 검사 / 처리 정책 멀티 스레드 안전 관리 데이터 영속처리 위 항목들은 소프트웨어 개발 시 발생하는 공통적인 문제들입니다. 핵심 관심(core concern)은 업무 로직을 말합니다. 횡단 관심(cross-cutting concern)은 위에서 언급한 로깅이나 보안등 공통 시스템 로직을 말합니다. 이처럼 업무 기능과 시스템 기능간에 결합성을 제거하도록 분리하여 작성하는 방법을 관점 지향이라고 합니다. 관점 지향 용어 advice : 관점이 언제, 무엇을 하는지를 정의 joinpoint : 관점이 실행될 수 있는 위치들 pointcut : joinpoint 중에서 advice 하는 위치(어디서) asp..
Spring bean을 XML로 관리 할 수 있지만, bean객체가 많아지면 XML 설정도 많아져 불편해집니다. 그래서 나온 방법이 auto wiring(bean 연결) 과 annotation wiring(bean 연결) 입니다. annotation wiring 어노테이션 와이어링을 사용하기 위해서는 context를 관리하는 XML 설정 파일에 context 네임스페이스를 추가해야 합니다. 이렇게 패키지 이름을 component-scan 으로 지정해주면 Spring이 자동으로 bean을 스캔해서 발견해줍니다. @Autowired Spring의 기본 의존성 주입을 위한 어노테이션입니다. 필드, 생성자, setter 메서드에 사용할 수 있습니다. 타입 와이어링을 시도 한 후 실패하면 이름 와이어링으로 후보 ..
의존성 주입(Dependency Injection) 의존성 주입은 디자인 패턴으로 제어의 역전(Inversion of Control)을 구현하기 위한 방법중의 하나입니다. 객체를 직접 생성하는 것이 아닌 외부에서 생성하여 주입 받는 방법을 말합니다. 클래스들은 서로 연결되어 있어서 의존성(dependency)이 강합니다. 그래서 인터페이스를 통해 클래스 사이의 직접적인 의존성을 제거해서 서로 느슨하게 결합하도록 유도하는 것입니다. 그래서 요구사항이 변경되어 클래스를 수정하게 될 때 의존하고 있던 클래스에 영향을 끼치지 않으면서 클래스를 수정할 수 있게 해주는 것입니다. IoC 컨테이너는 시스템의 모든 인스턴스 객체를 관리하고 인스턴스 객체들 사이의 의존성이 있으면 주입하는 일을 담당합니다. 일반적인 자바..
페이징 처리시 게시물 10개를 기준으로 10페이지씩 표기하는 방법을 기준으로 개발하는 것이 보통입니다. endPage endPage = (int)(Math.ceil(cri.getPage() / (double)displayPageNum) * displayPageNum); cri.getPage()는 현재 페이지 번호를 의미합니다. displayPageNum은 화면 하단에 페이징 버튼의 갯수를 의미합니다. 현재 페이지가 3일 때 : Math.ceil(3/10)*10 = 10 즉, endPage는 10입니다. 현재 페이지가 20일 때 : Math.ceil(20/10)*10 = 20 즉, endPage는 20입니다. 현재 페이지가 21일 때 : Math.ceil(21/10)*10 = 30 즉, endPage는 3..