처음 처음 | 이전 이전 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |다음 다음 | 마지막 마지막
이것이 Spring AI다 - LLM을 활용한 AI 에이전트 개발|RAG 특별 동영상 강의 제공, 개정판 이것이 시리즈
신용권 지음 / 한빛미디어 / 2026년 3월
평점 :
장바구니담기


한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다.

AI라고 하면 일반적 사용자들은 ChatGPT, Claude, Gemini 같은 챗봇 형태의 서비스를 생각할텐데, 개발자 입장에서는 좀 더 다양한 층위를 보게 된다. 그런 서비스들은 가장 최신의 모델(훈련된 AI 버전)을 쓰는데 이런 걸 프론티어 모델 혹은 SOTA (State-of-the-Art)라고 한다. SOTA는 말 그대로 '현재 기술 수준에서 가장 앞서있는 모델'을 의미하고, 프론티어 모델은 그 중에서도 성능의 최전선에 있는 것들을 지칭한다. 일반적으로 이것들은 좀 더 호출 당 단가가 비싸서 실제 서비스에 부차적으로 붙이기엔 부담스럽다. 찾아보면 이런 모델들의 열화 버전(mini, nano…) 등이 있는데 이 친구들은 경량화되어 있기에 속도도 빠르고 호출 당 비용도 적지만 자원을 덜 쓰는 만큼 내가 원하는 대로 작동을 안할 확률이 높다.

이런 저렴이 모델을 쓸 경우 대표적인 문제가 환각(Hallucination), Knowledge Cutoff, GIGO 같은 것들이다. 환각은 LLM이 실제로 존재하지 않는 정보를 마치 사실인 것처럼 생성하는 현상이다. 없는 논문을 만들어내거나, 존재하지 않는 API 메서드를 자신있게 알려주는 식이다. Knowledge Cutoff는 모델이 학습된 시점까지의 데이터만 알고 있기 때문에 그 이후의 정보에 대해서는 답변할 수 없는 한계를 말한다. GIGO는 'Garbage In, Garbage Out'의 약자로 입력이 부실하면 출력도 부실하다는 컴퓨팅/데이터 기반 솔루션에 있어 오래된 원칙인데 LLM에서도 그대로 적용된다. 프롬프트를 대충 넣으면 결과도 대충 나온다는 뜻이다.

이런 것들을 최소화하기 위해 LLM에 이것저것 프로그래밍적 술수(?)를 쓰게 되는데 이런 걸 AI 에이전트 코딩이라고 한다. 에이전트 코딩이란 LLM이 단순히 텍스트를 생성하는 것을 넘어서, 외부 도구를 호출하고, 검색을 수행하고, 코드를 실행하는 등 자율적으로 작업을 수행하도록 프로그래밍하는 것을 말한다. 가장 유명하면서 여러 플랫폼/언어에서 쓰이고 있는 LangChain 프레임워크다. 그런데 이게 명목상으로는 JS/Java/Python을 지원하지만 실질적으로는 Python 중심이다 보니 이제 자바/스프링 공화국인 한국에서는 외부 모듈이나 api 서버로 구현하지 않는 한 조금 뭔가 머시기 했던게 사실이다. 그러다 작년(2025년) 즈음해서 Spring AI가 릴리즈 되었고, ChatModel/ChatClient 등을 활용해서 기존에 스프링 컨테이너를 활용한 의존성 주입 및 스프링 부트의 스타터를 통한 편한 패키지/의존성 관리가 가능해졌다.

시중에 LangChain 관련 책들은 많이 존재하는데 Spring AI를 전문적으로 다루는 교재가 없었던게 사실이다. 그러다가 만나게 된게 이 '이것이 Spring AI다 (개정판)'이다. 이게 2025년에 나오고 바로 2026년에 개정판으로 한 번 더 나온 버전이다.



책의 구성

