아무튼!

[주저리] 한국이 자바 공화국이 된 이유(w/ 닷넷, 노드) 본문

Re:

[주저리] 한국이 자바 공화국이 된 이유(w/ 닷넷, 노드)

yucori 2024. 10. 1. 18:37
반응형

썸네일
Sip Java

한국은 왜 자바공화국이 되었을까?


오랜만에 재밌는 생각 파도타기(?)를 하여서 그 과정을 공유하고자 합니다ㅎㅎ
 
제 학부시절 가장 큰 난제는

"왜 우리나라 기업들은 죄다 자바-스프링을 요구하는가?"

였습니다.
 
고급 언어로(ex. python) 개발에 입문하게 된 저로서는
객체 중심의 자바가 저급 언어로 보였기에
꽤나 거부감이 있었습니다.
 
'아니 이렇게 쉽게 구현되는 언어들이 있는데, 왜 자바인거지?'
라는 생각에 항상 의문을 가지고 있었습니다.
 
시간이 흐르고 매우 짧은 생각이었다는 것을 알게 되었지만,
어찌 됐던 자바공화국이 된 이유에 대해서는
오랜 기간 동안 시원한 답을 얻을 수 없었습니다.
 
그러던 중, 최근에 흥미로운 이야기들을 몇 접하게 되어서 소개하고자 합니다.
 

 

1. 생각의 발단 

우선, 발단은 네트워크 공부였습니다.
네트워크 공부 도중 IEEE(아이-트리플-이 라고 발음한다고 합니다)
에 대해서 조사하게 되었고,
국제 표준? HTTP?라는 사고 흐름을 갖게 되었습니다.
 
그러던 중 HTTP 헤더들 중, 어떠한 헤더들을 허용하면
webDAV extension이 사용되어 보안 취약점이 생길 수 있다는 이야기가 떠올랐습니다.
 

 

OKKY - RESTful API 구현 시 POST,PUT,DELETE,GET Method의 사용범위는?

안녕하세요. 초보 웹 개발자 입니다.맨날 초보 개발자라고 저를 소개하는군요 ;; 다름이 아니라 이번에 새 프로젝트를 진행하게 되었는데요.모바일 요청에 대한 API를 구현해야하는데 RESTful 하도

okky.kr

 
 
댓글들을 보고 webDAV에 대한 문서들을 더 찾아보게 되었고,
한국 인터넷 진흥원에서 IIS와 webDAV 사용 시의 보안 취약점에 대해
안내하고 있는 문서를 찾게 되었습니다.

한국인터넷진흥원1한국인터넷진흥원2
한국인터넷진흥원 발최

 
위의 문서는 아래의 링크에서 원문을 확인하실 수 있습니다.
https://www.kisa.or.kr/2060204/form?postSeq=12&lang_type=KO&page=1#fnPostAttachDownload
 
 
IIS에 대해서 더 찾아보던 와중
IIS가 닷넷 ASP를 사용할 때 필요한
웹서버 소프트웨어라는 것을 알게 되었습니다.

 

 

"..닷넷? 오늘 어디선가 봤는데?"

44bits - 자바 VS 모드 향로의 선택은?

 
일전에 제가 자바가 한국에 널리 퍼지게 된 이유에 대해서
계속 의문을 지니고 왔다고 하였던 것이
여기에서 점을 잇게 되었습니다! (Connecting the Dots!)
 
당일 아침에 위의 영상을 보게 되었는데
영상 초반 부분에 채용자의 관점에서 이야기를 하셔서
집중이 분산되길래 댓글을 보면서 영상을 시청했습니다.
 
해당 영상의 댓글 중에 "닷넷"이라는 한 마디에
몇몇 분이 공감하시는 것을 보았고
해당 단어는 잔상을 남긴 채 잠시 잊혀졌습니다.
 
하지만 그날 저녁 다시 "닷넷"을 만나게 된 것입니다..
경험 상, 여러 번 마주치는 단어는 대개
개발에 있어서 근본이거나, 중요한 단어였기에
이번에는 닷넷에 대해 알아보고자 했습니다.
 
그러던 와중, 흥미로운 글을 발견하였습니다.

 

 

2. 실마리를 발견하다

 

한국에 닷넷 아쎄이들이 없는 이유

음... 나도 닷넷 떠난지 꽤 됐네.물론 닷넷을 완전히 떠난 건 아니다.근데 한가지 확실한 거 하나 있다.이건 내가 최근에 닷넷 하면서 뼈저리게 느낀 건데...닷넷 아쎄이들이 없다.어쩔 수 없다.

velog.io

 
해당 글을 보고
마음속으로 "유레카!"를 외쳤습니다.
 
