
- 상황 1) SVN으로 형상관리 synchronize 2) update 후 maven update 실시 3) spring boot 부팅 4) 오류메시지 출력: org.apache.catalina.LifecycleExceprion 및 java.net.BindException: Address already in use: bind - 발생 원인: 톰캣 서버의 포트가 열려있는 상태라 발생하는 에러 - 해결: 임의로 프로세스를 죽이는 방식을 선택 1) ctrl+r = command창 활성화 및 netstat명령어 사용 2) 명령어: netstat -a -n -o netstat -ano 3) 중복되는 포트 찾기: netstat -ano | find "해당포트" 4) 중복되는 포트 찾아서 킬: taskkill /f..
1. JBoss-AS - JavaEE6 표준을 지원하는 오픈 소스 애플리케이션 서버 - EJBOSS에서 유래 - AS: Application Server의 약자 - 사용자 스스로가 기술 지원 - 기능 검증을 위한 테스트 위주 2. JBoss-EAP - JBoss Enterprise Application Platform - 레드햇에서 제공 - 벤더 기술 지원 - 전문적인 소프트웨어 설명서 - 다양한 테스트들이 포함, 통합된 고품질 3. 결언 - 기능 개발 위주의 JBoss-AS는 보안 패치, 버그 패치 등은 지원하지 않음 - JBoss-AS는 유지 보수도 지원하지 않으며, 사용자 스스로가 코드를 수정하고 포팅하며 빌드업을 해야함 - JBoss-EAP은 사용자가 요청한 버그를 수정하고 보안 업데이트를 지원하..
0. 개요 - 소프트웨어의 일반적인 개발 순서: 요구사항 분석, 설계 → 개발 → 테스트 - 시큐어 코딩: 개발 단계에서 해킹과 같은 공격을 유발할 수 있는 취약점을 사전에 제거하고, 외부로부터의 공격에 안전하게 소프트웨어를 개발하는 방법 - 수정이 손쉽고, 비용 효율성이 낫기 때문에 개발 초기 단계에서 시큐어 코딩을 시행 - 행정안전부 제공 JAVA 시큐어 코딩 가이드 https://www.kisa.or.kr/public/laws/laws3_View.jsp?mode=view&p_No=259&b_No=259&d_No=55&ST=T&SV= ※ 소프트웨어 업체는 SQL injection, XSS(Cross Site Scripting) 등 47개의 보안 취약점을 제거해야 함 1. 시큐어코딩을 위한 보안 방법론..
0. trim() 예) var trimTest = " trim공백제거 "; trimTest.trim(); // 앞과 뒤의 공백만 제거 console.log(trimTest); 결과: "trim공백제거" ※ trim()은 다음과 같이 사용해도 됨 trimTest.trim(" trim공백제거 "); 1. 정규 표현식을 이용한 공백 제거 - 사용 이유: trim()은 중간에 있는 공백을 제거할 수 없음 1) 모든 공백 제거 예1) var replaceTest = " 33 7 773 "; // 문자열을 regText변수에 저장함 replaceTest .replace(/ /gi, ""); // 모든 공백을 제거 console.log(replaceTest ); 결과: "337773" 예2) var replaceTe..
0. 개요 - 형상관리를 하는 도중(source update or commit) 충돌현상이 발생했을 때 사용하는 방법 중 하나 1. 과정 1) 형상관리를 하기 원하는 소스 우클릭 2) Team > Synchronize with Repository 3) update or commit 4) conflict 발생 2. 설명 1) Override and Update: SVN 서버내 source를 우선시 - SVN 서버의 소스를 local source에 덮어버림 2) Override and commit: local source를 우선시 - local source로 SVN 서버의 source를 덮어버림
0. 개요 - agile: 형용사) 기민한, 재빠른, 민첩한 - 방법론 - 유연하게 일하는 방식 1. 폭포수 개발방식 1) 분석, 설계 3) 개발 4) 테스트 5) 배포 ※ 프로젝트가 항상 1) ~ 5) 의 과정대로 순탄히 흘러가지 않음 이유는 '고객의 요구사항 변경' 고객의 요구사항 변경은 극단적으로는 프로젝트를 망치기도 한다 2. 사색 1) 요구사항 변경과 같은 일은 비일비재 2) 잦은 요구사항 변경과 같은 변화에 적응하지 못하는 개발자가 어쩌면 무능력한 것일지도? ※ 2)의 의견은 테스트 주도 개발에서 자주 사용되는 JUnit을 고안한 켄트벡의 저서에 나와 있는 말을 발췌 3. 결론 1) 짧은 주기로 개발하여 고객이 사용할 수 있는 소프트웨어를 만들어가며 개발 2) 커뮤니케이션 비용을 최소화, 이슈..
0. 개요 - Nexacro client에서 보내는 요청을 처리하는 컨트롤러 메서드는 요청에 사용하는 데이터셋의 유형에 맞게 어노테이션을 선언한 파라미터를 정의하여 client에서 전송한 데이터를 사용할 수 있다 - client에서 전송하는 요청의 유형에 따라 처리하는 방법은 아래와 같이 구별할 수 있다. 1) 파라미터가 없는 경우 2) 하나의 값(Row)만 존재하는 데이터셋을 파라미터로 받는 경우 3) 여러 값(Row)를 가지는 데이터셋을 파라미터로 받는경우 4) 추가/수정/삭제 요청을 하나의 요청에서 받는 경우 1. 요청 처리 1) 파라미터가 없는 경우 예) ResearchPlanningController.java ... @RequestMapping("/ss1pl0002r.do") public Nex..
- 상황 1) ctrl 키를 이용하여 해당하는 구현체로 이동이 불가능해짐 2) 마우스로 포커스를 잡았을 때 해당하는 상세 정보 및 경로 등이 표시되지 않음 3) csv를 이용할 때, This compilation unit is not on the build path of a java project 메시지가 노출되며 해당하는 메서드에 접근이 불가능해짐 - 발생 원인 1) 프로젝트가 제대로 빌드되지 않았다 2) 프로젝트가 제대로 체크아웃이 되지 않았다 3) 해당 프로젝트에 사용되는 빌드 패스가 제대로 잡히지 않았다(JDK 미비 등) - 해결 1) SVN에서 새로 체크아웃을 받는다 2) workspace 파일 내에 있는 .project 파일을 확인한다 org.eclipse.jdt.core.javanature ..
0. 다양한 로그처리 방법 - commons logging - log4j - java util logging - logback 1. Simple Logging Facade for Java(SLF4J) - 배포 시점에 여러가지 logging 프로그램 중 하나를 적용할 수 있게 하는 Facade ※ Facade pattern: 어떠한 서브 시스템에 대한 간단한 인터페이스를 제공하기 위한 용도 client와 복잡한 서브 시스템을 분리해주는 역할 서브 시스템들을 통합해주는 역할은 하지만 서브 시스템을 캡슐화하지는 않음 1) pom.xml(maven framework)에 기술하여 사용 (사용하려는 버전에 맞게 의존성 주입) org.slf4j slf4j-api 1.7.7 ※ SLF4J만 추가하면 구현체가 없다 내용..
1. request.getContextPath(): 프로젝트 경로만 호출 예) http://localhost:8080/user/addFriendList.jsp → /user 2. request.getRequestURI(): 프로젝트 + 파일 경로 호출 예) http://localhost:8080/user/addFriendList.jsp → /user/addFriendList.jsp 3. request.getRequestURL(): 전체 경로 호출 예) http://localhost:8080/user/addFriendList.jsp → http://localhost:8080/user/addFriendList.jsp 4. request.ServletPath(): 파일명만 호출 예) http://localho..