책의 구성은 상당히 튼실하다. 기본적인 Spring AI의 설정과 주요 인터페이스/클래스들부터 프롬프트 엔지니어링을 지나 멀티 모달(이미지, 음성)을 다루며 최종적으로 RAG, Tool Calling/MCP, 에이전트 오케스트레이션까지 나아간다.

  • 프롬프트 엔지니어링(Prompt Engineering) : LLM에게 원하는 결과를 얻기 위해 입력(프롬프트)을 설계하고 최적화하는 기술이다. 단순히 질문을 잘 하는 것을 넘어서, 시스템 프롬프트 설정, few-shot 예시 제공, 출력 형식 지정 등 LLM의 응답 품질을 제어하기 위한 체계적인 접근법 전체를 포괄한다.

  • 멀티 모달(Multimodal) : 텍스트뿐만 아니라 이미지, 음성, 영상 등 여러 형태의 데이터를 동시에 처리할 수 있는 AI의 능력을 말한다. 예를 들어 이미지를 보고 설명하거나, 음성을 텍스트로 변환하거나, 텍스트로부터 이미지를 생성하는 것이 모두 멀티 모달의 영역이다.

  • RAG(Retrieval-Augmented Generation) : LLM의 가장 큰 약점인 환각과 Knowledge Cutoff를 보완하기 위한 기법이다. 사용자의 질문이 들어오면 먼저 외부 데이터소스(문서, DB 등)에서 관련 정보를 검색(Retrieval)한 후, 그 정보를 LLM의 컨텍스트에 함께 넣어 응답을 생성(Generation)하는 방식이다. 이를 위해 문서를 수치 벡터로 변환하는 임베딩(Embedding) 과정과, 그 벡터들을 저장하고 유사도 기반으로 검색할 수 있는 벡터 스토어(Vector Store)가 필요하다. 가르치다보면 이미지 생성이나 음성 인식 같은 것은 곧잘 하지만 RAG, 임베딩, 벡터 파트에서 많이 막히는 편인데 이 책에서 그쪽에 대한 설명이 상세하게 되어 있어서 좋았다.

  • Tool Calling : LLM이 직접 수행할 수 없는 작업(실시간 데이터 조회, 계산, 외부 API 호출 등)을 외부 함수/도구를 호출해서 처리하는 메커니즘이다. LLM이 "이 작업은 이 도구로 처리해야겠다"고 판단하면 함수 호출 형태로 요청하고, 그 결과를 받아서 최종 응답에 반영하는 구조다.

  • MCP(Model Context Protocol) : LLM이 외부 도구나 데이터소스에 접근할 때의 표준화된 인터페이스를 정의한다. Tool Calling이 개별 함수 호출이라면, MCP는 그것을 표준화된 규격으로 묶어서 다양한 도구 제공자와 LLM 사이의 상호운용성을 확보하려는 시도다.

  • 에이전트 오케스트레이션(Agent Orchestration) : 여러 AI 에이전트를 조합하여 복잡한 작업을 수행하도록 관리하는 것이다. 하나의 에이전트가 계획을 세우고, 다른 에이전트가 실행하고, 또 다른 에이전트가 결과를 검증하는 식으로 역할을 분담시키는 패턴이다. LangChain에서는 이런 구조를 LangGraph 등으로 구현하는데, Spring AI에서도 이제 자체적으로 이런 오케스트레이션이 가능해진 것이다.


챗봇의 기본부터 심화까지의 내용을 상세히 실습해볼 수 있다.

실습과 코드

작년(2025년) 초만 하더라도 이정도를 구현하기 위해선 어쩔 수 없이 LangChain4J를 쓰거나 별도의 파이썬 모듈로 LangChain을 구현해야했는데 이제는 Spring 생태계의 통합된 모듈들을 활용해서 프로바이더를 지정하고, 설정 파일을 활용해 문서화하며 관리할 수 있다는게 상당히 놀라웠다.

내용 자체가 LangChain에서 볼 수 있던 접근법과 상당히 유사하긴 하였으나 어쨌든 자바는 자바고, 스프링은 스프링이라서 그 특색을 따라가는 것이 있는데 거기까지 하나하나 설명하기엔 너무나 방대하고 전문적 영역인지라 과감히 예제 코드 중심으로 '작동 원리'를 위주로 설명한 것이 좋았다.

