추상화된 개념은 다양한 곳에서 응용된다

Timo·2022년 8월 5일
0

요즘 여러가지 공부를 하고 있다.
운영체제에서 동시성을 다루는 내용에 대한 스터디에 참여하고 있으며, 스프링에서 트랜잭션을 다루는 방법에 관한 강의도 듣고 있다.

신기한 것은 다른 주제를 공부하더라도 어느 순간 내용이 연결된다는 것이다.

오늘 발견한 것은 이렇다.

자물쇠와 열쇠(Lock/Key)라는 추상화된 개념은 운영체제에서 프로세스/쓰레드 간의 동시성 문제에 대한 해결 전략(예를 들어, 뮤텍스, 세마포어)으로 사용된다. 그리고 데이터베이스 시스템에서는 하나의 레코드에 대한 동시 변경을 막기 위한 DB Lock으로 사용되기도 한다.

풀(Pool)이라는 개념도 그렇다. 물 웅덩이에서 비롯된 것인진 모르겠지만
어느 공간에 필요한 대상을 미리 만들어 두면, 필요할 때마다 가져다 쓸 수 있다는 추상적 개념이다.
이 개념을 통해 HikariCP와 같은 데이터베이스의 컨넥션풀을 제공하는 라이브러리도 등장하고, 자바에 쓰레드풀이라는 기능도 등장하게 되었다.

악수(Handshake)는 어떨까? 악수는 무기를 들지 않은 빈손을 서로 잡으며, 우리는 안전하고 신뢰할 수 있는 사이라는 것을 확인하는 것에서 유래된 인사라고 한다.
이 개념은 네트워크에서도 마찬가지이다. TCP/IP 프로토콜의 3-Way Handshake 가 그렇다. 세 번의 메시지를 주고 받으며, 두 기기가 서로 신뢰할 수 있는 상태로 연결되었다는 것을 확인한다.

이처럼 하나의 추상적인 개념이 다양한 곳에서 구체적인 기술로 응용되는 모습을 볼 수 있다.
어쩌면 기술은 늘 우리 생활의 추상적인 의미들을 통해 아이디어를 얻어 구현되는 것인지도 모르겠다.

결과적으로 구체적인 기술에 집중하기 보다는 그 배경이 되는 추상적인 개념에 좀 더 집중해야 하지 않을까 하는 생각이 든다.

profile
나는 매일 성장하는 사람

0개의 댓글