[java] Reflection 포스팅 썸네일 이미지

Java

[java] Reflection

처음 알게 된 Java Reflection 개념을 맛보고 간단하게 테스트 해보며 이런게 있구나 라는 것을 알아가는 목적으로 공부하고 기록해보았다. Reflection 이란 리플렉션이란 객체를 통해 클래스의 정보를 분석하는 프로그램 기법을 말한다. 구체적인 클래스 타입을 알지 못해도 그 클래스의 메소드, 타입, 변수들에 접근할 수 있도록 해주는 자바 API 이다. Class, Constructor, Method, Field 정보를 가져와 객체를 생성하거나 메소드를 호출하거나 멤버 값을 변경할 수 있다. 컴파일 시점이 아니라 런타임 시점에 동적으로 특정 클래스의 정보를 추출해줄 수 있다. 언제 쓰나 동적으로 클래스를 사용할 때 컴파일 시점에는 어떤 클래스를 사용할지 모르나 런타임 시점에 특정 클래스를 가져와..

2022.02.14 게시됨

[Java] ConcurrentModificationException 해결하기 포스팅 썸네일 이미지

Java

[Java] ConcurrentModificationException 해결하기

ConcurrentModificationException이 왜 발생하나 간단하게 알아보고 해결해보자 언제 발생할까? - MultiThread 또는 객체의 변경이 허용되지 않는 환경에서 '변화' 가 일어날 때 발생 - 한 쪽에서 Collection을 Iterating 할 때 다른 스레드에서 해당 Collection 변경을 할 경우 발생 - MultiThread 환경 뿐 아니라 fail-fast iterating 도중 변경이 일어나면 발생함 Fail-Fast Iteration Fail Fast 라는 말 그대로 오류가 발생하면 즉시 던지고 작업을 중단하여 알려주는 방식이다. Iterator 의 remove 메소드 이외의 코드로 Collection 수정 시 예외가 발생한다. 예외발생 예시 컬렉션중 ArrayLi..

2022.02.04 게시됨

[프로그래머스] 소수찾기 (Java) 포스팅 썸네일 이미지

알고리즘 & 자료구조/프로그래머스

[프로그래머스] 소수찾기 (Java)

프로그래머스 level2 - 소수 찾기 풀이 코딩테스트 연습 - 소수 찾기 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 programmers.co.kr 문제 간단 요약 - 문자열로 0~9의 숫자들이 주어진다. - 해당 숫자 하나 하나로 만들 수 있는 모든 조합의 숫자들 중 소수의 개수를 구하라 나의 풀이 1. 숫자를 조합해 만든 여러 수들 중 같은 수가 있다면 한번만 카운트해야함. => Set 사용 2. 숫자 조합을 만들 때 자기 자신이 들어가면 안된다. 예를 들어 입력이 "171" 이면 숫자 하나에 다른걸 붙여 두자리 수를 만들면 11 17 71 두 ..

2022.02.03 게시됨

[백준] 10816 - 숫자 카드 2 (java) 포스팅 썸네일 이미지

알고리즘 & 자료구조/백준

[백준] 10816 - 숫자 카드 2 (java)

백준 10816번 숫자 카드 2 자바 풀이 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 문제 간단 요약 숫자 중복이 가능한 숫자 카드들이 50만개 이하로 주어진다. 찾아야 할 숫자 목록도 50만개 이하로 주어진다. 주어진 숫자카드에 찾아야 할 숫자가 몇 개 있는지를 출력한다. 주의점 최악의 경우 숫자카드가 50만개 주어지고 찾아야 할 숫자 목록도 50만개가 주어질 수 있다. 기본적으로 숫자카드 50만개에 대해 반복을 돌면서 찾아야 할 숫자 하나하나에 대해 비교를 해야한다. ..

2022.01.24 게시됨

[Java] 올바른 Map Iteration 포스팅 썸네일 이미지

Java

[Java] 올바른 Map Iteration