이미 구현된 구조를 타임리프로 구현해놓은 화면에서 주로 실습하게 되는데 굳이 따지자면 최신의 Spring 문법을 따라가고 있진 않아서 약간 고치고 싶은 (@Autowired라든가…) 부분이 있긴한데 오히려 레거시를 관리중에 Spring AI를 통해 챗봇이나 지식 기반 시스템을 만들어야하는 상황이라면 더 유리한 부분이 있겠다 싶었다. 실습 환경이 일단은 VSCode인 것도 보면 확실히 어느정도 만들던 사람들을 타겟팅한다는게 느껴졌다. (자바 환경변수, OpenJDK 등의 문제들을 가능한 피하기 위해서 요새는 초심자 대상이라면 IntelliJ를 선택하는 교재도 많은지라…)

또한 OpenAI의 GPT 계열의 모델을 사용하는 것 뿐만 아니라 부록으로 Gemini, 로컬 모델(Llama, DeepSeek) 등의 사용방법을 소개하고 있어 벤더 의존성을 줄인 것이 좋았다. 책에는 없는 부분이지만 개인적으로는 Groq, NIM, OpenRouter 같은 여러 모델을 사용해볼 수 있는 프리티어 플랫폼을 연동하는 파트를 따로 연습해볼 생각이다.




예제코드가 잘 제공되어 있고 꼭 VSCode로 할 필요는 없다. (본인이 편한 IDE를 쓰면 된다.)

추천 독자

자바에서 LangChain을 써보고 싶었으나 대안을 찾기 어려웠던 사람

기존에는 LangChain4J라는 자바 포팅 프로젝트가 있었지만, 스프링 생태계와의 통합이 매끄럽지 않았고 커뮤니티 규모도 파이썬 쪽에 비해 현저히 작았다. Spring AI는 스프링 프레임워크의 철학(DI, 자동 설정, 스타터)을 그대로 따르기 때문에 기존 스프링 개발자라면 러닝 커브가 훨씬 낮다.

자프링(자바+스프링) 환경에서 AI 에이전트 플랫폼을 개발해보고 싶은 사람

이미 운영 중인 스프링 부트 애플리케이션에 AI 기능을 추가해야 하는 상황이라면, 별도의 파이썬 서버를 띄우는 것보다 같은 생태계 안에서 해결할 수 있다는 것은 운영 복잡도 측면에서 상당한 이점이다.

프롬프트 엔지니어링, 멀티모달, MCP/Tool Calling 등 여러 AI 에이

전트 요소에 대한 전반적 이해가 필요한 사람.

각 개념이 코드 레벨에서 어떻게 구현되는지를 보면서 이해할 수 있기 때문에, 이론만으로는 와닿지 않던 개념들이 구체적으로 다가온다.

#한빛미디어 #나는리뷰어다 #이것이SpringAI다 #SpringAI #스프링AI

#Java #Spring #SpringBoot #자바 #스프링부트 #백엔드개발

#LLM #생성형AI #AI에이전트 #프롬프트엔지니어링 #RAG #MCP #ToolCalling

#에이전트오케스트레이션 #멀티모달 #벡터스토어 #임베딩 #LangChain

#기술서리뷰 #개발서적 #개발자추천도서



댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
AI 에이전트 마스터 클래스 - 기획, 구현, 운영, 배포까지 현업에서 바로 적용하는 에이전트 개발 가이드
김구현 지음 / 한빛미디어 / 2026년 1월
평점 :
장바구니담기


한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다.

 


레거시 스택과 생성형 AI 사이의 간극

작년 초부터 생성형 AI와 자바 스프링 백엔드를 접목한 강의를 맡아왔다. 그러나 현실의 커리큘럼은 여전히 JSP(Java Server Pages), MyBatis(퍼시스턴스 프레임워크) 같은 전통 기술을 포함한다.

 

