Home

[java] java11 특징(feat. java9, java10)

목차 GC의 변화 - G1 GC(Garbage First GC) 도커 컨테이너의 향상된 기능 다중 릴리즈 jar files 기타 버전별 업데이트(9, 10, 11) 이번 포스팅은 Java11의 특징. 즉, Java8 이후 Java11 까지의 대략적인 변화에 대해 정리해두었다. Java8의 특징을 알고 싶다면 이전 포스트에 정리해두었다. 1. GC의 변화 - G1 GC(Garbage First GC) 대표적인 변화는 기본 GC가 변경되었다는 점이다. 이전 Java8에서는 Parallel GC가 기본 콜렉터로 사용되다가 Java9부터는 G1 GC가 기본 GC로 채택되었다. 여기선 대...

Read more

[java] java8 특징 1. 함수형 인터페이스, stream api, lambda

목차 함수형 인터페이스 Stream API Lambda 참고 링크 그동안은 알고리즘이나 프로젝트를 진행할 때 Java8을 사용해 오다가 이번에 회사에서 Java11을 이용해 프로젝트를 진행하게 되었다. Java8과 Java11은 특히 변화와 특징이 많아 그동안 기술 면접에서도 종종 질문이 들어왔던 이슈인데, 이번 기회에 정리해보려고 한다. Java11의 특징은 다음 포스트에 정리해 두었다. 1. 함수형 인터페이스(Functional Interface) Java8의 핵심은 함수형 프로그래밍을 지원한다는 것이다. 함수형 인터페이스를 위해서는 함수형 프로그래밍에 대해 먼저 알아야 하는데...

Read more

[network] 프록시(proxy)란, forward proxy와 reverse proxy

목차 프록시(Proxy)란? 포워드 프록시(Forward Proxy) 리버스 프록시(Reverse Proxy) 면접은 시원하게 망했지만…. ​(​눈물나네 :cry:) 면접 준비를 하면서 정리했던 내용들을 차례차례 정리해서 올려보려고 한다. 다음 면접 때는 좀 더 나아진 내가 되지 않을까 하는 마음을 담아……. 1. 프록시(Proxy)란? 개발을 하지 않더라도 ‘프록시‘라는 단어는 종종 듣게 되는데 정확히 프록시가 무엇이고, 어떤 역할을 하는지 이번 기회에 정리를 해보려고 한다. 프록시란? 프록시의 사전적 의미는 ‘대신’, ‘대리’이다. 말 그대로 두 PC가 통신을 할 때 직...

Read more

[network] 동기vs비동기, 블로킹vs논블로킹의 차이

목차 동기(Sync)와 비동기(Async) 블로킹(Blocking)과 논블로킹(Non-Blocking) 예제 - 동기+블로킹, 동기+논블로킹, 비동기+블로킹, 비동기+논블로킹 이번 시간엔 동기와 비동기, 블로킹과 논블로킹에 대해 알아보려고 한다. 이전에 동기와 비동기에 대해서 공부할 때 단순히 하나의 작업이 처리된 후에 다음 일이 처리되면 동기, 여러 작업이 동시에 처리되면 비동기라고 이해하고 있었는데, 동기와 비동기를 말 할 때 블로킹/논블로킹의 개념을 함께 이해해야 된다는 것을 알게 되었다. 그동안 내가 단순히 동기와 비동기 개념으로 이해하고 있었던 것은 엄밀히 따지자면 동기+블로킹...

Read more

[java] 2. generic class Class field 가져오기, 동적 메소드 실행

목차 Generic 이란? 클래스 생성하기 클래스 속성(Field) 가져오기 클래스 내 메소드 가져와서 실행시키기(동적 메소드 실행) 프로젝트 진행 시 여러 객체에 공통적으로 들어가는 항목에 대해서 반드시 초기화가 필요할 경우 setter 메소드를 이용하여 초기화 시키는 방법을 알아보려고 한다. 예를 들어 중요한 데이터는 삭제 요청에 대해서 실제로 데이터를 삭제하지 않고 delete 여부 컬럼을 따로 둬서 true/false로 설정하곤 하는데, 이 경우 매번 초기화를 시켜주기 번거롭고 각 객체마다 따로 함수를 설정하는건 비효율적이다. 이런 경우 Generic 을 이용하여 임의의 객체의...

Read more

[java] 1. generic이란, 사용 예제

목차 InnerObject - Thymeleaf 객체 안의 객체 매핑 Object List - 객체 안의 객체 리스트 매핑  프로젝트를 진행하다보면 단순한 형태의 Object만 사용하게 되는 일은 거의 없다. 필연적으로 Object 안의 Object, Object 안의 List, Object 안의 Object List를 사용해야 하는데 구글링을 해도 한글로 정리된 자료가 많이 나오지 않아 사수님과 해결법을 찾기 위해 고군분투 했다. 나처럼 타임리프를 사용하는 누군가에게 도움이 되기를 바라며 예제를 통해 사용법들을 정리해보았다. 1. InnerObject - Thymeleaf 객체 안의...

Read more

[thymeleaf] 5. (update) 객체 안의 객체, 객체 안의 리스트 매핑하기

목차 InnerObject - Thymeleaf 객체 안의 객체 매핑 Object List - 객체 안의 객체 리스트 매핑  프로젝트를 진행하다보면 단순한 형태의 Object만 사용하게 되는 일은 거의 없다. 필연적으로 Object 안의 Object, Object 안의 List, Object 안의 Object List를 사용해야 하는데 구글링을 해도 한글로 정리된 자료가 많이 나오지 않아 사수님과 해결법을 찾기 위해 고군분투 했다. 나처럼 타임리프를 사용하는 누군가에게 도움이 되기를 바라며 예제를 통해 사용법들을 정리해보았다. 1. InnerObject - Thymeleaf 객체 안의...

Read more

[thymeleaf] 4. (select) 객체 안의 객체, 객체 안의 리스트 매핑하기

목차 디렉토리 구조, 결과 화면 Album, Artist, Song 객체 생성 Inner Object, Object List 매핑하기 전체 코드 [앨범 리스트 조회 프로젝트] 프로젝트를 진행하다보면 단순한 형태의 Object만 사용하게 되는 일은 거의 없다. 필연적으로 Object 안의 Object, Object 안의 List, Object 안의 Object List를 사용해야 하는데 구글링을 해도 한글로 정리된 자료가 많이 나오지 않아 사수님과 해결법을 찾기 위해 고군분투 했다. 나처럼 타임리프를 사용하는 누군가에게 도움이 되기를 바라며 예제를 통해 사용법들을 정리해보았다. 이번...

Read more