프로그래밍공부(Programming Study)/자바(JAVA)

자바답게 프로그래밍하기

Chaany 2022. 10. 31.
728x90

전날 귀인을 뵙고 난 뒤의 많은 화두가 던져졌지만, 그중 먼저 꽂힌 부분은 "자바를 자바답게 사용한다는 것은 무엇일까?"였다.

혹시 자바 잘 사용하시나요? 어느정도 쓰시나요?

해당 물음에 본인은 중언부언 설명을 이어나갔으나 결국은 나의 답변은 자바를 잘 사용하지 못하고 있다는 것이었다.

 

이 물음에 대한 답을 하기 위해서  

 

1. 자바(특정 프로그래밍 언어)가 무엇인지 아나요?

2. 자바(특정 프로그래밍 언어)를 사용한다는 것이 무엇인지 아나요?

3. 자바(특정 프로그래밍 언어)를 잘 사용한다는 것이 무엇인지 아나요?

4. 그렇다면 본인은 자바(특정 프로그래밍 언어)를 어느정도 사용하시나요?

 

에 대해 답을 해야했기 때문에 중언부언 말을 이어나갔던 것 같다.

 

사실 이 물음은 자바(특정 프로그래밍 언어) 부분을 OO로 치환하고 읽으면 어떤 개념인지에 상관없이 질문할 수 있는 부분이었다.

 

결국 OO을 OO답게 사용하는 것은 무엇인가라는 화두가 던져졌고 나는 지금까지 집중했던 껍데기들을 버린 뒤 기본으로 돌아가야겠다고 생각했다.

안 그래도 w3c school과 자바의 정석을 복습하고 있던 나는 자바를 자바답게 사용하는 것은 결국 객체지향 프로그래밍을 지향한다고 해석하고 객체지향이 무엇인가라는 측면에서 학습태도를 탑재하고자 하였다.

 

그 결과 Spring, POJO, AOP 등 지금까지 심도있게 생각해 보지 못했던 키워드들에 대해서 파고들게 되었고, 구글링 결과 아래의 글을 접하게 되었다.

 

https://dataonair.or.kr/db-tech-reference/d-lounge/technical-data/?mod=document&uid=234873 

 

[다이어트 프로그래밍 Part.3]더 자바답게! 더 슬림하게! 다이어트 POJO 프로그래밍

더 자바답게! 더 슬림하게! 다이어트 POJO 프로그래밍 지난 몇 년간 EJB3를 포함한 많은 자바의 새로운 기술과 제품들은 저마다 POJO 프로그래밍의 지원을 주요 장점으로 내세우며 등장했다. 그러나

dataonair.or.kr

이전에 SSAFY 교수님과 인프런의 영한님께서 EJB와 POJO에 대해 언급해 주셨었는데 그땐 그게 무슨 소린지 몰랐지만 이는 결국 자바를 자바답게 사용하고자하는 프로그래머들의 치열한 고뇌였다는 것을 이제야 깨달았다.

 

객체지향 설계를 위해 EJB를 버리고 POJO로 돌아가자는 의견, 이는 지난주 배달의 민족 개발 콘퍼런스에서 봤던

2022.10.27 - [컨퍼런스(Conference, Session)/우아콘(WOOWACON)] - [2022 우아콘] API Gateway 패턴에는 API Gateway가 없다

 

[2022 우아콘] API Gateway 패턴에는 API Gateway가 없다

1. 세션 시청 배경 MSA 아키텍처 상 API Gateway 서버가 필연적이라는 생각을 하고 있었음 API Gateway 패턴에 대한 호기심 2. 세션 주제 MSA 아키텍처에서 필수적인 API Gateway Pattern이 API gateway Framework..

chaaany.tistory.com

내용을 상기시켰다.

 

POJO기반이라고 "주장하는" 코드(짝퉁 POJO) vs POJO 기반 코드
&
API Gateway Framework를 사용한 코드 vs API Gateway Pattern을 적용한 코드

 

POJO 프레임워크로 잘 알려진 제품을 사용하기만 하면 자동으로 POJO 개발을 하고 있다고 생각하는 경우가 많다는 것,

그리고 API Gateway Framework를 사용하면 API Gateway Pattern를 적용한 코드라고 생각하는 것은

결국 본질을 깨닫지 못하고 형식에 치우친 게 아닐까? 

 

 

해당 사진은 W3C School Java Intro에 나오는 내용이다.

 

결국 자바를 자바답게 쓴다는 것은 마지막에서 두 번째 줄이 핵심이 아닐까?

 

프로그램에 명확한 구조를 제공하고 코드를 재사용할 수 있도록 하여 개발 비용을 낮추는 객체 지향 언어

 

"OO을 OO답게 쓴다는 것은 기본으로 돌아가 OO의 존재 이유, 탄생 이유에 대해 고민해 보고 그 목적에 부합하게 사용하는 것이다." 라고 오늘의 나는 답변하고 싶다. 

 

 

728x90

댓글