분기마다 DeepSeek(LLM), o1(추론 특화 모델), nano banana(경량 모델), Claude Code(코드 특화 LLM), OpenClaw(오픈소스 모델) 등 새로운 기술이 쏟아지는 상황에서, 이를 충분히 소화하지 못한 채 기존 스택을 다루는 과정은 구조적 간극처럼 느껴졌다. 특히 에이전트 구현 영역은 가장 난해했다.

 

LangChain으로 재정렬된 에이전트 개념

강의 특성상 Java 중심, 보조적으로 JavaScript 정도만 다루다 보니 Python 기반 LangChain(LLM 오케스트레이션 프레임워크)을 깊이 있게 접하기 어려웠다. 모델 호출 후 Stream(스트리밍 처리)이나 고차함수로 연결하는 수준에서 멈출 수밖에 없었다. 부트캠프 환경에서는 일정 깊이 이상을 다루면 오히려 이해도를 해칠 수 있다는 제약도 존재했다.

 

이 책은 그 단절된 개념들을 정리해준다. 기존 프로그래밍 패턴으로 설명하던 호출 체계, 상태 관리, 체이닝 구조가 LangChain을 통해 하나의 추상화 계층으로 묶인다. 그러나 핵심은 프레임워크 자체가 아니다. 프롬프트 품질 관리, 다중 모델 통합, 출력 스키마 제어 같은 문제를 어떻게 구조적으로 해결하는지가 중심이다. 에이전틱 사고(목표 기반 문제 해결 구조)를 체계화하는 데 의의가 있다.

 



RAG·MCP를 통한 구조 확장

책은 GPT-5-nano(경량 모델), LangChain, Colab(클라우드 노트북), Streamlit(파이썬 웹 UI) 중심으로 구성되어 학습 부담을 낮춘다. 환경 설정과 모델 선택에서의 복잡도를 최소화한 점은 분명 장점이다. 동시에 다양한 벤더나 배포 환경을 폭넓게 다루지는 않는다.

 

RAG(검색 증강 생성)와 MCP(Model Context Protocol, 모델-도구 연결 규약) 같은 개념은 단순한 텍스트 생성 단계를 넘어, 외부 데이터와 도구 호출을 결합한 구조로 확장하는 방향을 제시한다. 생성형 모델을 “출력기”가 아닌 “구성 요소”로 다루는 시각을 제공한다는 점에서 의미가 있다.



 

프레임워크를 넘어 설계 철학으로

이 책은 종착점이 아니라 정리된 출발점에 가깝다. LangChain4j(Java용 LangChain), Spring AI(스프링 기반 AI 통합), Ollama(로컬 LLM 서빙), OpenRouter·Groq·Gemini·NVIDIA NIM(다중 모델 API) 같은 환경에서도 동일한 문제 정의와 구조를 재현할 수 있다. 구현체는 달라도 설계 관점은 유지된다.

 

결국 중요한 것은 특정 라이브러리의 API 숙련도가 아니라, 모델 호출을 어떻게 추상화하고, 상태를 어떻게 통제하며, 출력을 어떻게 계약화(contract)할 것인가에 대한 사고 체계다. 이 책은 그 관점을 비교적 안정적으로 제공한다.

 

추천 독자

이 책은 다음과 같은 독자에게 적합하다.

  • 생성형 AI를 실무 백엔드와 연결하려는 개발자
  • LangChain의 개념 구조를 한 번에 정리하고 싶은 독자
  • RAG나 도구 호출 기반 에이전트 구조를 처음 접하는 사람
  • Python 중심 실습으로 빠르게 전체 그림을 파악하고 싶은 개발자

 

반면, 멀티 벤더 운영 전략이나 대규모 프로덕션 아키텍처 설계를 기대한다면 보완 학습이 필요하다. 기본 개념을 정리하고 구조적 사고를 다지는 용도로 적절한 기술서다.



댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
혼자 공부하는 SQL - 1:1 과외하듯 배우는 데이터베이스 자습서 혼자 공부하는 시리즈
우재남 지음 / 한빛미디어 / 2021년 11월
평점 :
장바구니담기



