PROGRAMMING
-
extends와 implements의 차이 : 인터페이스가 인터페이스를 extends하는 이유PROGRAMMING/JAVA 2022. 12. 29. 20:00
하루입니다. ... 뭔가 이상하지 않나요? Wrapper와 AutoCloseable은 interface입니다. 그런데 왜!!!!!!!!!!!!!!!!!!! implements가 아니라 extends일까요!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 그 차이는 interface의 특성과 extends/implements의 차이에 있습니다. 1. interface 인터페이스는 선언만 하고 구현하지 않습니다. 구현은 구현클래스의 몫입니다. 2. implements 클래스가 인터페이스를 구현하는 경우, 인터페이스의 메소드를 반드시 override 해야합니다. override는 부모클래스(여기서는 인터페이스)의 메소드(함수)를 자식클래스(여기서는 구현클래스)가 재정의(구현)하는것을 말합니다. 3. exte..
-
[ JAVA ] 내가 생각하는 직렬화. 왜 직렬화를 사용하는 걸까?PROGRAMMING/JAVA 2022. 12. 22. 02:10
하루입니다. 자바의 입출력을 다루다가 '직렬화' 를 배웠다. 정확히는 객체를 출력하기 위해서는 ObjectOutputStream을 사용하고, 이를 위해서는 객체를 직렬화해야 한다고 한다. 직렬화가 뭔데? 정말 간단히 말하자면 객체를 바이트로 변환하는 것이다. 왜? 자바에서 객체 내부 내용을 파일에 저장하거나 네트워크를 통해 전송하기 위해서는 일일히 바이트로 분해하는 작업이 필요하기 때문이다. (직렬화객체 Stream들이 그 역할을 대신 해 주는 거고) 왜? 왜 객체 내부 내용을 바로 보내면 안 되는데? 이에 대한 답을 오키의 누군가가 적어주셨다. - 데이터의 메모리 구조는 크게 값과 오브젝트 두 가지로 나뉜다. - 값은 integer 이런 거. Stack 영역에 직접 값을 가지고 있다. - object(..
-
내가 생각하는 추상클래스와 인터페이스의 차이PROGRAMMING/JAVA 2022. 12. 12. 03:22
1. 객체지향 프로그래밍 객체란 존재하는 모든 것. 핸드폰이라고 한다면 액정, 스피커, 케이스, 색상 등의 상태가 있고, 켠다(); 끈다(); 캡쳐한다(); 등의 행동을 가진다. 객체지향 프로그래밍이란 이 객체들의 관계를 통해 프로그래밍(설계) 하는 것이다. 여러 포스팅을 찾아보면서 실생활과 밀접한 프로그래밍이라고 느꼈다. 2. 추상화 2-1. 기능 추상화 사용자에게 내부 로직을 숨기는 것이다. 예를 들어, 핸드폰에서 어플을 사용한다면 우리는 어플이 어떻게 작동하는지에 대해 관심이 없다. 알람 기능을 누르면 알람이 생성되지만 어떤 로직으로 이루어지는지는 알 수 없다. 프로그래밍 역시 마찬가지이다. Map, List 등을 사용할 때 뒤의 로직이 어떻게 돌아가는지는 알지 않는다. 기능을 사용할 뿐이다. 이처..
-
Mapped Statements collection does not contain value for ~ 에러, There is no getter for property named 'no' in ~ 에러 해결법(꿀팁)PROGRAMMING/오류 모음집 2022. 8. 8. 10:27
갠적으론 어제 발생한 오류인 Invalid bound statement와 비슷하다고 느낌 둘 다 AccommodationMapper.xml에서 발생한 에러 Mapped Statements collection does not contain value for ~ - 아무리 봐도 철자 틀린 곳은 없는 거 같아서 경로 뜨는 걸 확인해봤다. - kr.co.airbnb.mapper.AccommodationMapper.getAccPhotosByAccNo 가 아니라 - kr.co.airbnb.mapper.getAccPhotosByAccNo 로 경로가 설정되어 있었다. - 고치니까 다음 에러가 떴다 ( ... ) - 암튼 이건 해결! 꿀팁! 경로가 뜬다는 건 ctrl을 누르고 마우스 커서를 올렸을 때 링크가 생기는 거임..
-
Invalid bound statement (not found): kr.co.airbnb.mapper.AccommodationMapper.updateAccommodation 해결법PROGRAMMING/오류 모음집 2022. 8. 8. 00:26
구글링 결과 Invalid bound statement (not found)가 발생하는 이유는 크게 두 가지였다. 1. 철자 틀림 2. 경로 잘못됨 내 경우는 2번이었다. AccommodationMapper.Mapper.java에는 void updateReviewCount(Accommodation accommodation);인 메소드가, AccommodationMapper.Mapper.xml에는 으로 정의되어 있었다. 이런 바보같은 실수를!