Java 에서 Map 을 반복할 때 상황에 맞는 올바른 방법에 대해 알아보자 분명히 나만 몰랐을 것이다! 사소한 것이지만 정리하고 넘어가고자 한다. 개요 알고리즘 문제를 풀던 뭘 하던 늘 하던대로 Map을 반복했었는데 코드분석 플러그인에서 경고를 보게 되었다. 경고를 받았던 코드의 예시 Map map = new HashMap(); map.put("Hello", 25); map.put("Hell", 18); for (String str : map.keySet()) { System.out.println(str + map.get(str)); } Key, Value 를 루프문에서 모두 필요로 할 때 EntrySet으로 반복하라는 경고 메시지를 받았다. Key,Value 모두 사용할 때의 Non-Compliant..

2022.01.23 게시됨

[Algorithm] 이분 탐색 포스팅 썸네일 이미지

알고리즘 & 자료구조/Algorithm

[Algorithm] 이분 탐색

이분탐색(Binary Search) 에 대해 공부해보자 탐색? 많은 데이터 속에서 원하는 데이터를 찾는 것 완전 탐색 가능한 모든 경우의 수를 탐색하는 것으로 반복문 또는 재귀함수 등을 사용해 구현하게 된다. 자원 소모가 크지만 반드시 원하는 데이터를 찾을 수 있다. 자원 소모가 크다고 하나 반드시 필요한 상황 또한 있다. 컴퓨터를 사고 싶은데 돈이 아까워서 친구 핸드폰으로 구매하는 상황이라고 해보자 핸드폰 결제 문자 메시지 인증이 4자리의 숫자라는 것을 아는 나는 친구에게 인증번호를 물어보지 않아도 1000 부터 9999까지 모두 대입해보다 보면 결국 인증번호를 맞출 수 있게 된다. 물론 시간제한도 있고 현실은 그 전에 한 3번 틀리면 내 세션에서의 인증이 아예 막혀버리겠지만 그런 시스템을 배제한다면 ..

2022.01.21 게시됨

[Database] Oracle cloud ATP DB - JDBC - Java 연결 포스팅 썸네일 이미지

Database

[Database] Oracle cloud ATP DB - JDBC - Java 연결

로컬 데이터베이스와 연결방법이 조금 달랐던 오라클 클라우드 데이터베이스.. 를 순수 자바 프로젝트에 수동으로 연결하다 삽질하고 해결한 과정을 기록해보자 환경 윈도우 10 자바 8 오라클 클라우드 자율운영 데이터베이스 19c 연동을 위해 필요한 것? 알맞는 데이터베이스의 JDBC 구현물(라이브러리) 자바에서 JDBC를 활용해 원하는 데이터베이스를 연동하고자 할 때 해당 데이터베이스의 JDBC 구현물(라이브러리)이 필요하다. 이 외부 라이브러리를 자바 프로젝트에 등록해줘야 JDBC를 사용할 수 있다. 지금은 오라클이니 ojdbc 가 필요하다! https://www.oracle.com/database/technologies/appdev/jdbc-ucp-19c-downloads.html 연결할 DB 정보 Str..

2022.01.14 게시됨

[프로그래머스] 기능개발(Java) 포스팅 썸네일 이미지

알고리즘 & 자료구조/프로그래머스

[프로그래머스] 기능개발(Java)

프로그래머스 Level 2 - 기능개발 자바 풀이 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 문제 요약 설명 배열로 현재 작업도와 각 작업들의 1일 당 처리가능한 작업량이 주어진다. 작업이 100% 가 되는 날 배포를 하는데 하루에 여러 작업을 배포할 수는 있지만 먼저 존재하는(배열의 앞에 위치하는) 작업이 배포가 불가능하면 뒤에 있는 작업도 배포가 불가능하다. 나의 풀이 일단 주어진 int[] progresses, int[] speeds 를 활용하여 현재 존재하는 모든 작업들이 며칠 뒤에 끝나는..

2022.01.13 게시됨