본문 바로가기

final

[트러블 슈팅] "List.add()해도 추가되지 않는 이슈" - 불변 객체 건드리기. 이번에 커머스시스템 과제를 진행하면서, 실제 DB를 쓰지 않아서 하나의 MockData를 만들고 데이터를 불러와서 사용하는 식으로사용했습니다. 해당 데이터는 모든 객체에서 공유해야 하기때문에 static으로 선언 해 주었는데, 여기서 문제가 발생했습니다. 문제상품들을 관리자가 추가 할 수 있는 기능을 만드는데,제가 처음 확인한 문제는 아래 와같은 불변 객체가 수정 된다고 나온는것을 확인하고.음..일단 테스트라도 해볼까? 하고 테스트를 해봤지만 역시나, 데이터가 추가 되지 않는것을 확인 하였습니다.파악기존 데이터 할당방식을 보면 List.of(...) 로 선언 한 것을 확인 할 수있습니다. private static final List PRODUCTS = List.of( new Prod.. 더보기
삭제한데이터를 undo 하는 기능 만들기 계산기 기능중 계산결과를 삭제하는 기능이 있습니다.이 삭제된 결과를 어딘가에 저장 해 두었다가 삭제 취소 시 삭제 했던 데이터를 다시 가져오는 기능을 추가해 보고자합니다. private final ArrayList deletedList = new ArrayList();일단 삭제된 데이터들을 저장하는 변수를 하나 만들어줍니다.해당 변수는 외부에서 접근을 못하게 막아야 하고, 다시 set할수 없게 하기위해서 private final키워드를 이용해줬습니다. 따로 새로 add메서드는 만들어주지 않을 것입니다.왜냐하면 기존에 만들어둔 삭제하는 메서드에 제거된 요소를 deletedList에 추가만 해주면 되기때문입니다. 여기서 저 removeFirst 메서드에서 반환해 주는 값을 확인 하기 위해public.. 더보기
객체지향 이해하기 -1 (배경 지식) 클래스와 객체클래스란 무엇일까, 제가 이걸 처음 감을잡은건 "이건 절대 존재하는 어떤 것이 아니다" 라고생각을 했습니다.정말 다양한 설명들이 있고 강의가 있지만 제가 스스로 이해(받아드린) 말은 저것이었습니다. 물론 틀릴 수 도 있고 명확한 설명이 아닐 수 있지만,제 나름의 근거를 설명 드리자면.우선 객체는 무엇일까요?학습한 강의를 보면"실제로 존재하는 어떤 것" 이라고 설명이 되어있습니다. 그럼 저는 한가지 질문을 더 던져보고싶습니다."실제로 어디에 존재하나요?" 저는 이게 컴퓨터 세계안에 존재한다고 이해했습니다. 코드로 예시를 살펴볼까요. 하나의 클래스를 만들었습니다.pubilc class Person {...}하나의 객체도 만들어 볼까요.new Person(); 자 우린 여기서 잘 생각해 봐야한다고.. 더보기