원래는 비전공자였던지라 개발을 배우는 과정은 항상 도전의 연속이었고, 그중에서 가장 막막했던 분야는 아무래도 데이터베이스(DB) 쪽이었다. 그리고 DB를 다루기 위한 필수 언어인 SQL은 가장 피하고 싶은 최종보스였지만 DB에 익숙해졌을 때는, 이제는 항상 하루에 한 번쯤은 집어들게 되는 숟가락 같은 존재가 되었다.

몇 년 전에 그토록 DB 관련에서 치를 떨었던 것과는 달리, 이제는 주변 사람에게 SQL 관련 자격증에 대한 상담을 해주거나 SQL 학습을 권하곤 한다. 최근의 경우에는 금융 관련 서비스 기획자와 이야기를 나눴는데 고객 분석을 위한 데이터를 관련 부서에 요청하는 것에 지쳐서 이제는 직접 자격증을 따서 해보겠다는 것이었다.

언제나 이러한 상담을 해주면서 아쉬운 점은 비전공자나 취준생 레벨의 사람들에게 추천해줄만한 SQL 책이 없다는 것이다. SQL 교육은 대충 말해 양분 되어 있다. 1) 현업 2) 정보처리기사 또는 SQLD.

현업들은 사수들이나 매뉴얼을 직접 보면서 배운다. 물론 구글 검색도 유용하다. 실은 이들에게 있어 SQL 학습은 '이 문제를 해결하지 않으면 짤릴지도 모른다'는 불안감과 절망 속에서 만들어지는 노하우의 결정체다.

한편, 자격증을 따기 위한 공부가 있다. 정보처리기사와 SQLD. 둘 다 그나마 컴공 또는 데이터베이스 연관 분야에서 쓸모 있고 인정받는 자격증이다. 따는 건 좋다. 기출문제도 있고 강의도 많으니까.... 근데, 실무에선? 언제나 시험을 위한 지식은 실무라는 큰 벽 앞에서는 고양이 앞의 쥐마냥 오들오들 떨 뿐이다.

온갖 야매와 꼼수로 하루하루 밥벌이 하는 현업이든, 급한 마음에 책을 달달 외워서 자격증을 딴 사람이든, 관련 분야를 착실히 준비하려는 취준생이든 결국 중요한 것은 수많은 위기에서도 흔들리지 않을 기본이라고 생각한다. 그러나 역설적으로 이러한 탄탄한 기본기를 위한 서적은 많지 않다.

그래서 이번에 혼자 공부하는 SQL을 읽게 되었을 때 정말 좋았다.

1) SQL 쪽에서는 믿고 보는 '우재남' 님의 신작이라는 점.

2) 비전공자들은 쉽게 따라오고, 현업들은 다시금 개념을 다질 수 있게 학습 과목들이 잘게 잘게 모듈화되어 있다는 점.

3) 저자 직강의 강의가 유튜브로 제공된다는 점.

4) 마지막으로, PHP나 JAVA처럼 근본이지만 최근의 트렌드에는 조금 거리가 있을 수 있는 언어가 아닌 파이썬을 연동 실습 예제로 삼았다는 점.

이제는 DB나 SQL을 배워보겠다는 후배나 지인들에게 부담없이 추천할 수 있는 책이 생겨서 기쁘다. 급하게 자격증 때문에 배우거나, 문제 상황마다 구글 검색을 통해 해결하는 것이 아닌, 효율적이면서도 친절한 커리큘럼으로 구성된 혼자 공부하는 SQL이면 많은 시행착오 없이 SQL을 배울 수 있을 것이다.



댓글(0) 먼댓글(0) 좋아요(2)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
무엇이 되지 않더라도
김동영 지음 / arte(아르테) / 2017년 12월
평점 :
품절


심리학자 프로이트는 '정상'이란 약간의 강박증, 약간의 편집증 그리고 약간의 히스테리가 있는 상태라고 말했다. 쉽게 말해, 특정한 것에 집착도 좀 하고, 망상도 좀 하고, 정신적 아픔으로 인해 신체적으로도 고통을 앓는 것이 바로 인간 본연의 '정상적' 심리 작용이라는 것이다.


