create table cat
(
id int auto_increment
primary key,
name varchar(255) not null comment '고양이 이름',
age int not null comment '고양이 나이',
breed varchar(255) not null comment '고양이 종류'
);
소스 생성
Nestjs의 Generator(소스 자동 생성)를 사용하여 cats module을 생성합니다.
nest g resource cats
resource 옵션은 module, controller, service, entities, dto를 한 번에 자동으로 생성합니다.
SYNCRONIZE는 객체와 테이블을 동기화 할때 사용합니다. 즉, 객체가 변경되면 테이블에 자동 반영이 되고, 테이블이 변경되면 객체가 자동 변경되는 기능입니다. 이 기능을 운영서버에서 사용할 때는 주의가 필요합니다. 운영중인 데이터는 용량이 크고, 이런 변화가 있을 경우 문제가 생길 수 있으므로, 만약의 사고를 예방하기 위해서는 이 기능을 "false"로 설정하는 것이 좋습니다.
ENTITIES는 객체가 위치하는 폴더를 의미합니다. 즉, 테이블의 schema를 객체로 만들어 저장하는 파일들이 위치하는 곳입니다.
셋팅이 완료되면 다음과 같이 최상위 모듈에 ormConfig를 추가해 줌으로써 사용이 가능하게 됩니다.
과거에도 AI에 대한 관심이 높아졌던 시기가 여러번 있었습니다. 하지만 이러한 관심은 독감처럼 잠시 유행하다 지나가 버리곤 했습니다. 사람들이 갖고 있는 AI에 대한 기대치가 너무 높았던 것 일까요? 번번히 AI는 그것에 못미치는 성과를 보여주며 실망을 안겨주었습니다.
그러던 중 "딥마인드"라는 영국의 AI 회사에서 개발한 "알파고"가 등장 하였습니다. 알파고는 "이세돌"이라는 바둑계의 젊은 영웅을 4:1로 무찌르면서 엄청난 이슈가 되었습니다. 알파고는 딥러닝이라는 새로운 알고리즘으로 무장하고 인간 바둑계의 무림을 평정한 것이었죠. 그러나 사람들은 바둑이라는 한정된 카테고리이기 때문에 가능할 것이라고 생각 했습니다. 아직까지도 AI가 사람처럼 생각하고 상황에 적절한 답을 주는 것은 어려웠기 때문이었습니다.
그러나 최근 등장한 ChatGPT는 달랐습니다.
이 서비스가 보여주는 답변은 놀라움 그 자체였습니다. 일상의 대화에서 부터 시작해 다양한 분야의 깊이 있는 질문에도 양질의 답변을 내놓습니다. 심지어 철학적인 질문에도 답변을 내어 놓습니다.
ChatGPT에게 "삶의 의미는 무엇일까?"라는 질문을 한번 해보았습니다.
초기 AI는 Rule 기반의 프로그램이었습니다. 하지만 사람이 모든 Rule을 만들수 없다는 한계가 있습니다. 이를 극복하기 위해 사람의 뇌를 흉내낸 인공 신경망이 나오게 되고, 이제 컴퓨터가 스스로 학습을 할 수 있는 환경이 만들어지게 되었습니다.
거기에 하드웨어의 발달, GPU와 같은 고속 컴퓨팅 기술의 발전이 더해짐으로 인해 AI의 처리 속도가 빨라지게 되었습니다.
ChatGPT는 초거대 언어 모델의 AI 챗봇입니다. 이는 최신 딥러닝 기술과 고속 컴퓨팅, 그리고 거대 자본을 등에 업고 탄생한 것입니다. 이제 AI는 단순한 유행이 아닌 새로운 시대의 혁명이 될 수 있는 여건이 마련된 것입니다.
2. AI의 발전이 가져올 개발자 세계의 변화
이런 AI의 발전이 개발자의 삶에는 어떠한 영향을 미칠까요?
이미 프로그래밍 분야에서도 AI를 이용한 기술의 발전이 있었고 대중화 되기 시작했습니다.
ChatGPT에게도 아래와 같이 코드를 요청할 수 있습니다.
Github의 Copilot을 이용하면 내가 작성하고 있는 코드의 맥락을 이해하고 다음 코드를 자동으로 추천해줍니다.
(copilot은 월1만원의 유료서비스입니다) 개발자는 추천 코드가 맞다면 tab키를 눌러 코드를 완성할 수 있고, 다른 추천 코드를 요청할 수도 있습니다. 이런 서비스를 이용하게되면 개발자가 실제로 코딩하는 양이 획기적으로 줄어들게 됩니다.
아래는 Copilot이 코드를 추천해 주는 모습입니다.
이 두가지 서비스(ChatGPT, Copilot) 모두 OpenAI에서 개발한 서비스입니다.
이렇게 개발이 자동화 되면 우리는 좀 더 고차원적인 일을 할 수 있게 됩니다. 대신 우리는 AI에게 일을 시킬수 있는 능력이 필요합니다. 당연히 일을 잘 시키기 위해서는 AI를 잘 이해하는 High Performer가 되어야겠죠.
결국 미래에는 AI를 잘 이해하고 사용하는 개발자가 살아 남을 수 밖에 없을 것입니다.
우리가 학자들처럼 AI의 모든 논문을 이해하고 연구할 필요는 없습니다. 새로운 이론과 기술이 나오고 약간의 시간이 지나면 대중화되는 단계가 오게 됩니다. 우리는 이걸 잘 이용할 수 있으면 되는 것입니다.
2010년경 모바일로 전환되는 시기에 기회가 왔던것 처럼, 어쩌면 지금이 AI로 전환하는 최적의 시기이고 개발자에게는 또다른 기회가 될 것입니다.
애플, 구글, 아마존등이 엄청난 성과를 이어가는 10년이 넘는 세월 동안 마이크로소프트는 오랜 침체를 겪었습니다. 똑똑한 직원들을 뽑아 서로 총질을 시킨다는 그림이 유명해질 정도로 내부에서는 경쟁이치열했습니다.
3대 CEO로 인도 출신 사티아 나델라가 부임한 후 마이크로소프트는 새로운 전성기를 누리게 됩니다. 마이크로소프트의 변화는 내부에서 시작되어야 한다고 생각한 사티아는 직원 평가에 있어서 다음과 같은 변화를 주었습니다.
"나는 다른 사람의 성공에 어떻게 기여 했나?"라는 평가 항목이 새롭게 생긴것입니다. 이전까지는 개인의 성장만이 관심사였다고 한다면, 이제는 내가 다른 사람의 성공을 위해 어떤 기여를 했는가도 중요한 관심이 된것이죠. 이 질문은 서로를 경쟁의 관계에서 파트너십의 관계로 이끌게 되었고, 마이크로소프트 변화에 큰 역할을 했다는 평가입니다.
다음은 마이크로소프트의 커리어 관리를 위한 트레이닝 중 하나입니다.
3시간이 넘는 트레이닝의 대부분이 질문과 오픈 답변으로 이루어진다고 합니다.
하나하나가 깊이 있는 성찰을 끌어내는 질문들이니 천천히 생각해보시면 좋을것 같습니다.
Your big why(일의 목적): 지금 하고 있는 일을 왜 하고 있나요?
Ideal professional self(이상적인 모습): 자신의 어떤 모습을 보고 싶은가요?
Top strengths(자신의 장점): 당신이 가장 잘하는 것은 무엇인가요?
Desired strengths(미래 비전): 미래에 무엇을 더 잘하기를 원하나요?
Career goals(커리어 목표): 짧은 혹은 긴 기간 동안 성취하고 싶은 것은 무엇인가요?
Current job and role(현재의 업무): 지금 맡은 업무를 위해 무엇을 하고 있나요?
Core values(핵심 가치): 절대 양보할 수 없는 가치는 무엇인가요?
Role modles(롤모델): 가장 선망하는 사람은 누구인가요?
Contributions(기여 부분): 당신이 기여할 수 있는 것은 무엇인가요?
Limits and boundaries(한계와 경계): 당신이 하고 싶지 않은 것은 무엇인가요?
이 책은 이러한 마이크로소프트의 변화와 그 변화의 중심에는 좋은 파트너십이 반드시 필요하다는 작가의 이야기들이 담겨 있습니다. 그리고, 여러 인플루언서들의 사례를 통해 우리 생활속에서 파트너십이 갖는 가치에 대해 설명하고 있습니다.
당신은 어떤 관계들을 맺고 있나요? 이런 질문에 대해 다시 생각해 볼수 있게 하는 책이었습니다.