김영한의 실전 자바 - 기본편 강의 내용을 정리한 글이다.1. 좋은 객체 지향 프로그래밍이란?객체 지향 프로그래밍(OOP)의 핵심 특징은 네 가지다. 추상화 캡슐화 상속 다형성 이 중 가장 중요한 것이 다형성(Polymorphism)이다. 객체 지향 프로그래밍은 명령어의 목록으로 프로그램을 보는 절차적 시각에서 벗어나, 여러 독립된 단위인 "객체"들의 협력으로 세상을 파악한다. 각 객체는 메시지를 주고받으며 데이터를 처리한다.좋은 객체 지향 설계가 추구하는 것은 유연하고 변경이 용이한 소프트웨어다. 레고 블록을 조립하듯, 키보드나 마우스를 교체하듯, 컴포넌트를 쉽게 바꿀 수 있는 구조가 목표다. 이것이 대규모 소프트웨어 개발에서 OOP가 널리 쓰이는..
김영한의 실전 자바 - 기본편 강의 내용을 정리한 글이다.1. 다형성이 없을 때의 문제다형성의 장점을 이해하려면 다형성 없이 코드를 작성했을 때 어떤 문제가 생기는지를 먼저 봐야 한다. 가장 고전적인 예제인 동물 울음 소리를 통해 살펴보자.Dog, Cat, Caw(소) 세 클래스가 있고, 각자 sound() 메서드를 가진다. 이들 사이에는 아무런 상속 관계가 없다. sound() Dog sound() Cat sound() Caw 세 클래스는 서로 완전히 독립적이다. 이 상태에서 동물 소리 테스트 코드를 작성하면 다음과 같은 중복이 발생한다.System.out.println("동물 소리 테스트 시작");dog.sound();System.out.pr..
김영한의 실전 자바 - 기본편 강의 내용을 정리한 글이다.1. 다형성이란객체지향 프로그래밍의 대표적인 특징으로는 캡슐화, 상속, 다형성이 있다. 그 중에서 다형성은 객체지향 프로그래밍의 꽃이라 불린다.앞서 학습한 캡슐화나 상속은 직관적으로 이해하기 쉽다. 반면에 다형성은 제대로 이해하기도 어렵고, 잘 활용하기는 더 어렵다. 하지만 좋은 개발자가 되기 위해서는 다형성에 대한 이해가 필수다.다형성(Polymorphism)은 이름 그대로 "다양한 형태", "여러 형태"를 뜻한다. 프로그래밍에서 다형성은 한 객체가 여러 타입의 객체로 취급될 수 있는 능력을 뜻한다. 보통 하나의 객체는 하나의 타입으로 고정되어 있다. 그런데 다형성을 사용하면 하나의 객체가 다른 타입으로 사용될 수 있다는 뜻이다.다형성을 이해하기..
김영한의 실전 자바 - 기본편 강의 내용을 정리한 글이다.Java 기본 — 상속1. 상속이 필요한 이유전기차(ElectricCar)와 가솔린차(GasCar)를 각각 별도의 클래스로 만들면 어떤 문제가 생기는지 먼저 살펴본다.public class ElectricCar { public void move() { System.out.println("차를 이동합니다."); } public void charge() { System.out.println("충전합니다."); }}public class GasCar { public void move() { System.out.println("차를 이동합니다."); } public void fil..
1. 인증(Authentication)과 인가(Authorization) 로그인 기능을 구현하기 전에 가장 혼동하기 쉬운 두 개념을 먼저 정리한다. 인증 (Authentication) — 당신은 누구인가 인증은 사용자가 누구인지 확인하는 과정이다. 아이디와 비밀번호를 입력해 로그인하는 행위가 대표적인 예다. 서버는 이 과정을 통해 "이 요청을 보낸 사람이 실제로 등록된 사용자인가"를 판단한다. 인가 (Authorization) — 무엇을 할 수 있는가 인가는 인증된 사용자가 특정 리소스에 접근하거나 특정 동작을 수행할 권한이 있는지 확인하는 과정이다. 로그인한 사..
1. SOP와 CORS 개념웹 브라우저는 기본적으로 동일 출처 정책(Same-Origin Policy, SOP)이라는 보안 규칙을 따른다. SOP는 서로 다른 출처(Origin)로의 리소스 요청을 차단한다.출처(Origin)는 세 가지 요소로 구성된다. 요소 예시 프로토콜https://, http:// 호스트neordinary.co.kr, api.umc.com 포트:3000, :5500 이 세 가지 중 하나라도 다르면 다른 출처로 판단한다. 예를 들어 https://neordinary.co.kr에서 https://api.umc.com을 호출하면, 호스트가 다르기 때문에 브라우저는 요청을 차단한다.SOP만 있으면 프론트엔드와 백엔드가 서로 다른 ..