프로이트가 정신분석학을 탄생시켰던, 19세기 특유의 억압적이던 시대가 무려 200여년 가량이 지났다. 아마, 21세기 현대인들에게 맞춰 '정상'의 정의를 다시 수정하다면 아마 이럴 것이다.


약간의 불안, 약간의 우울증, 약간의 공황장애.


무엇인가 되어야 한다는 주변의 기대, 하지만 내 마음대로 되지 않는 무한경쟁사회, 그 과정 하에서 '나'는 오히려 그 무엇도 되지 못하고 달팽이마냥 두꺼운 외피 속 말랑한 실존을 보호하려 몸서리칠 뿐이다. 북유럽의 어떤 우울한 철학자는 절망이란 죽음의 이르는 병이라고 했다던데, 이 나라는, 이 사회는 절망이라는 페스트가 돌아다니고 있는 중세 유럽의 도시마냥 생기가 없다.


그럼에도 불구하고 살아가야 한다. 그럼에도 불구하고 이겨내야 한다. 다행히도 인간의 나약한 실존을 보듬기 위해 '글'이라는 것이 주어졌고, 누구보다 더 격한 고독과 불안의 떨림을 이겨낸 인생 선배들이 어떻게든 꾸역꾸역 살아가는 데 도움이 될만한 글들을 몇 줄씩 남겨놓았다.


에세이 「무엇이 되지 않더라도」는 누구보다 처절하게 존재의 불안과 맟서야했던 한 40줄에 들어서는 남성의 자기 고백서다. 중간중간 여행기를 담아내지만, 액자 속에 담긴 스틸 사진 마냥 철저히 배경으로 남을 뿐, 초점은 그의 성찰과 되뇌임에 맞춰져 있다.


이 책의 저자, 생선 김동영 작가는 여러 여행 에세이를 펴낸 사람이라고 한다. 독서 관련한 팟캐스트를 운영하고 있다던데 솔직히 들은 적은 없다. 여러모로 배경지식이 없지만, 이 책을 통해 두 가지는 확실히 알 수 있었다. 이 사람이 여행을 많이 다녔다는 것, 그리고 그에겐 여행이 아니고선 씻어낼 수 없는 큰 불안과 우울, 그리고 슬픔이 있다는 것.


여행 에세이를 읽다보면 그곳에 가고 싶어지거나, 저자의 여행 스타일을 닮고 싶어진다. 이 책을 평하자면 후자쪽. 그러나 그의 여행 스타일에서 느껴지는 짙은 불안과 우울의 그림자는 멀리하고 싶다. 역마살(驛馬煞)이 끼었다고 하나? 처음엔 남들 같이 사진도 찍고 랜드마크를 꼭 들러야했던 풋내기 여행자 시절을 지나, 어느새 가장 마음에 드는 카페를 하나 정해 거기서 글을 쓰며 장기투숙을 하는 글쟁이 노마드로 변해가는 과정을 동경하다가도 어딘가 정을 둘 수 없는 그의 상실감과 부유감에 가슴이 저렸다.


차라리 이 책은 에세이라기보단 철학서에 더 가깝다. 어떻게 자신이 살아왔는가, 그리고 어떻게 살아갈 것인가를 스스로에게 묻고 스스로가 답한다. 다만, 언어가 그리 철학적이고 사변적이진 않다. 쉬운 언어, 읽히는 언어를 통해 독자에게 다가온다. 그리고 그가 그만의 내밀한 여행을 통해 줏어모았던, 그만의 내밀한 상처를 통해 아로새겨질 수밖에 없었던 그의 체험과 잠언이 담긴 보따리를 한아름 선물해준다.


