프로그래밍 노트

svn 사용시 해당 패키지 및 파일을 삭제하고 commit을 하려다보니 아래와 같은 오류가 났다. 구글링을 해보니, 파일이나 폴더를 삭제하거나 이름을 변경할 때 자주 발생하는 에러라고 한다. 클라이언트가 가지고 있는 svn 파일의 정보가 너무 오래되어서 그렇다고하여, 헤더정보를 업데이트 후 커밋을 하면 된다는 정보를 얻었다. 해당 프로젝트를 Update to Head 한 후, commit을 하니 오류 없이 commit이 됬다.
RSA 개인키 PEM문자열을 PrivateKey 객체로 변환할 때 exception이 났다. java.security.spec.InvalidKeySpecException: java.security.InvalidKeyException: IOException : algid parse error, not a sequence //PKCS#8 privateKey PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(encoded); KeyFactory kf = KeyFactory.getInstance("RSA"); PrivateKey prkey = kf.generatePrivate(keySpec);​ (위 코드를 사용 했는데, exception을 내뱉음) 원인은 pem문..
POM 구조 이해메이븐은 프로젝트 객체 모델(Project Object Model)이라는 개념을 바탕으로 프로젝트 의존성 관리, 라이브러리 관리, 프로젝트 생명 주기 관리 기능 등을 제공하는 프로젝트 관리 도구이다.다른 빌드 도구와는 다르게 선언적 접근 방법(Declarative Approach)를 사용한다. 빌드 프로세스를 이벤트 단위로 기술하는 것이 아니라, 프로젝트를 설명하고 프로젝트 구조에 대해서 정의하고 이와 관련된 연관 정보들을 기술하는 형태를 가지고 있다. pom.xml 에 들어가는 정보내용기본정보 프로젝트 정의(컨텍스트와 아티팩트를 정의) : 필수연관 정보(라이브러리 연관 관계 및 상위 프로젝트 등 관련 정보에 대한 기술) : 필수 프로젝트 정보 선택 빌드 설정 빌드 정의(기본 설정되어 있..
빌드 및 패키징 앞에서 만든 메이븐 프로젝트를 빌드하고 패키징하는 일이 남았다. 모든 동작은 POM파일에 작성되어 있다. 많은 빌드 소프트웨어의 스크립트는 클래스 패스를 설정하고 정보를 설정하고 컴파일 방법과 패키징 방법을 기술하도록 되어 있는데(예 : ANT빌드) pom.xml파일에는 그런 내용이 없다.(늘상 반복적으로 정의하는 빌드 프로세스가 내장되어 있고 그래서 각 명령에 대한 상세 정의 역시 존재하지 않는다.) pom.xml이 저장되어 있는 위치에서 mvn compile 실행(컴파일) 작업이 완료되면 target 디렉터리가 생긴 것을 볼 수 있다. target에는 src디렉터리를 기반으로 컴파일한 결과물과 자원들이 저장된다. test 코드 실행 mvn test 실행(JUnit 테스트 코드 실행) ..
RSA를 이용한 데이터 암복호화 키발급부터 개인키로 암호화(전자서명) 한 후 공개키로 복호화는 과정입니다. public static void main(String[] args){ /* server code */ /* Key 발급 */ PublicKey publicKey = null; // 공개키 PrivateKey privateKey = null; // 개인키 SecureRandom secureRandom = new SecureRandom(); // random number generator(RNG) try { KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA"); // RSA(1024, 2048), DiffieHellman(10..
메이븐 설치메이븐은 해당 url에서 쉽게 다운로드 가능 (http://maven.apache.org/download.cgi)메이븐을 설치한 후에는 자바를 설치한 것처럼 환경변수를 잡아 주어야한다.(보통 JAVA_HOME 처럼, 메이븐에서는 M2_HOME으로 설정해주는 것 같음)M2_HOME=E:\apache-maven-3.5.3PATH=%M2_HOME%/bin 메이븐은 명령형 기반의 도구이기 때문에 압축을 해제하고 운영체제의 환경변수에 설정값을 반영하면 모든 것이 끝이 난다. 메이븐의 이해메이븐은 자바기반의 빌드 도구 이며, 플러그인을 설치하면 리포팅과 문서화, 각종 테스트와 검사를 수행할 수 있는 확장 가능한 구조를 가지고 있다.(pom.xml 파일 하나만 변경하면 메이븐 설정을 변경할 수 있음)메이븐..
#10String이 주어지면, 중복된 char가 없는 가장 긴 서브스트링 (substring)의 길이를 찾으시오. // Input : "aabccbc"// output : 3("abc") 문자 list를 만든 후, for문을 돌며 문자를 추가한다. 같은 문자가 포함되어 있을시 list length를 구하여 maxLength보다 크면 maxLength교체 크지 않으면 현 maxLength를 유지한다. 1234567891011121314public static int solution(String str) { int maxLength = 0; List list = new ArrayList(); for(int i=0; i list.size() ? maxLength : list.size(); list.clear(..
팩토리얼(Factorial) 구하기재귀적 방법을 사용하지 않는 팩토리얼 구현을 작성하라. Factorial(n) = 1 * Factorial(n-1);재귀 팩토리얼12345public long recursiveFactorial(int n) { if(n
면접 단골문제인 피보나치(fibonacci) 구현 1에서 n까지의 피보나치 수열을 반환하는 메서드를 작성하라. 123456789101112131415161718192021222324252627282930313233public static List fibonacci(int n){ if(n
FizzBuzz문제 구현하기 1에서 n까지의 숫자를 출력하되 3의 배수는 Fizz라는 문자열을 출력하고, 5의 배수는 Buzz라는 문자열을 출력하고 15의 배수는 FizzBuzz라는 문자열을 출력하는 알고리즘을 작성하라. 12345678910111213141516public static List fizzBuzz(final int n){ List result = new ArrayList(n); for(int i=0; i
깡냉쓰
'프로그래밍 노트' 카테고리의 글 목록 (42 Page)