어떠한 기술이 일반적으로 되는 데에는
해당 기술에 공감하고 추진력 있는 소수가 시발점이 되겠지만
이를 널리 퍼뜨리는 데에는 배경이 필요하다고 생각합니다.
 
그리고 해당 글에는 그 "배경"에 대한 얘기가 담겨 있었습니다.
 


닷넷이 일반적이었던 시절, 마소는 어도비 번들을 팔듯이
통합 개발 도구로만 비싸게 닷넷을 지원했고,
비용 삭감이 중요한 기업과 정부 입장에서는
그 비용에 대한 고민이 많았다고 합니다.

예산 삭감이 중요한 입장에서는

무료인 자바, 스프링이 굉장히 매력적이었을 겁니다.


그래서 정부는 전자 정부 표준 프레임워크라는

한국 표준을 자바, 스프링으로 만들게 되었습니다.


정부가 정한 표준이 그러하니, 기업도 이를 따르게 되었을 것이고,

기업이 선호하니 어쨌든 취업을 하는 루트가 일반적인 우리나라에서는
그 트렌드에 편승할 수밖에 없는 부분이 있었다고 생각합니다.


그래서 자바, 스프링으로의 기술 스택 변경이 다수 발생했고
해당 개발자 분들이 현재 40~50대 시니어 분들이 되어서
계속해서 자바, 스프링이 선호되고 있는 것이 아닌가..

하는 것이 저의 추론입니다.
 

 

3. 자바 vs 노드

저로서는 해당 시대를 직접 경험할 수 없었기에
이러한 추론들에 오류가 있을 수 있겠지만
지금까지 제가 접했던 이론들 중에서는
가장 타당하게 자바가 널리 퍼지게 된 이유를

설명하고 있지 않나 싶습니다.
 
더불어 왜 노드가 자바를 대체할 수 없냐?

라는 생각에 대해서도
나름 근거를 갖게 되었습니다.
 
결제 관련 작업을 할 때에
보통 DB와 애플리케이션 사이에 연결이 필요한데
노드의 경우에는 고도화된 orm이 아직 부족합니다.


노드 orm은 데이터베이스에서 애플리케이션 사이드로
데이터를 옮길 때 JSON으로 전송하고는 하는데,
JSON 직렬화 시, BigInt 같은 것들은 표현 범위를 넘어서서
stringify 되어 문자열로 전달됩니다.


그래서 이를 다시 숫자로 변환하기 위해

wrapper 같은 것들을 사용하게 되고,
이 과정에서 오차가 발생하고는 합니다.
 


하지만 jvm 같은 경우에는 고도화된 orm이
알아서 BigInt, BigDecimal...

등으로 숫자를 정밀하게 표현합니다.
 
이 외에도 방대한 자바 자료,

보수적인 결제 시스템 등의 이유가 있겠지만
저러한 이유들로 소수점까지 숫자가 중요한
돈을 다루는 회사들은 결국에 결제에서만큼은
jvm을 선호하게 된 것입니다.
 
또한 요즘 대용량 트래픽 처리가 대한 관심이 큰 논제인데,
노드가 일단은 싱글 스레드로 동작한다는 부분도
매력도를 떨어뜨리지 않았나 싶습니다.
 
그리고 이와 상반되는 이유로
kotlin, 코루틴 같은 경랑 스레드들이
각광받게 된 것 같습니다.
(지금은 java도 가상스레드 같은 경량 스레드를 사용할 수 있습니다.)
 
오랜만에 즐겁게 서칭 하며 인터넷 파도타기를 한 것 같습니다ㅎㅎ
개발 커뮤니티의 매력을 이번에 더욱 체감할 수 있었습니다.
 
 
저의 이러한 가설들에 대한 지적은 정말, 매우 환영하오니
언제나 의견 주시면 감사히 듣겠습니다 :)
 
 


그 외 참조

 

Java의 미래, Virtual Thread | 우아한형제들 기술블로그

JDK21에 공식 feature로 추가된 Virtual Thread에 대해 알아보고, Thread, Reactive Programming, Kotlin coroutines와 비교해봅니다.

techblog.woowahan.com

 

 

WebDAV 취약점

개요 HTTP(S) 프로토콜의 확장 기능으로 원격으로 웹 서버를 read/write(읽기/쓰기)가 가능하도록 만들어줍니다. 또한 사용자가 해당 서버에 문서를 생성하고 이동도 가능하지만, 올바른 보안설정이

guleum.com

 

Node.js가 왜 싱글 스레드로 불리는지 "정확한 이유"를 알고 계신가요?

Node.js가 왜 싱글스레드 환경으로 불리는 것일까? Javascript 언어가 싱글 스레드 기반 언어라서? 사실 이에 대해서는 단순 허무하면서도 마냥 재미있는 이유가 숨겨져 있다. 우선 내가 Node.js가 싱글

helloinyong.tistory.com