본문 바로가기

자바

객체지향프로그래밍 (OOP) - 다형성 다형성(Polymorphism) - "이름은 하나인데~ 별명은 여러 개~" 정의 내 동생 곱슬머리 개구쟁이 내 동생이라는 동요를 알고 있는가? 더보기 내동생 곱슬머리 개구장이 내동생 이름은 하나인데 별명은 서너개 엄마가 부를때는 꿀돼지 아빠가 부를때는 두꺼비 누나가 부를때는 왕자님 어떤게 진짜인지 몰라몰라 몰라 내동생 곱슬머리 개구장이 내동생 이름은 하나인데 별명은 서너개 잘먹고 건강하게 꿀돼지 착하고 복스럽게 두꺼비 용감하고 슬기롭게 왕자님 어떤게 진짜인지 몰라몰라몰라 가사를 보면, 동생이라는 존재는 하나인데 그를 부르는 이름, 즉 그가 정의되는 방식은 여러 개임을 볼 수 있다. 다형성은 이와 같이 이름은 하나인데~ 별명은 서너 개~로, 하나의 객체를 여러 개의 타입으로 선언할 수 있는 개념을 말한다... 더보기
객체지향프로그래밍 (OOP) - 추상화 추상화(Abstraction) - "우리 비슷한 점이 많네요~ 일로 오세요~" 정의 추상화가 무엇인지 딱딱하게 정의해보자면, 객체들의 공통 속성과 행위를 추출하는 것이다. 처음 프로그래밍을 접하는 사람은 무슨 소리인지 잘 모를수도 있을 것 같다. 다시 쉽게 말해보면, 공통점을 찾아 이름짓기이다. 왜? 귀가 길고, 초식 동물이면서, 귀엽고, 갈색 털이고, 콧구멍이 큰 동물과 귀가 길고, 초식 동물이면서, 귀엽고, 흰색 털이고, 콧구멍이 작은 동물 등이 있다. 이 친구들을 항상 이렇게 길게 불러야 할까? 털과 콧구멍 말고도 차이점은 많겠지만, 같은 점이 더 많으니 하나의 이름으로 묶어주면 더 편할 것이다. 자, 이제 "귀가 길고 어쩌고 저쩌고"라 부를 필요 없이 토끼라고만 부르면 된다! 이렇게 되면 코드 상.. 더보기
[ERROR] unable to find valid certification path to requested target https://~~~.co.kr/~~ API 호출해서 체크하고 응답값에 따라 구분해주세요~ 외부 API 호출해서 처리할 이슈가 생겼다. 원래는 브라우저에서 처리하려고 했으나, 외부업체에서 "CORS 정책을 풀어줄 수 없다"하여 백엔드에서 호출하고 프론트에 던져주는 흐름으로 자바로 URLConnection을 만들어서 요청하는 도중, 생전 처음 보는 오류를 보았다. sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 인증서 .. 더보기
객체지향프로그래밍 (OOP) - 서문 Head First Design Patterns를 시작으로 진짜 객체지향(?)의 매력을 느낀 후 늦게나마 진짜 객체지향을 공부하기 시작했다. 이 좋은 것을 나만 알 수 없기에 부족한 실력이지만 다른 이들은 언어에만 시간낭비하지 않기 위해, 깨끗한 코드를 짜기 위해 객체지향을 정리해보려 한다. 왜 배워야 하나요? 계속 언어만 배워야 하나요.. 나는 중학생 때부터 프로그래밍을 했고 소프트웨어 프로그래밍 관련 특성화고를 졸업했다. 그러나, 학교 수업은 프로그래밍 언어 문법에 매우 의존하여 진행되었고 시험 또한 문법 문제밖에 없었다. 고등학교를 졸업하고 취업해야 하는데, 친구들은 언어와 프레임워크의 사용법만 알고 있었다. 이렇게 계속 언어만 배운다면 언어와 프레임워크에 종속되어 성장과 이직의 방해가 될 것이다... 더보기