한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다.
C/C++를 대신해서 메모리 안정성을 위한 언어로 권장되고 있지만 여전히 진입장벽이 높은 것이 Rust입니다. 기존의 다른 언어들에 없거나 느슨하게 적용되는 규칙들이 엄격하게 적용되어서 초반 학습 곡선조차 가파르다고 생각합니다. 러스트에 대해서 꾸준히 관심은 가지고 있지만 시작이 그렇게 쉽지는 않았는데 이번에 오랜만에 다시 리마인드 할 수 있는 책이었습니다.
이 책에서 가장 좋았던 점은 로컬에 환경을 구성하지 않고 실습을 할 수 있도록 Playground 활용이었습니다. 프로그래밍을 처음 시작할 때 가장 힘들었던 것이 언제 업데이트되었는지 알 수 없는 책을 보고 컴파일러나 인터프리터를 설치하고, 에디터에 연결하는 트러블 슈팅이었는데 이 과정없이 실습이 가능하도록 구성되어 있어 바로 코드 작성으로 실습을 시작할 수 있습니다.
한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다.
유튜브, 넥플릭스 등 개인 맞춤화 된 추천 시스템이 보편화 되면서 알고리즘이라는 용어가 흔하게 사용하고 있습니다. 프로그래밍에서 알고리즘은 분리될 수 없는 관계이자 점점 깊어지는 관계입니다. 컴퓨터를 전공하게 되면 자료구조부터 여러과목을 통해 알고리즘에 대한 개념을 익혀가게 됩니다.
그로킹 알고리즘은 알고리즘 문제 풀이를 위한 깊은 구현이나 응용을 이야기하는 책은 아닙니다. 알고리즘이라는 세계를 그림으로 소개해주는 책에 가깝습니다. 알고리즘에 있어 가장 기본인 시간 복잡도부터 NP-완전문제까지 다루고 있습니다.
1. Docker Image perf_analyzer를 사용하기 위해서는 nvcr.io/nvidia/tritonserver:<RELEASE>-py3-sdk를 사용해야 한다. 인퍼런스 서버 구성을 위해서는 sdk가 붙지 않은 버전을 이용해도 문제가 없으나 해당 버전들에서는 perf_analyzer를 위한 환경이 구성되어 있지 않아 권장되지 않는다.
<RELEASE>는 23.03 이후 버전만 가능하다. 2. Docker Compose로 구성해서 사용하기 triton_server: image: nvcr.io/nvidia/tritonserver:23.08-py3 networks: - tis_net ports: - 8000:8000 # HTTP 포트 인퍼런스를 담당하는 서버의 http나 grpc 중 사용하는 포트를 원하는 포트로 바인딩 해주면 된다. 같은 네트워크 내에선 크게 문제 없이 사용할 수 있다.
python 기반 웹 프레임워크라고 하면 대부분 django나 flask 정도를 많이 사용하고 자료 찾기도 용이합니다. 두 프레임워크 모두 풀 스택 프레임워크라서 rest api 서버를 구축하기 위해선 별도의 추가 라이브러리가 필요하고 추가적인 학습이 필요합니다. 아직 1 버전이 나오진 않았지만 fastapi는 이런 문제들을 일부 해결하는 동시에 속도까지 빠른 프레임워크입니다. 프레임워크들은 각자 만들어진 목적과 철학이 다르기 때문에 동일 선상에서 1대 1 비교는 쉽지 않습니다. 그래서 단순 우열을 가리기보다는 내 필요에 맞는 프레임워크가 뭔지를 고민하는게 좋다고 생각합니다.
RUST가 커뮤니티에서 계속 이야기가 나오면서 C/C++을 대체하려는 목적을 가지고 있다는 내용을 볼 때마다 관심을 갖게되는 언어였습니다. 인터프리팅 언어를 메인으로 쓰고 있는 입장에선 사실 컴파일 언어를 다시끔 손대는 것에 묘한 두려움이 있었습니다. 설정과 컴파일 단계에서 고려해야 할 내용들이 큰 걸림돌이었습니다. 처음 rust를 알게 되었을 때 한국어로 된 자료도 별로 없던 시절 언어를 알게 되어 입문 할 엄두도 못내고 있는 상황에서 python을 주 언어로 삼아 일을 시작하게 되어 점점 더 멀어지는 상황이었는데 제이펍에서 책을 제공해주셔서 읽게 되어 재밌는 경험을 했습니다.
오랜만에 기술을 이야기 하지만 기술서적이 아닌 책이었다. 인공지능의 역사를 현대에서 과거로 다시 현대로 넘어오면서 시발점부터 변곡점을 지나 어떻게 인간의 지능과 인공의 지능이 다른 길을 걷게 되었는지 이야기한다.
어떻게 해야 기술을 잘 다룰 수 있고, 인공지능 분야의 엔지니어로 성공할 수 있다고 이야기 하지 않는다. 기술이 어떻게 쓰이고 있고, 갈등들이 생기며 봉합되어 가는 과정을 담담히 적어 내려갈 뿐이다. 알파고 쇼크 이후 우리는 인공지능을 생활에서 점점 자주 접하게 되었고, 2020년 ChatGPT-3 등장 이후 개발자들 사이에서나 유명했어던 OpenAI의 GPT는 초등학생도 과제에 쓰면서 뉴스에서 사회 문제로 다룰 정도로 당연한 기술이 되어버렸다.
노 코드/로우코드라는 용어가 생소하게 느껴질 수 있지만 이미 우리 삶 깊숙이 기술입니다. 직접적으로 코드를 이용하지 않고도 도구를 만들 수 있고, 비주얼 도구 등을 이용해 생산성 도구를 만드는 것이라고 할 수 있습니다.
생산도구 제작의 문턱을 낮춰서 좀 더 다양한 도구를 만들 수 있습니다. 지금 한창 주가를 올리고 있는 OpenAI의 GPT, MS의 Copilot 등도 노 코드/로우코드 툴이라고 볼 수 있습니다. 노 코드/로우코드는 정말 말 그대로 코드가 없거나 적게 쓰는 것을 의미합니다. 이제는 개발자가 아니더라도 어플을 만들고, GPT를 이용해 코드를 스크립트로 업무 자동화 툴을 만드는 등 다양한 일을 하고 있습니다.