이 책을 통해 그의 빈 공간, 그리고 망각하고 싶은 괴로운 기억들이 오롯이 노출된다. 하지만 그의 상실은 여행을 통해 새로운 감각을 온전히 받아들일 수 있는 그릇이 되고, 그가 잊고 싶어하는 스스로의 아픔은 새로운 인연의 새겨짐 속에 어느덧 견딜만해진다. 잃는만큼 채워지고, 잊는만큼 새겨지는 삶의 전환. 아마 그의 여행이 지금까지 그치지 않고, 그의 글이 울림이 있는 것은 그 탓일 것이다.

비록 지금 우리는 이렇게 초라하고
앞으로도 계록 이런 식으로 대책 없이 살아갈지도 모르지만
모두 우리가 선택한 것이니까
후회하지 않고 지치지 않고 의심하지 않으며
우리는 그렇게 잘 살고 싶다. - p.41

언젠가부터 여행은 내게 산소통이 되었다. 그 산소통에서 산소를 조금씩 빼 마시며 나는 일상이라는 거친 바닷속에서 살아갈 수 있었다. 여행은 중독이라고 했다. 한번 중독되면 독이 빠질 때까지 길 위를 헤매야 하는 것이다. - p.105

여행을 통해 무엇을 얻고 싶지도 않다. 그저 길을 갈 뿐이다. 거기서 얻은 게 있고 느낀 게 있다면 그건 대부분 여행 중이 아니라 여행이 끝나고 일상으로 돌아와 어렴풋이 느낀 것이리라. 여행 중에는 정작 모른다. 여행은 온전히 받아들이는 시간이기 때문이다. - p.123

난 나름대로 당신들 없는 세계에서 잘 지내보려 분투 중이다. 아직은 견딜만 하다. 좋은 날도 있고 힘든 날도 있지만 좋은 사람들이 곁에서 날 다독여주고 있으니, 나는 당신들이 항상 대견해하고 좋아해주던 모습으로 살아갈게. 그러니 어디에 있든 편히 쉬어.
어제도, 오늘도, 그리고 내일도 보고 싶어. - p.211

나는 제대로 된 어른이 되고 싶다.
지나온 시간만큼 넓고 깊어져
모든 강과 시내를 받아들이는 바다처럼 되고 싶다.
그리고 나이가 들어 어쩔 수 없이 꼰대가 되더라도
괴물은 되고 싶지 않다. - p.226


댓글(0) 먼댓글(0) 좋아요(2)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
포르투갈의 높은 산
얀 마텔 지음, 공경희 옮김 / 작가정신 / 2017년 11월
평점 :
구판절판


포르투갈의 높은 산


인간은 매번 상실을 겪는다. 상실을 애도하는 방법은 각기 다르다. 누군가는 엄숙한 장례식을 통해 죽은 이를 떠나보내고, 누군가는 멈추지 못하는 식욕을 통해 변심한 애인을 떠나보내기도 한다. 어떤 방식으로든 누군가를 ‘떠나보내기’를 성공하기만 한다면, 그때부터는 새로운 삶이 시작되기에 우리는 필사적으로 누군가의 빈자리를 메우려고 한다. 하지만 종종 극복할 수 없는 상실과 메울 수 없는 빈자리가 있기 마련이다. <파이 이야기>의 저자로 유명한 얀 마텔의 신작 <포르투갈의 높은 산>은 너무나 큰 상처로 인해 자신을 회복하지 못하고 세상을 원망하는 사람들의 이야기이자, ‘포르투갈의 높은 산’으로 대표되는 영적-치유적 공간으로 자신도 모르게 향하는 자들의 이야기다.


