일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 스프링부트
- Security
- gdg
- java
- 클린코드
- 페이스북
- 페이징
- Spring
- OAuth
- 권한
- JWT
- tomcat
- JPA
- assertj
- jvm
- Producer
- 리팩토링
- g1
- 비동기
- load balancing
- RabbitMQ
- clean code
- Refactoring
- GC
- apache
- 스프링
- spring boot
- 시큐리티
- 스프링 부트
- oauth2
- Today
- Total
목록java (11)
허원철의 개발 블로그
저번 포스팅에 이어 GC에 대해 비교해보려고 합니다. CPU 같이 나왔으면 좋았겠지만 갑자기 안나오더군요ㅠㅠ [ Environment ] OS : Window 7Heap Size : 4GBMonitoring Tool : VisualVM 1.3Testing Tool : Jmeter 3.0 약 8분 가량 30 thread를 테스트한 결과 입니다. 1java -XX:+UseSerialGC ...cs 1java -XX:+UseParallelGC ...cs 1java -XX:+UseParallelOldGC ...cs 1java -XX:+UseConcMarkSweepGC ...cs 1java -XX:+UseG1GC ...cs 참고 - https://getpocket.com/a/read/1157009770
이번 글은 JAVA에서 Garbage Collection(이하 GC)에 대한 글 입니다. GC란? - 메모리 관리 기법 중에 하나로, 프로그램이 동적으로 할당했던 메모리 영역 중에서 필요없게 된 영역을 해제하는 기능입니다. JVM에서는 Heap영역의 메모리를 자동으로 관리해줍니다. GC의 중요성? - 하드웨어와 언어가 발전하면서 효율적인 GC 알고리즘이 만들어지고 있으니.. 알아갈 필요성이 있다?- 자동적으로 관리를 해주지만, 'stop-the-world' (GC를 실행하는 쓰레드를 제외한 모든 쓰레드가 일시적으로 멈추고, GC작업이 완료된 후에야 중단되었던 작업이 다시 시작하는 것)이 발생하여, 이를 최소화(튜닝) 하기 위해선 GC에 대해 명확히 알아야 합니다. GC의 기본 개념 - GC를 알기에 앞서..
이번 편은 JAVA 8에서 새롭게 등장한 Optional에 대한 간단한 예제 글 입니다. 왜 Optional을 사용해야 하는가...? - 흔히 개발을 하다보면 null 처리에 대해 정말 난감한 부분이 많습니다. 예를 들면, 12345String name = "wonchul"; if(name != null && !"".equals(name)) { // ...}Colored by Color Scriptercs 위와 같이 조건처리가 꼭 들어가고, default value 가 필요하면 또 적당한 코드 작업이 필요합니다. 물론 유틸 클래스를 만들어서 처리 할 수 있습니다. (Spring에선 StringUtils 클래스를 제공하여 유용하게 쓸 수 있습니다.) Optional에서는 이런 부분을 람다식 표현을 더해 조..
이번 글은 java 1.8에서 추가된 시간관련 패키지인 time 패키지에 대한 글 입니다. 기존 Date는 Deprecated 되어 권장하지 않습니다. 그 이후로 Calander를 이용하여 많이 작업을 합니다. 하지만 이 또한 자체 메소드로 지원이 적습니다. (Month가 0부터 시작하는.. 불편한 사항도 있었습니다.) 그래서 1.8부터는 time패키지에서 제공하는 LocalTime, LocalDate, LocalDateTime, ZoneDateTime을 이용하여 조금 더 편리하고 확장성 있게 코드를 작성 할 수 있습니다. 사용하면서 좋았던 점은 메소드명으로 쉽게 유추할 수 있는 메소드명들 이였습니다. 현재 시간 123LocalTime localTime = LocalTime.now(); // ex) 20..
이번 글은 TDD 를 공부하기 위한 기초를 개념에 대한 글 입니다. TDD 란?테스트 주도 개발(Test-Driven-Development) 개발을 하다보면, 전체적인 프로세스의 점검하기 전에 해당 메소드를 점검하기 위한 작업이 필요할 때 가 있습니다. 이를 '단위 테스트' 라고 할 수 있습니다. java 에서는 JUnit 이라는 단위테스트 Framework를 제공합니다. ① Gradle 설정compile 'junit:junit:4.12' What ! - 우선 JUnit을 사용하기에 앞서, 기본적으로 제공하는 Annotations 확인해 보겠습니다. @Test- 테스트를 수행할 메소드( public void *( ) ) @Before@After- 각 테스트 메소드 별로 전/후에 호출 @BeforeClas..