개발
-
메모리와 스택과 힙개발/java 2021. 12. 14. 23:11
개발을 할때 변수는 어디에 저장되고 데이터튼 어디에 쌓이고 갑자기 인텔리제이 빌드는 힙 메모리가 부족하다고 안되고 .. 등 원인에 대해 알지 못하고 그냥 막 사용 하였습니다. 이에 대해 조금 알아보고자 합니다. 메모리란 단기 데이터 스토리지 정보에 빠르게 액세스 할 수 있도록 컴퓨터가 실시간으로 사용하는 정보입니다. 주로 애플리케이션 로딩, 인터넷 브라우징 , 등 일상적인 여러 작업을 수행하는데 사용합니다. 그래서 용량이 큰것이 더 나은 성능을 좌우합니다. 만약 제가 만든 프로그램이 실행이 되면 OS가 JVM에게 메모리를 할당해줍니다. 그리고 할당 받은 메모리는 사용 용도에 따라 영역을 나누어 관리가 됩니다. 이는 크게 코드영역 , 데이터 영역 , 스택 영역 , 힙영역 이렇게 4개로 분리가 됩니다. 코드..
-
Builder 패턴개발/java 2021. 12. 14. 03:39
객체에 여러 값을 주입하는 방법에는 여러방식이 있습니다. 1.생성자 주입 (Constroctor) 2.수정자 주입 (Setter) 1.생성자 주입을 사용할 경우 만약 객체 내 인자가 많아 여러 케이스가 필요 할 경우 해당 케이스별로 생성자를 만들어 줘야 합니다. 또한 인자의 순서가 중요하므로 순서를 바꿀 경우 적용 코드에서 인식을 하지 못합니다. 2.수정자 주입을 사용할 경우 생성 시점전에 빈 생성자를 호출 하고 인자를 주입하는 방식이므로 언제 어디서나 변경이 가능합니다 즉 불변 클래스가 아니게 됩니다. => 그러므로 빌더 패턴이 생겨나게 되었으며 이를 구현 하면 문제점들을 해결할 수 있습니다. 1번의 문제처럼 생성자를 인자 수에 따라 구현하지 않아도 됩니다. 인자의 순서에 영향을 받지 않습니다. 2번의..
-
일급 컬렉션개발/java 2021. 12. 12. 16:34
1)일급 컬렉션이 머지 .. 2)일급 컬렉션을 왜 쓸까 .. 일급컬렉션이란 컬렉션을 래핑하면서 그 외 다른 멤버 변수가 없는 상태로 만드는 것을 일급컬렉션이라 한다. 사용 이유는 책임 분산이다. 예를 들어보자 카페에 음료가 너무 잘 팔려 여러 메뉴 중 음료만 2개 이상 못팔게 제한을 한다고 하고 코딩을 한다고 가정을 하자 1.A카페에서 주문을 할때 음료 수량에 대한 제한을 둔다. 만약 ) 케이크 장사가 너무 잘돼서 인당 판매 수량을 3개로 제한을 한다면 동일하게 각 카페에서 수량 제한을 해야한다. 코드로 하자면 아래와 같다. 판매 상품이 추가 되고 수량제한관련 로직이 추가 될수록 클래스 내 validation이 늘어 날 것이고 그만큼 부담도 증가한다. 그러므로 이 책임을 음료 리스트 , 케이크 리스트 등..
-
enum개발/java 2021. 12. 12. 13:52
enum이란 멀까요, 그리고 왜 사용을 할까요 저는 코드 내에 특정 예외로직을 넣을 경우 하드코딩으로 IF문을 넣어 equals를 사용하여 왔습니다. 또한 개발을 할때 공통적인 코드의 경우 주로 DB 조회를 통해서 많이 사용하여 왔습니다. 그러다 보니 코드 자체가 지저분해지는 것은 물론이고 변경이 어렵고 관리가 어렵다는 것을 알게되었습니다. 주로 아래 두가지의 경우에 enum을 활용하면 코드를 읽기 쉽고 간결하게 작성할 수 있습니다. 1.특정 예외로직을 넣을 경우 하드코딩으로 IF문을 넣어 equals를 사용 어떤 예외가 추가 or 변경될경우 해당 소스를 찾아 추가 혹은 변경을 해줘야합니다. 추가 사항이 많아질수록 코드가 지저분해지며 이는 다른이들로 하여금 코드 해석을 어렵게 만듭니다. 2.공통적인 코드..