객체지향 3

그래서 왜 객체를 지향해야 한다고? 한 장으로 끝내는 객체지향 총정리[객체지향의 사실과 오해 정리 및 서평]

Introduction 현재 우리 회사에서 사용하는 프로그래밍 언어는 자바이다. 입사하고 처음 자바를 공부하면서, 그 전까지는 말로만 듣던 객체지향 프로그래밍에 대해서 역시 접하기 시작했다. 5월 즈음부터였나. 라는 책으로 자바 공부를 시작했는데 변수와 타입, 연산자, 반복문 등 기초 문법을 떼고 나니 본격적으로 클래스, 상속, 다형성, 인터페이스 등 온갖 객체지향 관련 용어가 쏟아지더라. 물론 각 용어가 어떤 의미인지 설명과 예시가 잘 되어 있어서 이해하는데 큰 어려움은 없었다. 하지만 지금 떠올려보면 그때의 공부는 그림책 속 사과 이미지를 보고서 "이것은 사과고, 빨갛고, 먹으면 달고 아삭한 식감이 난다"라는 사과의 특징을 문자로 받아들이는 것에 지나지 않았다. 그도 그럴 것이, 자바는 그 본질 자체..

독서일기 2022.12.28

[클린 코드] 6장 - 객체와 자료 구조

6장 - 객체와 자료 구조 변수를 비공개로 정의하는 이유가 있다. 남들이 변수에 의존하지 않게 만들고 싶어서다. 그런데 어째서 수많은 프로그래머가 조회(get) 함수와 설정(set) 함수를 당연하게 public으로 설정해 비공개 변수를 외부에 노출할까? 자료 추상화 자료를 세세하게 공개하기보다는 추상적인 개념으로 표현하는 것이 좋다. 똑같이 2차원 점을 표현하는 두 클래스를 예시로 살펴보자. // 구체적인 Point 클래스 public class Point { // 필드값이 public으로 오픈 public double x; public double y; } // 추상적인 Point 클래스 public interface Point { // 필드값이 외부로 노출되어 있지 않고 오직 getter / sett..

독서일기 2022.11.17

JPA & ORM이란? (Feat. NoSQL에서 ORM?)

JPA란? 자바 표준 ORM(Object Relational Mapping). ORM(Object Relational Mapping)이란? 객체(Object)와 관계형 데이터베이스(Relational DB)를 연결(mapping)해주는 놈! Why JPA? 현대 웹 애플리케이션에서 관계형 데이터베이스는 빠질 수 없는 요소. 그러다 보니 객체를 관계형 데이터베이스에서 관리하는 게 무엇보다 중요해졌다. 문제는 RDB가 웹서비스 중심이 되면서 모든 코드가 SQL 중심이 되어버렸다는 것. 현업 프로젝트 대부분이 애플리케이션 코드보다 SQL로 가득해져버린 것이다. 이는 RDB가 SQL만 인식할 수 있기 때문인데, SQL만 가능하니 각 테이블마다 기본적인 CRUD 관련 쿼리를 매번 생성해야 한다. 예를 들어 Use..

Java 2022.06.02