자바

Java Memory 자바 개발자라면 꼭 알고 넘어가야 하는 기본 아닌 기본 소양 📝 JVM 처음부터 다 설명하는 것은 제가 이야기하고자 하는 포인트가 아니라서, 간략하게 중요한 것만 짚고 넘어가려고 합니다 ㅎㅎ 전체적인 JVM 의 구조는 아래와 같습니다 정확히는 JVM 의 Heap 에 대해서만 짚고 넘어가보도록 할게요 저희는 예전부터 개발을 진행해왔고, 많이들 익숙하신 그림을 하나 소개할까해요 위 그림은 Jdk 1.7 버젼 이전의 Heap 메모리 구조입니다 Eden: 새로 생성한 대부분의 객체가 위치하는 곳 S0, S1: Eden 영역에서 GC가 한번 발생한 후 살아남은 객체들이 존재하는 곳 Old Memory: Young Generation에 대한 GC가 반복되는 과정속에 살아남은 객체가 살아남는 곳..
DI 안녕하세요 ㅎㅎ 오늘은 Spring의 3대 요소중 하나인 DI(Dependency Injection)에 대해서 알아보려고 해요.! 먼저 우리가 제일 어려워하는 단어인, 의존성 주입(DI)이 무엇일까요? 의존성 주입이란? -> 클래스의 연관관계를 주입해준다. 보통 의존성이라는 것은 클래스의 연관관계를 의미하는데, class Person { private Animal animal; public String getPetName() { return animal.name(); } } 이 경우 Person은 Animal에 의존한다 라고 보시면 될 것 같습니다 Person이라는 객체가 Animal을 참조하고 있고, animal을 바탕으로 로직이 흐르기 때문이죠 그럼 다시 돌아와서 의존성 주입은? 클래스가 가지고..
로그를 남기는 방법? 우리가 왜 Application에 log를 남기는 것이 중요한지 에 대해서는 지난시간에 살펴보았죠 ㅎㅎ 기억이 안나신다면 이전 포스팅을 참고해주세요 :) huisam.tistory.com/entry/springlogging Spring Boot 에서 log를 남기는 방법 - Spring log 남기기 Monitoring? 오늘은 Spring 에서 로그를 남기는 방법에 대해 알아보도록 하겠습니다~! Spring Application을 제작할 때, 시스템의 성능, 서비스도 중요하지만 서비스를 유지하기 위해서는 모니터링이 꼭 필 huisam.tistory.com 그래서 오늘은 무엇을 배워볼까 하면요.! 바로 Application Code 상으로 로그를 남기는 방법을 알았으니까, 실제로 만..
Proxy? 먼저 Proxy가 뭘까요.? Proxy는 일종의 대리자 입니다 디자인 패턴중에서 Proxy 패턴을 들어본적이 있으신가요? 우리가 특정한 Interface를 노출시키지 않고, 외부로부터 감추고 싶을 때 사용하는 것이 바로 Proxy 패턴입니다. 자세한 내용은 이전에 정리해 놓았으니 이 링크 참고해주세요 ㅎㅎ 그렇다면 Spring에서 지원하는 Proxy와 디자인 패턴에서의 Proxy 패턴은 유사할까요.? 정답은.. 아닙니다 일반적으로 Proxy는 실제 Target의 기능을 대신 수행하면서, 기능을 확장하거나 추가하는 실제 객체를 의미하고, Proxy 패턴은 Target에 대한 기능을 확장하지는 않고, Client가 Target에 접근하는 방식을 변경해줍니다. 오히려 Proxy는 Template ..
Valid? 우리가 흔히 Server와 Client가 통신을 진행할 때 HTTP/S 방식으로 서로 데이터를 주고 받는 경우가 정말 많아요! ㅎㅎ 하지만 때로는 Client가 옳지 않은 정보를 전달할 수도 있고, Server에게 위험을 가하는 정보를 전달할 수도 있다는 것을 항상 염두해두어야 해요! 그래서 요번 시간에는 우리가 만든 Spring Boot Application Server에서 어떻게 Client Request Body를 검증할 수 있는지 알아보는 시간을 가지도록 해볼게요! 직접 구현하기~! 우선은 Request, Response에 대한 객체를 정의해볼까요? package com.huisam.springstudy.validation; import lombok.*; import javax.val..
Java8 Java에서는 java8 이전과 이후는 정말 많은 차이가 있을 정도로 바뀐점이 많은 업데이트였다 이러한 기법이 나오게 된 근본적인 배경은 사이드 Effect가 없는 병렬 처리에 대한 요구가 증가했기 때문이에요! 일반적으로 Collection 데이터를 바탕으로 데이터 연산이 진행되는데, 멀티 쓰레드 환경에서 데이터를 조작하게 된다면 java에서 비싼 연산 중 하나인 synchronized 를 사용할 수 밖에 없죠 ㅠㅠ 그래서 개발자들은 고민하게 됩니다 우리는 synchronized를 사용하지 않고, 병렬처리가 가능한 데이터 stream을 만들 수 없을까? 이러한 고민에 대한 해결책이 바로 Stream 이에요 Functional Programming을 기반으로 해서, 상태를 저장하지 않고 일련의 ..
huisam
'자바' 태그의 글 목록