스터디/자바 ㅤㅤㅤㅤㅤ By gobukgol Java concurrent 패키지의 동기화 장치 들어가며... 스터디를 진행하면서 스터디원 중 한명이 멀티 스레드 작업을 하면서 테스트 코드 작성에 어려움을 겪었다고 했다. 그 때 CountDownLatch의 도움을 받아 테스트 코드를 작성하였다고 했다. 당시에는 간단하게 사용방법을 듣기만 했었는데, 이펙티브 자바 리뷰를 하면서 스레드 관련 질문이 들어올때 사용할 상황이 생겼었고 한번 정리가 필요하다고 느꼈었다. 그리고 드디어 실천하게 되었다. CountDownLatch와 동기화 장치들 이펙티브 자바의 아이템[81]에서 CountDownLatch를 동기화 장치 클래스라고 얘기하고 있다. 동기화 장치는 무엇일까? 동기화 장치란 스레드가 다른 스레드를 기다릴 수 있게 하여, 서로 작업을 조율할 수 있게 해주는 것이다. 지금부터 java.util.concu.. 스터디/자바 2020. 3. 15. ㅤㅤㅤㅤㅤ By ds_chanin 부딪히며 적용하는 자코코(jacoco) 좌충우돌 Jacoco 적용기 백기선님의 더 자바 강의를 보던 중 바이트 코드를 다루는 방법의 예시로 jacoco가 언급되었고 테스트 커버리지를 측정하여 build를 성공, 실패 시킬수 있다는 점을 알게되었습니다. 이를 이용하여 ''스터디에서 진행하는 장기 프로젝트와 토이 프로젝트에 적용하면 재미있겠다!' 라는 생각에 적용하며 겪은 내용을 정리해 보고자 합니다! Jacoco 적용하기 단순히 적용하는 것은 어렵지 않았습니다! jacoco 유저 가이드와 우아한 형제들의 jacoco 포스팅을 보면서 쉽게 적용할 수 있었습니다. jacoco plugin 추가 먼저 plugins 블록에 id 'jacoco' 를 추가해 주면 plugins { id 'jacoco' } jacocoTestReport 와 jacocoTe.. 스터디/자바 2020. 3. 7. ㅤㅤㅤㅤㅤ By 쟈 미 크롤링 테스트를 위한 mock server test 구축 Java의 Jsoup을 이용해서 페이지를 크롤링을 하는 코드는 찾아보면 많지만, 크롤링을 테스트하는 코드는 찾기 어려웠다. 따라서 크롤링 테스트를 짜기 위해 직접 nginx 서버를 띄어서 그 서버를 크롤링 하기도 하는 등 JavaBom 스터디원과 구현해본 크롤링 테스트에 대한 포스팅을 하게되었다. 참고로 nginx 서버를 띄어서 크롤링 하는것은 실제 서버라서 크롤링 테스트의 의미가 없는 것 같다. 실제 서버가 죽으면 크롤링 테스트도 못하므로 결국은 @Ignore를 걸어야하는 테스트이기 때문이다. 내가 생각하기에 크롤링 테스트에서 쟁점은 2가지 이다. 1. Parsing 테스트 [ 목적 ] 페이지의 html 파일에서 크롤링을 통해 원하는 정보만을 가져왔는지 체크한다. [ 구현 방식 ] 크롤링을 원하는 페이.. 스터디/자바 2020. 1. 31. ㅤㅤㅤㅤㅤ By gobukgol 자바 Garbage Collection Java Garbage Collection 이펙티브 자바의 [아이템7]을 읽고 스터디원들과 얘기하면서 가비지 콜렉터의 메모리 해제 대상이 무엇인지 궁금하게 되었다. 그래서 자바의 가비지 콜렉션에 대해 알아보았다. Garbage Collection 가비지 콜렉션이란 JVM의 힙 영역에서 사용 중인 객체와 그렇지 않은 객체를 식별하고 사용하지 않는 객체를 삭제하는 프로세스를 말한다. 여기서 사용하지 않는 객체는 어떻게 판별할까? 여기서 자바의 GC는 'Reachability' 라는 개념을 사용한다. 어떤 객체에 유효한 참조가 존재하면 'Reachable' 로 그렇지 않다면 'Unreachable'로 구별하고 Unreachable한 객체를 GC의 대상으로 본다. 객체는 다른 여러 객체를 참조하고 그 객체들도 .. 스터디/자바 2020. 1. 31. 이전 1 2 다음