<포르투갈의 높은 산>의 등장하는 세 남자, 토마스-에우제비우-피터 토비 모두 사랑하는 이들을 죽음으로 읽은 뒤 고통스러움에 몸부림치는 사람들이다. 1901년 리스본 사람인 토마스는 뒤로 걷는 걸로 슬픔을 표시한다. 세상에게 반기를 들고 자신의 아내와 아들을 앗아간 신께 복수하려는 목적을 달성하기 위해 숙부에게 자동차를 빌려 포르투갈의 높은 산으로 향한다. 1939년 포르투갈의 높은 산 인근 브리간사에 사는 에우제비우는 병리학자로, 자신과 비슷하게 사랑하는 이를 상실한 슬픔을 온몸에 새기면서 살아갔던 이의 시체를 해부하면서 비로소 안식을 얻는다. 마지막 1980년대 캐나다 상원의원을 하던 피터 토비는 아내의 죽음 이후 침팬지 ‘오도’를 입양한 뒤 포르투갈 높은 산에 있는 고향집으로 이주하는 걸로 자신들의 버틸 수 없는 슬픔에 대처한다. 80년이 넘는 시간과 포르투갈의 높은 산이라는 공간을 배경으로 얽히고설킨 그들의 슬픔의 직물은 단순히 개인의 비극을 넘어서 언제나 고통과 슬픔 속에서 자유로울 수 없는 인간의 숙명을 상징하는 것 같다. 그와 동시에, 그 절망이라는 진창 속에서 구원을 찾기 위해 신의 그림자를 좇는 인간의 노력을 보여주기도 한다.


1부는 배경이나 소재 자체에서 파스칼 메르시어의 <리스본행 야간열차>가 떠올랐다. 일상이 낯설어진 한 남자가 우연히 발견한 일기장의 주인을 찾아 여행한다는 내용과, 자신의 슬픔을 극복하기 위해 14세기에 있었던 신부의 일기장을 토대로 신부가 남긴 유물을 찾기 위해 여행한다는 소재에서 어떤 공통점을 보았다. 하지만 차이점도 존재한다. 전자가 타인의 시선에만 신경 쓰다가 ‘나’를 잃어버린 어느 중년의 일탈이라면, 후자는 절절한 슬픔 끝에 신을 원망할 수밖에 없었던 이의 복수극이라는 점이다. 또한 <리스본행 야간열차>는 그 자체로 완결이 되지만, <포르투갈의 높은 산> 1부는 그 말대로 1부이며, 이후의 2-3부를 관통하는 핵심 주제를 구성한다는 점에서 다른 점을 찾을 수 있다.

3부에서 캐나다의 상원의원인 피터 토비가 침팬지 ‘오도’를 입양하고 공존하는 부분은 어쩔 수 없이 얀 마텔의 대표작인 <파이 이야기>를 생각나게 했다. 언어가 통하지 않는 인간과 동물 사이의 교감이 묘사되며, 서로의 존재를 의지함을 통해 한계 상황을 극복해 나가는 과정이 많이 닮았다. 그러나 확실히 ‘호랑이 리처드 파커’와 ‘침팬지 오도’는 위협과 공포 수준이 다르다. 으르렁거리면서 언제 내 목을 물어뜯을지 몰라 계속 감시해야했던 리처드 파커와 달리, 오도는 인간의 언어와 상호작용을 부분적으로나마 이해하도록 훈련 받은 존재다. 다만, 오도에게 남아 있는 ‘야생적 감각’은 과거-현재-미래 사이에서 계속 염려하고 후회를 반복하고 있던 피터 토비에게 지금, 현재에 집중해야한다는 깨달음을 준다.


이 책의 전체적으로 내재되어 있는 종교적 코드는 신앙이 없는 사람이라고 할지라도 불편하게 느껴지기 보다는 더 많은 생각할 거리를 던져줄 것 같다. 이러한 상실의 고통 앞에 ‘신’은 무슨 역할을 하며, 이 슬픔 속에 나를 방치하는 ‘신’은 과연 믿을만한 가치가 있는 것일까? 여러 질문이 떠올리게 하는 여러 장면들이 소설 속에서 지나가던 와중에 나는 한 가지를 깨달았다. 세상에 죽지 않는 사람은 없고, 상실은 일상으로 느껴질 정도로 잦다. 하지만 언제까지 그 슬픔에 빠져서 살아갈 순 없다. 아마 <포르투갈의 높은 산>에서 작가가 말하고자 한 것은 ‘그럼에도 불구하고’ 살아가는 자세이지 않을까?


댓글(0) 먼댓글(0) 좋아요(2)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
처음 처음 | 이전 이전 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |다음 다음 | 마지막 마지막