목록Programming Language/JAVA (23)
이야기박스
# 개요 지난번 포스팅처럼 Guava 라이브러리 이슈가 발생하여 기록을 남깁니다. 이번에는 Exclude로 충돌되는 패키지를 제외시키는 방법이 아닌, re-packaging 방식을 사용하는 포스팅을 구성하였습니다. Maven: NoSuchMethodError. Guava 라이브러리 충돌 # 개요 maven을 통한 개발을 진행하는 도중 아래와 같은 에러로그가 발생하였습니다. java.lang.NoSuchMethodError: com.google.common.io.ByteStreams.exhaust(Ljava/io/InputStream;)J 알아보니 위 패키지는 gu.. box0830.tistory.com # 에러 로그 Exception in thread "main" java.lang.NoSuchMethod..
# 개요 maven을 통한 개발을 진행하는 도중 아래와 같은 에러로그가 발생하였습니다. java.lang.NoSuchMethodError: com.google.common.io.ByteStreams.exhaust(Ljava/io/InputStream;)J 알아보니 위 패키지는 guava에 포함되는 패키지이고 라이브러리 충돌로 인해 자주 발생하는 이슈였습니다. Stackoverflow Reference java.lang.NoSuchMethodError: com.google.common.io.Closeables.closeQuietly(Ljava/io/Closeable;)V I am new to selenium.I am getting some issues while using Selenium WebDriver..
CI에서 Maven 동작 순서 정하기 위해 조사 중. # 참고 http://wiki.gurubee.net/display/SWDEV/Maven+Lifecycle
# Reference https://blog.packagecloud.io/eng/2017/03/09/how-does-a-maven-repository-work/ How does a maven repository work? TL;DR Similar to our APT Repository Internals and YUM Repository Internals posts, this post aims to illustrate the inner workings of a Maven repository. Read on if you have ever been curious as to how mvn compile figures out which dependencies to download blog.packagecloud...
드디어! 하노이의 탑을 완성하였습니다! (짝짝짝) 미리 설계를 하고 짠게 아니고 마구잡이로 생각나는대로 하다보니까 오히려 시간이 더 걸린거 같네요.. 하하 설계의 중요성을 다시 한번 깨닫게 됩니다. 간단한 설명을 하겠습니다. 모두가 아시는 하노이의 탑의 UI버젼입니다. 블록의 이동을 버튼을 통해 하나씩 확인할 수 있도록 했습니다. 기본적인 동작만 코딩했으므로 예외처리나 리셋 등 기타 옵션들은 없습니다. 위와 같이 6개의 클래스를 사용하였습니다. 1. Main 프로그램을 실행하기 위한 클래스. JFrame을 사용 2. Display 기본 UI를 위한 클래스 버튼의 이벤트들을 담당한다 3. Logic 하노이 탑의 로직을 담당 4. HanoiData 하노이 탑에서 각 블록의 정보를 담는..
자바 수업시간에 했던 하이로우 게임을 소개합니다 간단한 코드다 보니 쉽게 하실 수 있을거라 생각합니다! # 코드 https://github.com/Oringnam/High-Low-Game.git # 작동 원리 Generate 버튼 누르면 임의의 정답 숫자가 생성. 플레이어가 숫자 입력 오답이면 힌트 정답이면 게임 종료 -> 시스템 다이어로그 상자 나옴 # 게임 화면 - 기본 화면 Generates 버튼이 활성화 되어있다. INPUT 버튼의 비활성화 - 게임 시작 Generates 버튼이 비활성화 된다. 왼쪽 화면에 물음표가 생성 --> 정답의 생성 INPUT 버튼의 활성화 - 게임 진행 텍스트 필드에 숫자를 입력 후 로 답을 입력할 수 있다. 왼쪽 화면에 작다 크다..
Item 85. 자바 직렬화의 대안을 찾으라보안에 매우 취약함자바 직렬화란?- 자바 직렬화란 자바 시스템 내부에서 사용되는 객체 또는 데이터를 외부의 자바 시스템에서도 사용할 수 있도록 바이트(byte) 형태로 데이터 변환하는 기술과 바이트로 변환된 데이터를 다시 객체로 변환하는 기술(역직렬화)을 아울러서 이야기합니다.- 시스템적으로 이야기하자면 JVM(Java Virtual Machine 이하 JVM)의 메모리에 상주(힙 또는 스택)되어 있는 객체 데이터를 바이트 형태로 변환하는 기술과 직렬화된 바이트 형태의 데이터를 객체로 변환해서 JVM으로 상주시키는 형태를 같이 이야기합니다. - 참고 - 역직렬화를 하는순간 컴퓨터는 폭팔할 예정static byte[] bomb() { Se..
Item 78. 공유 중인 가변 데이터는 동기화해 사용하라동기화- 프로그램 일관성 제공- 스레드간 통신 역할==> "동기화는 배타적 실행뿐 아니라 스레드 사이의 안정적인 통신에 꼭 필요하다" Thread.stop ==> 사용 금지--> 다른 스레드를 멈출때는 boolean 값을 이용 하자 boolean 사용할 때는 그냥하면 최적화되버려서 동작 안할 수도 있음- synchronized를 걸기- volatile 사용할 것( * volatile 주의할 점 --> 책에 있는 내용 참조할 것 '++' 연산 조심 ; safety failure)- Atomic*** 사용할 것 (이게 젤 좋은것 같음) 가장 좋은 방법은 가변 데이터는 공유하지 말자불변 데이터만 공유하던가 Item 79. 과도한 동기화는 피하라과도한 동..