brunch

한옥 설계로 보는 소프트웨어 엔지니어링의 아름다움

건축이 아름답듯이, 소프트웨어 엔지니어링에도 아름다움이 숨어있다.

by 이권수

한옥 지붕의 처마 끝을 추녀라고 부른다. 추녀를 자세히 보면 다른 처마에 비해 위로 살짝 들려있다. 일직선으로 뻗지 않고 끝을 곡선으로 만들어 아름다워 보이기도 한다. 마치 곡선의 미를 살리는 듯한 느낌이 들기도 한다.


그런데, 혹시 추녀가 들려있는 이유를 알고 있는가?


haemieupseong-953103_1280.jpg

건축계에서 유명한 유현준 교수는 그 이유를 과학적으로 설명했다.


한옥을 설계하는 대원칙은 나무를 물에 젖지 않도록 하는 것이다. 한옥을 구성하는 기둥은 나무로 되어 있다. 나무는 물에 젖게 되면 시간이 지나면서 썩는다. 나무가 썩으면 받치는 힘이 부족해져 기둥이 무너진다. 즉, 집이 무너지지 않으려면 나무 기둥을 보호해야 한다.


한옥을 지을 때 비로부터 나무를 지키기 위해 처마를 만든다. 지붕을 보면 서까래가 길게 나와 처마를 이룬다. 처마는 위에서 내리는 비가 집 안쪽으로 들어오지 못하도록 막아준다.


그런데, 처마를 만들기 위해 서까래를 길게 뽑다 보니 가장자리에 문제가 생긴다. 가장자리, 즉 추녀를 이루는 부분은 대각선 방향으로 뻗어있어 일반 서까래보다 그 길이가 길다. 길이가 길다 보니 햇빛이 잘 들지 않는다. 그래서 추녀 쪽 기둥에 젖은 물을 말릴 수가 없게 된다.

iScreen Shoter - Google Chrome - 230828011825.png 출처: tvN 알쓸신잡 2


그래서 추녀 끝을 올려서 햇빛이 들어오도록 공간을 마련해 준 것이다. 우리나라보다 위도가 낮은 베이징에 가면 추녀가 더 놓게 올라가 있는 모습을 볼 수 있다. 그 이유도 위도가 낮아질수록 햇빛이 들어오는 입사각이 커지기 때문이다. 반대로 위도가 올라가면 추녀는 점점 평평한 모습을 띤다.

iScreen Shoter - 20230828012013257.png 출처: tvN 알쓸신잡 2


우리가 아름다운 디자인이라고 여겨왔던 추녀는 사실
문제를 해결하기 위해 나온 디자인이었다.



소프트웨어 엔지니어(개발자)가 만드는 소프트웨어도 문제를 해결하면서 나온 결과물이다. 소프트웨어 엔지니어링은 문제를 해결하는 것이 주목적이다. 회사는 각기 다른 문제들을 마주한다. 서비스 업종에 따라, 혹은 서비스 규모에 따라 직면하는 문제가 달라진다.


소프트웨어 엔지니어는 회사가 마주한 문제를 해결하기 위해 다양한 방법을 고민한다. 문제를 고치기 위해 코드를 수정하기도 하고, 아예 새로운 코드를 만들기도 한다. 또는 아키텍처를 변경하여 문제를 해결하기도 한다. 그렇게 문제를 해결하고 나면 결과물이 나오고, 그 결과물은 건축으로 따지면 건물과 같다.


건축가에 따라 건물 모양이 달라지듯, 누가 문제를 해결했느냐에 따라 결과물이 달라진다. 개발자들은 잘 만든 결과물을 보고 감탄하고 한다. 예컨대, 필자는 리눅스 시스템, 넷플릭스의 대규모 트래픽 처리를 위한 아키텍처와 같이 유기적으로 잘 구현되어 동작하는 소프트웨어를 보면 감탄이 절로 나온다. 이러한 소프트웨어 아키텍처에는 그냥 만들어진 것이 없다. 모두 문제를 해결하면서 나온 결과물이다.


요컨대, 소프트웨어 엔지니어링은 문제를 "아름답게" 해결하는 일이다. 아름답다는 의미가 다소 주관적일 수 있다. 하지만 아름답지 못한 방식의 문제 해결은 또 다른 문제를 야기할 확률이 높다. 그래서 늘 현재에 만족하지 않고 계속해서 아름다운 아키텍처와 서비스를 만들기 위해 노력해야 한다.


다른 회사의 사례를 보면서 아름답다고 생각하는 아키텍처가 있는지, 감탄이 나오는 소프트웨어가 있는지 찾아보아라. 그 아름다움이 우리가 추구해야 할 모범사례일 확률이 높다.





keyword
매거진의 이전글#14. 어떤 고통을 견딜 수 있는가