29 5월 2025

[인공지능 기술] [알아봅시다] 개발자의 chatGPT 활용법

[인공지능 기술] [알아봅시다] 개발자의 chatGPT 활용법

25931365-b065-467e-bd43-44127efdf182.png

서론

현대 소프트웨어 개발 환경에서 AI 비서로 자리 잡은 ChatGPT는 단순한 문답을 넘어 다양한 개발 단계에서 생산성을 크게 향상시켜 줍니다. 이 포스트에서는 코드 작성부터 테스트, 문서화, CI/CD 파이프라인 통합까지 개발자가 ChatGPT를 활용할 수 있는 대표적인 방법들을 살펴봅니다.


1. 코드 스캐폴딩(Scaffolding) 및 초기 구조 생성

  • 프로젝트 템플릿 생성

    • “새로운 Django 프로젝트 기본 설정 코드를 생성해줘”

  • CRUD 엔드포인트 초안

    • “Express.js로 users CRUD API 라우터 코드를 짜줘”

  • 디렉터리 구조 제안

    • “React + TypeScript 프로젝트 구조를 어떻게 잡는 게 좋을까?”

 
javascript
// 예시: Express.js CRUD 스캐폴딩 const express = require('express'); const router = express.Router(); // GET all users router.get('/users'async (req, res) => { // ChatGPT가 제안한 기본 로직 }); // POST create user router.post('/users'async (req, res) => { // ... }); module.exports = router;

2. 디버깅 및 오류 해결

  • 에러 메시지 분석

    • “이 Node.js 에러 스택을 보고 원인과 해결 방법을 알려줘”

  • 코드 리뷰를 통한 버그 찾기

    • “다음 함수에서 잠재적인 null 참조 버그가 있을까?”

  • 리팩터링 제안

    • “이 파이썬 함수의 가독성을 높이도록 리팩터링해줘”


3. 코드 문서화 및 주석 작성

  • 함수/클래스 설명 자동 생성

    • “이 함수의 역할을 한 문장으로 요약해줘”

  • README.md 작성 보조

    • “이 프로젝트의 README 템플릿을 작성해줘”

  • 주석 일관성 유지

    • “이 자바스크립트 코드에 JSDoc 스타일 주석을 추가해줘”

 
markdown
/** * @function addTwoNumbers * @param {number} a - 첫 번째 숫자 * @param {number} b - 두 번째 숫자 * @returns {number} 두 수의 합 */ function addTwoNumbers(a, b) { return a + b; }

4. 테스트 케이스 및 자동화 스크립트 생성

  • 유닛 테스트 템플릿

    • “Jest를 이용한 add 함수 테스트 코드를 작성해줘”

  • 통합 테스트 시나리오

    • “API 엔드포인트 /login에 대한 통합 테스트 계획을 제안해줘”

  • 테스트 커버리지 개선 아이디어

    • “이 모듈의 경로 커버리지를 높이려면 어떤 테스트가 필요할까?”


5. 코드 리뷰 및 최적화 제안

  • 성능 병목 분석

    • “이 SQL 쿼리가 느린 원인과 인덱스 최적화 방안을 알려줘”

  • 비효율적 로직 리팩터링

    • “이 루프를 더 효율적인 함수형 스타일로 바꿔줄래?”

  • 보안 취약점 점검

    • “이 PHP 코드에서 SQL 인젝션 취약점이 있나?”


6. 새로운 기술 학습 및 예제 생성

  • 라이브러리 사용 예제

    • “Pandas에서 groupby와 pivot 테이블을 사용하는 예제를 보여줘”

  • 비교 분석

    • “Django와 Flask 중 어느 것을 선택해야 할까?”

  • 공식 문서 요약

    • “React 공식 문서에서 useEffect 훅 사용법을 요약해줘”


7. CI/CD 파이프라인 및 DevOps 자동화

  • GitHub Actions 워크플로우 생성

    • “Node.js 프로젝트용 GitHub Actions 워크플로우 YAML을 생성해줘”

  • Dockerfile 최적화

    • “이 Dockerfile을 멀티스테이지 빌드로 최적화해줘”

  • 배포 스크립트 작성

    • “AWS EC2에 배포하는 Bash 스크립트를 작성해줘”


8. 커밋 메시지 작성 및 이슈 템플릿

  • 의미 있는 커밋 메시지

    • “다음 변경 내용을 설명하는 커밋 메시지를 작성해줘: 사용자 로그인 로직 수정, JWT 토큰 방식으로 변경”

  • 이슈 템플릿 자동 생성

    • “버그 리포트용 GitHub 이슈 템플릿을 만들어줘”


결론

ChatGPT는 단순히 대화형 AI를 넘어, 개발 생산성을 높여주는 올인원 도구로 발전했습니다.
코드 스캐폴딩에서부터 디버깅, 테스트, 문서화, DevOps 자동화에 이르기까지 일련의 개발 과정을 ChatGPT와 협업함으로써 더 빠르고, 더 안정적이며, 더 효율적인 소프트웨어를 구현할 수 있습니다.
오늘 바로 ChatGPT를 개발 워크플로우에 통합해 보세요!


이 글이 도움이 되었다면, 댓글과 공유 부탁드립니다!

Loading

28 5월 2025

[인공지능 기술] Gradio 설치 및 실행 방법

[인공지능 기술] Gradio 설치 및 실행 방법

1. Gradio란 무엇인가?


Gradio는 Python으로 개발된 오픈 소스 패키지이다.
Gradio를 사용하면 몇 줄의 코드로 ML 모델, API 또는 임의의 Python 함수에 대해 사용하기 쉽고 커스터마이징할 수 있는 UI 구성 요소를 빠르게 생성할 수 있다.
Gradio GUI를 Jupyter 노트북에 직접 통합하거나 링크로 다른 사람과 공유할 수도 있다.

00 image.png 

2. Gradio 설치


Gradio를 설치하는 방법은 다음과 같다.
터미널에서 다음 명령을 실행하거나 Google Colab에서 실행할 수 있다.

pip install gradio

 Jupyter Notebook을 사용하는 경우에는 다음과 같이 입력한다.

!pip install gradio

 

3. Gradio 애플리케이션을 실행하는 방법


Gradio 애플리케이션을 실행하는 방법을 알아보자.
다음은 사용자의 이름을 입력받아 인사 메시지를 생성하는 간단한 Python 애플리케이션이다.

#!pip install gradio
import gradio as gr

def user_greeting(name):
    return "안녕하세요! " + name + "님, 첫 번째 Gradio 애플리케이션에 오신 것을 환영합니다!????"

app = gr.Interface(fn=user_greeting, inputs="text", outputs="text")
app.launch()

???? 에러 메시지 발생 (ModuleNotFoundError: No module named 'tqdm')

  • 내가 코드를 실행 했을 때는 위와 같은 에러 메시지가 발생 했는데, 에러 메시지에 따르면 gradio 모듈을 찾을 수 없고, gradio 모듈의 일부 파일에서 tqdm 모듈을 찾을 수 없다고 한다.

???? 해결 방법

  • gradio와 tqdm 모듈의 호환성 문제가 있을 수 있기 때문에 gradio와 tqdm 모듈을 최신 버전으로 업데이트 하였다.
    pip install -U gradio
    pip install -U tqdm
    • Gradio 애플리케이션이 실행되었다.

 

명령 프롬프트에서 Gradio 응용 프로그램 실행

Gradio 애플리케이션을 명령 프롬프트에서 실행할 수 있다.
명령 프롬프트에서 다음과 같이 입력한다.

python app.py


애플리케이션을 실행하면 다음의 URL을 열어서 결과를 확인할 수 있다: http://127.0.0.1:7862

  • 이 URL은 각자의 환경에 따라 다를 수 있다.

 

Jupyter Notebook에서 Gradio 애플리케이션 실행

Jupyter Notebook에서 코드를 실행할 수도 있다.
인터페이스를 생성한 후 app.launch()를 사용하여 애플리케이션을 실행할 수 있다.

app = gr.Interface(fn=user_greeting, inputs="text", outputs="text")
app.launch()
  • 이렇게 하면 새로운 위젯이 생성된다.

[출처] Gradio 설치 및 실행 방법

Loading

25 5월 2025

[chatgpt] [ChatGPT] Function calling

 

 

Function Calling이란?

Chatgpt Chat Completions API를 사용하면, 질문을 하고 답변을 얻을 수 있다.
Function Calling을 사용하면, 질문에 적합한 애플리케이션 함수와 매개변수를 추천받을 수 있다. 

즉, 애플리케이션에서 어떤 함수를 호출하는게 좋을지 gpt에게 물어볼 수 있는 기능이라고 볼 수 있다.

예제코드

open ai에서 가져온 파이썬 예제 코드이다. 한줄한줄 읽어보면, 어떤 방식으로 사용하는 건지 쉽게 감이 온다. 

import openai
import json


# 항상 같은 날씨를 리턴하는 예시용 더미 함수이다. 
# 실제 개발환경에서는 상황에 맞는 코드를 구현해야한다.
def get_current_weather(location, unit="fahrenheit"):
    """Get the current weather in a given location"""
    weather_info = {
        "location": location,
        "temperature": "72",
        "unit": unit,
        "forecast": ["sunny", "windy"],
    }
    return json.dumps(weather_info)


def run_conversation():
    # Step 1: chatgpt에게 질문과 이용할 수 있는 함수 목록을 전달한다. 
    messages = [{"role": "사용자", "content": "서울 날씨는 어때? "}]
    functions = [
        {
            "name": "get_current_weather",
            "description": "위치를 전달하면, 현재 날씨를 알려준다",
            "parameters": {
                "type": "object",
                "properties": {
                    "location": {
                        "type": "string",
                        "description": "구군시  전달한다. ex. 서울특별시",
                    },
                    "unit": {"type": "string", "enum": ["celsius", "fahrenheit"]},
                },
                "required": ["location"],
            },
        }
    ]
    response = openai.ChatCompletion.create(
        model="gpt-3.5-turbo-0613",
        messages=messages,
        functions=functions, # 이 곳에서 함수 정보를 전달한다.
        function_call="auto",  
    )
    response_message = response["choices"][0]["message"]

    # Step 2: GPT에서 함수 호출을 하라고 했는지 확인하기 
    if response_message.get("function_call"):
        # Step 3: GPT에서 호출하라고 한 함수를 실제로 호출하기 
        available_functions = {
            "get_current_weather": get_current_weather,
        }  # 이 예제에서는 호출할 수 있는 함수를 1개만 두었지만, 실제로는 여러개를 추가할 수 있다. 
        function_name = response_message["function_call"]["name"] // GPT가 제안한 함수 이름 확인하기 
        fuction_to_call = available_functions[function_name] // GPT가 제안한 함수 할당하기  
        function_args = json.loads(response_message["function_call"]["arguments"])
        function_response = fuction_to_call(
            location=function_args.get("location"),
            unit=function_args.get("unit"),
        ) # GPT가 제안한 함수를 GPT에서 찾은 매개변수로 전달하기 

        # Step 4: 함수 호출로 얻은 결과를 gpt에게 다시 보내주기 send the info on the function call and function response to GPT
        messages.append(response_message)  # API으로 호출받은 값을 확장하기 
        messages.append(
            {
                "role": "function",
                "name": function_name,
                "content": function_response,
            }
        ) 
        second_response = openai.ChatCompletion.create(
            model="gpt-3.5-turbo-0613",
            messages=messages,
        )  # gpt에게 응답 결과 다시 전달하기 
        return second_response


print(run_conversation())

참고

https://platform.openai.com/docs/guides/gpt/function-calling
https://github.com/joshlong/chatgpt-spring-boot-starter
https://github.com/openai/openai-cookbook/blob/main/examples/How_to_call_functions_with_chat_models.ipynb

출처: https://americanopeople.tistory.com/427 [복세편살:티스토리]

Loading

15 4월 2025

[인공지능 기술] Replit Agent 사용법 – AI 기반 코딩 도구로 쉽게 개발하기

[인공지능 기술] Replit Agent 사용법 – AI 기반 코딩 도구로 쉽게 개발하기

Replit Agent 사용법 – AI 기반 코딩 도구로 쉽게 개발하기

 · 7 min read
프롬프트해커 대니

다양한 분야에서 AI를 할용하는 ChatGPT전문가. 스타트업 창업, 개발자, 구글 SEO 성공 경험을 바탕으로 실용적인 AI사례를 발견합니다.

프로그래밍을 처음 접하는 분들에게 개발 환경 설정은 큰 걸림돌이 될 수 있습니다. 하지만 Replit라는 온라인 통합개발환경(IDE)을 사용하면 별도의 설치 없이 브라우저에서 바로 코딩을 시작할 수 있습니다. 최근에는 AI 기반 코딩 도우미 Replit Agent까지 추가되어 더욱 편리해졌습니다. 이번 글에서는 Replit과 Replit Agent의 사용법을 자세히 알아보겠습니다.

Replit 이란?

Replit은 웹 브라우저에서 바로 실행할 수 있는 온라인 IDE입니다. 별도의 설치 없이 코드를 작성하고 실행할 수 있어 초보 개발자들에게 큰 도움이 됩니다. 또한 다양한 프로그래밍 언어를 지원하고 협업 기능을 제공하여 팀 프로젝트에도 활용할 수 있습니다.

01 what-is-replit-35afbf33bef30d825ee6ca617d431144.png

오늘은 Replit의 다양한 기능중 AI 기반 코딩 도우미인 Replit Agent 사용법에 대해 자세히 알아보겠습니다.

Replit Agent 사용법

Replit Agent는 AI 기반 코딩 도우미로, 자연어 프롬프트를 이해하고 코드를 생성할 수 있습니다. 이를 통해 모든 수준의 개발자가 소프트웨어 개발에 더욱 쉽게 접근할 수 있습니다.

1) Replit 웹사이트에 접속 하고 로그인 합니다.

02 replit-first-screen-e1e4b377450cddd1584165106bb17238.png

2) Replit Agent에게 구축할 내용을 자연어로 입력합니다.

아래와 같은 프롬프트를 입력하여 Replit Agent에게 코드를 생성해달라고 요청할 수 있습니다.

03 replit-agent-prompt-example-10c36aff3fc2c20c1287a6461b865129.png

Replit Agent 프롬프트

주식 종목 코드를 입력하면 재무 데이터 요약을 얻고 싶습니다. 주가와 다른 주요 재무 정보를 추적하는 표와 차트를 보여주세요. Yahoo 파이낸스의 데이터를 사용해 주세요. 표 데이터를 CSV 파일로 다운로드할 수 있게 해주세요.

3) Agent가 생성한 계획을 검토하고 수정합니다.

프롬프를 입력 하면 Replit Agent가 코드를 생성하고, 생성된 코드를 검토하고 수정할 수 있습니다.

04 replit-planning-e10b74f87031825db3d9f54196829abf.png

코드 생성 계획이 마음에 들면 ‘Approve plan & Start’ 버튼을 클릭하여 코드 생성을 시작합니다.

4) Replit Agent 의 진행 상황을 모니터링하고, API 키나 피드백 등을 제공합니다.

Replit Agent 가 코드를 생성하는 동안 진행 상황을 모니터링하고, 필요한 정보를 입력하거나 추가 질문을 할 수 있습니다.

아래와 같이 Replit Agent가 라이브러리 설치도 자동으로 진행됩니다. 05 replit-install-9797b3382e6fd1d0d64bab10bf4d0c5c.png

라이브러리 설치 과정이 비개발자 입장에서는 어려울수 있지만 Replit Agent가 자동으로 처리해주기 때문에 사용자는 코드 생성에만 집중할 수 있습니다.

5) 생성된 코드 확인

이렇게 코드 작성이 완료 되면 코드와 함께 실행 결과를 preview로 보여 줍니다.

06 replit-agent-result4-9cb89a0503143a72b98f7c205ce6bb6e.png

코드 뿐만 아니라 실행 결과를 아래와 같이 preview로 보여 줍니다.

07 replit-agent-result1-f34a0b0a592e29b5cbee939512fcc240.png

아래와 같이 특정 주식의 Symbol을 입력 하면 주식 정보를 보여줍니다.

08 replit-agent-result2-3fde3e875b9fee4a6efe6fdcf989e92d.png

아래 차트 까지 잘 그려준 걸 볼 수 있습니다. 09 replit-agent-result3-1c1a01f23123dd991b20885c45872b62.png

6) 최종적으로 애플리케이션을 배포합니다.

이렇게 작성된 코드를 작성 하는것 뿐만 아니라 서버에 배포 까지 할 수 있습니다.

협업 기능

Replit은 다른 사용자를 프로젝트에 초대하여 실시간으로 협업할 수 있는 기능을 제공합니다.

  1. 왼쪽 패널에서 “Invite” 버튼을 클릭합니다.
  2. 이메일 주소나 Replit 계정 이름을 입력하여 초대합니다.
  3. 또는 “Private Invite Link”를 복사하여 공유할 수 있습니다.

초대받은 사용자는 코드를 실시간으로 수정할 수 있으며, 다른 사용자의 커서 움직임도 확인할 수 있습니다.

기타 기능

  • 다양한 테마와 에디터 설정을 제공하여 개인 취향에 맞게 커스터마이징할 수 있습니다.
  • 파일 업로드/다운로드, 버전 관리 등의 기능을 지원합니다.
  • 유료 플랜을 구독하면 더 많은 기능과 리소스를 사용할 수 있습니다.

Replit은 비개발자인 초보자부터 전문가까지 모든 개발자가 쉽고 편리하게 코딩할 수 있는 환경을 제공합니다. AI 기반 Replit Agent의 도입으로 소프트웨어 개발 접근성이 한층 더 향상되었습니다. 브라우저만 있다면 언제 어디서나 Replit으로 코딩을 시작해보세요!

[출처] https://www.magicaiprompts.com/blog/replit-usage-guide

Loading

8 4월 2025

[一日30分 인생승리의 학습법] [알아봅시다] 블록체인 게임들의 가능성과 미래

[一日30分 인생승리의 학습법] [알아봅시다] 블록체인 게임들의 가능성과 미래

ChatGPT Image 2025년 4월 8일 오후 07_26_42.png

학습 차원에서 틈틈이 해외 전문가들이 블로그나 미디어 그리고 책에서 쓴 글을 번역 또는 요약 정리하고 있습니다. 이번 포스팅도 그중 하나고요. 거칠고 오역된 부분이 있을 수 있습니다. 제대로 번역되지 않은 부분은 확인 주시면 반영토록 하겠습니다. 이번글은 뱅크리스에 올라온 글을 정리한 것입니다.

2087년 이더리움이 마침내 주류가 되고 연준이 더 이상 존재하지 않게 되면, 역사학자들은 암호화폐의 기원을 2011년 블리자드가 비탈릭 부테린의 월드 오브 워크래프트 캐릭터에 ‘생명을 빨아들이는’ 주문을 너프(nerf)했던 운명적인 순간으로 거슬러 올라갈 것이다.

이 이야기는 15살의 비탈릭이 ‘중앙 집중식 서비스의 공포’에 눈을 뜨게 했고, 마침내 중앙 집중식 비디오 게임의 광기를 종식시킨 이더리움이 탄생하게 된 계기가 됐다.

적어도 우리는 그 방향으로 가고 있다.

안타깝게도 대부분의 기존 블록체인 게임들은 마케팅 페이지를 장식하는 무허가(permissionless) 상호 운용성과 진정한 소유권이라는 멋진 약속에도 불구하고 여전히 위의 검열 사례에 적용을 받을 수 있다.

현재 블록체인 게임들의 (거짓) 약속(The (false) promises of today’s blockchain games)

잠시 시간을 거슬러 올라가 블록체인의 목적을 다시 떠올려 보자. 블록체인은 분산된 데이터베이스에 대한 공유 합의를 촉진하는 역할을 한다. 사람들이 동의하지 않을 때 전체 암호화폐 커뮤니티가 체인 분할을 진행하기 위해 많이 노력하는 것도 이 때문이다. 포킹( Forking)은 화해할 수 없는 차이들 사이에서 합의를 재조정한다.

그렇다면 도대체 왜 블록체인을 기반으로 게임을 개발할까?

같은 이유:비탈릭이 자신이 사랑하던 흑마법사를 약화시키기로 한 블리자드의 결정에 동의하지 않았던 것처럼, 사람들은 게임 세계를 어떻게 구축해야 하는지에 대해 근본적으로 동의하지 않는다. 따라서 블록체인을 통한 게임의 진정한 가능성은 분열된 게임 커뮤니티가 서로의 차이를 해결할 수 있도록 하는 것이다.

문제는 대부분의 블록체인 게임이 여기에 미치지 못한다는 것이다. 액시 인피니티나 크립토키티와 같은 게임은 최소한의 온체인 게임이다. 자산은 온체인 데이터로 존재하지만, 게임의 기본 로직(게임 규칙)과 상태(게임 내 행동 기록)는 중앙화된 게임 서버, 오프체인에 있다.

물론 개인 키를 안전하게 보관하는 한, 당신의 액시(Axie) NFT와 토큰은 불변하는 스마트 컨트랙트 내 데이터로 영원히 존재한다. 하지만 엑시를 개발한 스카이 마비스가 문을 닫는다면, 당신의 엑스 자산 가치도 사라질 것입니다. 소유권은 단순히 지갑에 데이터를 보호하는 것 이상의 의미를 갖는다. 소유권은 해당 데이터가 어디에 있는지, 즉 게임 규칙을 통제하고 발언권을 가질 수 있는 힘이기도 하다.

이들 자산의 금전적 가치는 전적으로 스카이 마비스가 엑스 인피니티 생태계를 상업적인 제품으로 성공적으로 제공할 수 있는 능력에 달려 있다. 웹 3.0으로 광고되지만 플레이어는 오프체인과 중앙에서 계획된 게임의 기본 규칙을 거의 제어할 수 없기 때문에 웹 2.5에 더 가깝다.

실제 웹 3 게임들의 아키텍처(The architecture of actually Web3 games)

검열이 불가능하고 막을 수 없는 블록체인 게임을 만들려면 어떻게 시작해야 할까? 구브시프의 ‘가장 강력한 크립토 게임 논문’에 따르면: 

게임의 로직과 상태는 온체인에 있다. 게임의 규칙(이동, 전투, 채집, 소비 방법)은 오픈소스 및 온체인 스마트 컨트랙트에 규칙으로 포함되어야 한다.

모든 게임 데이터는 블록체인에 있으므로 상호 운용이 가능하다. 게임은 클라이언트에 구애받지 않는다. 

핵심 개발자가 내일 사라져도 플레이어는 게임을 계속 플레이하기 위해 개발자에게 의존할 필요가 없으며, 커뮤니티에 있는 사람들이 플레이어 움직임을 온체인으로 전송하는 자체 클라이언트를 만들 수 있다.

위의 조건들이 충족되면 몇 가지 중요한 일이 일어나기 시작한다.

퍼미션리스 혁신(Permissionless Innovation)

온체인 게임 로직은 첫째 회사가 파산하거나 개발을 포기하더라도 디파이 프로토콜이 영구적으로 실행되는 것과 같은 방식으로 게임 세계는 영속성을 확보하고 계속 존재한다. 로난 샌드포드의 말처럼, 온체인 게임은 ‘현실 독립성'(reality independence)을 제공한다.

둘째, 퍼미션리스 혁신에 문이 열려 있다. 모든 플레이어는 기본 게임 규칙(즉, 디지털 물리를 참조하는 스마트 컨트랙트 형태로 두 번째 레이어 규칙(큐리오는 이를 사용자 생성 로직이라고 부름)을 도입해 게임을 창의적으로 ‘모드'(mod: 게이머가 게임에 새로운 기능을 추가하는 것)할 수 있다.

이것은 혼란스럽게 들일 수 있지만 그렇지 않다. 이것은 간단히 말해 개발자가 기존 프로토콜 위에서 허가 없이 새로운 프로토콜을 구축하는 디파이 결합성 101((one-oh-one으로 발음, 모든 분야의 초보자 대상으로 준비된 과정)이다.

세컨드 레이어 규칙들이 기본 규칙을 위반하지 않는 한, 허용된다. 세컨드 레이어 규칙은 개인 사용자 인터페이스와 로컬 경험만 변경하는 기존 게임들의 애드온/모드와 달리, 다른 모든 플레이어와 공유하는 가상 게임 경험에 영향을 미치는 온체인 스마트 컨트랙트에 내장된다는 것을 주목할 필요가 있다.

예를 들어, 체스 말의 고전적인 움직임을 유지하기로 결정한 완전 온체인 체스 게임은 핵심 개발자의 스마트 컨트랙트에 고전적인 규칙을 협상할 수 없고 변경할 수 없는 것으로 명시할 것이다. 기사는 L자 모양으로만 움직일 수 있고 비숍은 대각선으로만 횡단할 수 있다.

하지만 누구나 이러한 변경 불가능한 디지털 물리학 위에 새로운 세컨드 레이어 규칙을 만들 수 있다. 토큰, 길드 시스템, 상대방의 왕을 점령해 게임에서 승리하는 대신 내 왕을 보드 반대쪽 끝으로 이동시켜야 승리하는 RPG와 같은 퀘스트 라인이 될 수 있다. 토큰 화폐를 통해 죽은 왕을 다시 사거나 상대방과 왕을 교환하는 거래 시스템을 도입할 수도 있다. 기본 규칙의 논리가 허용하는 한 무엇이든 가능하다.

진정한 상호 운용성(True Interoperability)

온체인 게임에서 자산은 하나의 엄격한 게임 로직에 얽매이지 않으며, 가장 넓은 의미에서 최대한 상호 운용이 가능하다. 디파이에서 수천 개 토큰이 자체 규칙 세트, 즉 토큰노믹스 모델을 기반으로 서로 경쟁하는 것과 마찬가지로, 게임 자산은 지속적으로 확장되는 게임 세계에서 또 다른 토큰으로 존재하기도 한다.

반면, 에픽은 포트나이트 게임 자산을 게임 라이브러리 내에서 상호 운용할 수 있도록 허용할 수 있지만, 개발자가 허용하는 경우에만 상호 운용이 가능하다. 웹 2.5 블록체인 게임의 게임 자산도 마찬가지다.

강력한 인센티브(High-Powered Incentives)

이제 퍼즐의 마지막 조각인 인센티브에 대해 알아보자. 기존 게임에는 매우 활발한 모딩 커뮤니티가 많지만, 핵심 개발자의 의지에 따라 운영된다. 마인크래프트 역사가 대표적인 사례다.

경제적인 측면에서 보면 모더들(modders) 재산권은 약하기 때문에 창작에 대한 인센티브가 약하다. 따라서 모드는 일반적으로 이타주의에 기반한 애호가나 취미로 운영되는 경우가 많다.

완전한 온체인 게임은 이 문제를 해결한다. 온체인 게임에서는 생성된 모드가 검열할 수 없고 영구적인 창작물(앞서 언급한 두 번째 레이어 규칙)이 불변의 스마트 컨트랙트에 코드화되므로 플레이어가 모드를 만들려는 인센티브가 더 강력해진다.

토큰, 게임 메커니즘, 사회적 제도, 게임 내에서 플레이어가 만든 규칙의 근간이 되는 소유권 규칙은 플레이어가 완전히 통제할 수 있으며, 허가된 게임 로직과 규칙의 기본 세트에 구속되지 않는다. 가장 중요한 것은 게임 경제 내에서 플레이어가 만든 다른 창작물과 경쟁한다는 것이다.

따라서 온체인 게임 세계에서는 핵심 게임 개발자가 일방적으로 바뀌는 게임 기본 규칙에 대해 스스로 손을 묶는 것을 약속한다. 이것이 바로 비탈릭의 월드 오브 워크래프트 툰(toon)을 살릴 수 있는 방법이다. 게임 독재의 시대는 지나갈 것이다. 이론은 충분했으니 이제 온체인 게임의 몇 가지 예를 살펴보자.

온체인 게임들 살펴보기(Looking at on-chain games)

다크 포레스트는 아마도 온체인 게임의 최고 예일 것이다. 0xPARC 재단의 Gubsheep이 개발한 다크 포레스트는 2019년부터 그노시스(Gnosis)  체인에 배포된 우주를 테마로 한 멀티플레이어 전략 게임이다.

다크 포레스트의 전체 게임 로직과 상태는 온체인에 포함돼 있다.  기존 온라인 게임과 달리 게임 동작을 처리하거나 게임 상태를 저장하는 중앙화된 서버나 데이터베이스가 없다.

앞서 설명한 것처럼, 온체인 게임의 마법은 플레이어가 온체인 속성을 활용해 자발적으로 생성할 수 있는 새로운 주문에 있다. 다크 포레스트에는 이러한 예가 무궁무진하다. 다크 포레스트 플레이어들은 핵심 개발자가 거래 시스템이나 경매장을 위한 패치를 도입하지 않고도 게임 내 자원을 거래할 수 있는 게임 내 마켓플레이스를 만들었다.

다크 포레스트에는 길드 시스템이 내장돼 있지 않기 때문에, 몇몇 플레이어(DFDAO)는 외부 스마트 컨트랙트를 통해 자체적으로 퍼미션리스 온체인 길드 시스템을 구축했다. 이를 통해 많은 소규모 플레이어가 완전히 무신뢰(trustless) 방식으로 자원을 조정하고 모을 수 있었고 숙련된 플레이어가 지배하는 리더보드에서 경쟁력을 갖추기 위한 의도로 사용됐다. DFDAO 블로그에 설명된 대로

DFDAO는 또한 다크 포레스트 게임을 완전히 다른 체인으로 포크했다. 다크 포레스트 아레나라는 포크 버전은 다양한 새로운 게임 모드를 도입했다. 다른 MMORPG에서는 이러한 모든 행위가 불법, 암시장 거래 또는 “해킹”으로 간주될 것이다.  다크 포레스트와 같은 온체인 게임에서는 모든 것이 허용되고 코드 상에서 실행된다.

커뮤니티가 주도한 긴급 명령의 예는 Lattice 팀이 만든 마인크래프트 온체인 버전인 OPCraft에서도 찾아볼 수 있다.  OPCraft의 초기 테스트 출시에서 플레이어들은 자원 수집을 자동화하고, 서로 채팅하고, 맵을 텔레포트하고, 월드 색상을 변경하는 플러그인을 만들었다.

SupremeLeaderOP라는 이름의 한 플레이어는 온체인 스마트 컨트랙트를 배포해 일련의 규칙이 포함된 공산주의 공화국을 만들었다. 자발적으로 공화국에 가입한 모든 플레이어는 사회주의 철학에 따라 기존의 모든 재산을 포기하고 재고를 공동의 국고로 통합해야 했다.

물론 게임에서 긴급 명령의 예는 새로운 것이 아니다. 이브(eve) 온라인 플레이어들은 게임 제작자가 게임 내 길드 도구를 만들지 않았을 때 디스코드(Discord)에서 오프라인 소셜 동맹을 조직했다. 에버퀘스트와 월드 오브 워크래프트 플레이어들은 비공식적인 소셜 화폐 시스템인 ‘DKP(드래곤 킬 포인트)’를 개발해 게임 내 공격대에 투입한 시간에 따라 플레이어를 관리하고 보상을 제공했다.

완전 온체인 게임들에 장애물들(Obstacles to fully on-chain games)

온체인 게임이 그렇게 훌륭하다면 왜 더 널리 보급되지 않았을까? 온체인 게임이 직면한 가장 명백한 장애물은 확장성이다. 모든 플레이어 행동을 온체인으로 전송하는 것은 연산 집약적이기 때문에 대부분의 온체인 게임은 이더리움 메인넷이 아닌 턴 기반(turn-based) 게임이다. 온체인에 영구적으로 존재하는 변경 불가능한 코드는 개발자 부주의로 인해 발생하는 익스플로잇을 패치하기 어렵다는 것을 의미한다.

퍼미션리스 게임은 또한 기회주의적인 플레이어와 봇에게 문호를 개방하는 것을 수반한다. 기존 블록체인 게임인 엑시(Axie)나 페가시(Pegaxy)는 비용이 많이 드는 진입 장벽을 통해 이를 어느 정도 완화하고 있으며, 기존 게임들은 KYC 방법과 선별적 차단을 통해 이러한 문제를 해결하지만, 퍼미션리스 온체인 게임에서는 이러한 중앙화된 수단을 사용할 수 없다.

어떤 면에서 온체인 게임의 문제는 사회적 고착화와 집단 행동 문제로 인해 변화하기 어려운 불완전한 현실 세계 제도(제국주의 체제나 민주주의 정치를 생각해보라)와 매우 유사하다. 커뮤니티와 핵심 개발자 모두가 이러한 문제에 직면해 나쁜 행동을 노골적으로 검열하기보다는 기업가적인 해결책과 창의적인 메커니즘 설계를 통해 나쁜 행동을 억제해야 한다.

이러한 창작물이 다른 점은 게임의 개방적인 구성 덕분에 허가 없이 생성되고 온체인에 내장된다는 점이다.. OPCraft 공산주의 공화국 플레이어들은 그가 누구인지 몰랐지만, 그가 약속을 지킬 것이라는 믿음을 가질 필요는 없었다.

그노시스 체인 기반 외교 전략 게임인 Conquest에서 플레이어는 xDAI 토큰을 스테이킹해 우주선을 생산하고, 동맹을 맺고, 문명 방식으로 서로를 공격한다. 다시 말하지만, 온체인 스마트 컨트랙트를 생성할 수 있다는 것은 플레이어 동맹이 실제 가치가 있는 자산에 묶여 있다는 것을 의미하며, 플레이어 동맹 간 신뢰 없는 상호작용을 보여준다.

온체인 게임에 대한 간단한 참고 사항(A quick note on on-chain game)

온체인 게임은 아직 개념 증명 단계에 머물러 있다. 개발자들은 여전히 최적의 확장 방법을 찾기 위해 노력하고 있으며, 용어 또한 산재되어 있다. 래티스(Lattice)는 이를 자율 세계(Autonomous Worlds)라고 부르고, 비블리오테카(Bibliotheca ) DAO에서는 영원한 게임, 이터널 게임스(Eternal Games) 플레이에서는 무한 게임, 토폴로지에서는 온체인 현실(on-chain realities)이라고 부릅니다. 당신은 아이디어를 얻을 수 있다.

위의 예시는 온체인 게임에서 떠오르는(emergent orders )  몇 가지 사례들일 뿐이지만, 가능성은 무궁무진하다. 모든 디앱의 루트가 블록체인에 공유 상태로 존재하기 때문에 디파이의 오픈소스 구성성을 통해 토큰이 상호 운용되고 다양한 방식으로 잘게 쪼개질 수 있는 것처럼, 블록체인을 완전히 수용하는 게임도 마찬가지일 것이다.

게임 내 통화로 나만의 ERC20 토큰을 발행하라. 종교, 국가, 파벌 등 상상할 수 있는 모든 사회 구조를 형성하고 이를 체인에 올려보라. 보상이나 처벌이 포함된 퀘스트 라인을 토큰으로 작성하고 이를 변경 불가능한 스마트 컨트랙트에 연결해 보라.

기존 게임처럼 현실 세계와 분리되어 있지 않기 때문에 이를 ‘게임 내 경제’라고 부르는 것은 잘못된 명칭이다. 이는 크리에이터와 플레이어 간 경계를 허무는 현실 세계의 가치 경제이고 블록체인에 영구적으로 존재한다. 블록체인은 개인이 자발적으로 내리는 수많은 결정에서 새로운 생산과 거래 방식을 자유롭게 실험하며 지속적으로 발전할 수 있는 역량을 갖추고 있으며, 플레이어가 경제적 가치를 포착할 수 있는 무한한 길을 제공한다.

마무리하며

이 글에서 기존 블록체인 게임에 대해 혹평했지만, 웹 2.5 게임이 여전히 기존 게임보다 더 강력한 소유권을 제공한다는 점은 주목할 가치가 있다. 웹 2.5 게임은 적어도 플레이어가 자유롭게 게임을 종료할 수 있다. 자산이 지적 재산으로 보호되어 판매할 수 없는 기존 게임과 달리, 플레이어는 게임 내 토큰을 판매하고 자신의 시간에 대한 보상을 받을 수 있다.

하지만 웹 2.5 게임이 기존 게임보다 나은 점은 완전한 온체인 게임과 비교했을 때 미치지 못하는 것이기도 하다.

오프체인 게임 로직은 게임이 블록체인 기술의 잠재력을 충분히 활용하지 못하도록 방해한다. 완전한 온체인 게임만이 개방적이고 퍼미션리스 블록체인 인프라가 허용하는 인간의 독창성을 제대로 활용할 수 있다.

가장 위대한 비디오 게임 타이틀과 장르 중 일부는 ‘창발적 질서(emergent order)’의 부산물이다. 이 게임들은 게임 애호가와 취미로 게임을 즐기는 사람들이 “일단 해보고 보자”라는 공통된 패턴을 보여준다. 선풍적인 인기를 끌었던 MOBA(도타)와 타워 디펜스 장르는 모두 워크래프트 3 커스텀 게임 모딩 커뮤니티의 창작물에서 비롯됐다. 배틀그라운드: 배틀그라운드는 원래 FPS 슈팅 게임인 DayZ의 모드로, 다른 FPS 슈팅 게임인 아르마 2의 모드였다. 카운터 스트라이크는 90년대 가장 인기 있었던 게임 중 하나인 하프라이프의 모드였다. 온체인 게임은 이를 한 단계 더 발전시킨 것이다.

[출처] https://brunch.co.kr/@delight412/538

Loading

29 3월 2025

[인공지능 기술] 바닥부터 시작하는 인공지능  [수학공부]인공지능을 위한 수학 총정리/ 요약본 다운로드

[인공지능 기술] 바닥부터 시작하는 인공지능  [수학공부]인공지능을 위한 수학 총정리/ 요약본 다운로드

안녕하세요. 오늘은 “인공지능을 위한 수학”이라는 책을 읽은 감상을 남겨보려고 합니다. 우선, 이 책은 일본에서 출판된 책인데요, 

 

 

[요약본] 딥러닝을 위한 수학 Math.pdf

 

 

딥러닝, 머신러닝에 입문하는 사람들 중 수학에 해박하지 않은 사람들을 위해 기본적이지만 핵심적인 수학적 내용을 담고있는 책입니다.

물론 저도 수학을 좋아하기는 해도 막상 딥러닝을 공부하다보면 애매하게 느껴지거나 잘 이해가 안되는 수학적인 부분이 있었는데요, 이 책을 읽고 나서 상당부분 해결이 됐고, 조금은 자신감이 생긴것 같습니다.

 

 

 

이 책은 문과를 졸업한 사람도 충분히 읽을 수 있도록 친절하게 설명되어있어요. 삼각함수, 미분, 선형대수, 통계와 같은 기본적인 내용들과 함께 자연어처리, 이미지처리에서 쓰이는 수학적인 부분들도 쉽지만 꽤 자세하게 설명이 되어있기 때문에 도움이 많이 되었습니다.

머신러닝, 딥러닝에 입문하시는 분이시라면 꼭 읽어보시기를 추천드려요.

 

 

 

하지만 이런저런 공부를 하다보면 시간이 충분하지 않죠. 그래서 오늘은 제가 읽고 핵심내용을 정리한 요약본은 여러분께 공유하고자 합니다.

 

 

직접 제작한 표지

 

제가 모르는 부분을 중점적으로 정리한 것이기 때문에 요약본만 보고는 이해가 완벽하지 않을 수 있기 때문에 모르는 부분은 책을 더 참고하시거나, 아니면 댓글로 남겨주시면 제가 시간이 될때 답변 해드리도록 할게요! 

 

 

아래 이미지는 어떤식으로 정리되어있는지 보여드리기 위한 샘플입니다. 전체 pdf본을 원하시는 분은 첨부파일에서 다운받으실 수 있어요(최상단 참조).

받아가실때 댓글 한번씩 부탁드립니다 ^^

 

vector부분 정리

 

선형회귀부분 정리

 

자연어처리 부분 정리

 

[출처] https://doctorham.tistory.com/30
 

Loading

17 3월 2025

[산업] [알아봅시다] 국비 IT 학원, 정말 괜찮을까? – 경험담을 바탕으로 현실적인 조언

[산업] [알아봅시다] 국비 IT 학원, 정말 괜찮을까? – 경험담을 바탕으로 현실적인 조언

02 DALL·E 2025-03-17 01.55.13 - A humorous illustration showing a student’s expectations vs. reality of attending a government-funded IT bootcamp. On the left, the student is eagerly.png

국비 IT 학원, 정말 괜찮을까? – 경험담을 바탕으로 현실적인 조언

국비지원 IT 학원을 고민하는 사람이라면, 한 번쯤 들어봤을 이야기입니다.

“국비학원 비추, 시간낭비였다”
“수업보다 연애, 파벌싸움이 더 활발했다”
“강사도 자주 바뀌고 공부 분위기도 별로였다”

국비지원 학원은 정부 지원을 받아 저렴하게 배울 수 있다는 장점이 있지만, 모든 학원이 다 좋은 것은 아닙니다.
특히 비슷한 고민을 하는 분들을 위해, 한 수강생의 경험을 바탕으로 국비 IT 학원의 현실적인 문제점과 선택 시 주의할 점을 이야기해보겠습니다.


???? 국비 IT 학원의 기대 vs 현실

많은 사람들이 국비 학원을 선택할 때, 취업을 보장받거나, 수준 높은 교육을 받을 것이라 기대합니다. 하지만 현실은 조금 다릅니다.

???? 기대: 면접을 보고 입학할 정도면, 열정적인 사람들과 수준 높은 교육을 받을 수 있을 것이다.
???? 현실: 의욕 없는 사람들, 불필요한 인간관계 갈등, 학습 분위기가 깨지는 경우도 많다.

???? “학생의 질이 너무 떨어졌다”

수강생의 가장 큰 불만 중 하나는 함께 공부하는 사람들에 대한 문제입니다.
국비 학원은 돈을 내고 다니는 일반 학원과는 달리, 다양한 사람들이 참여합니다.

???? 문제점

  • 공부보다는 연애, 인간관계에 몰두하는 사람들
  • 감정 싸움, 파벌 싸움이 벌어지는 분위기
  • 쉬는 시간에 소란스럽고 집중이 어려운 환경

“IT 국비 학원이라 하면 조용히 공부하는 분위기를 기대했는데, 차라리 그게 낫겠다 싶을 정도였다.”

???? 해결책
국비 학원마다 분위기가 다릅니다. 가능하다면, 실제 수강생 후기를 찾아보고 학습 분위기가 잘 유지되는 학원을 선택하세요.


???? “수업보다 술자리가 더 많았다”

일부 학원에서는 “강제 자습”을 명목으로 학생들을 학원에 오래 붙잡아 두지만, 실제로는 학습보다는 다른 일에 시간을 보내는 경우가 많습니다.

???? 문제점

  • 학원 수업이 끝난 후, 강제 야간 자습이 있다고 해도 실질적인 공부는 안 됨
  • 공부보다는 술자리, 친목 모임이 더 활발
  • 심지어 취업 후에도 네트워크 형성에 실패 (서로 손절)

“수업 끝나면 야자라고 해서 남아야 한다더니, 결국 강남에서 술 마시는 모임이 됐다.”

???? 해결책

  • 친목 활동과 학습을 구분해야 합니다. 친목이 중요한 경우도 있지만, 공부에 집중할 환경이 조성된 학원인지 확인하세요.
  • 취업을 위해 다니는 것이지, 새로운 친구를 사귀러 가는 게 아니라는 점을 명확히 해야 합니다.

???? “강사가 너무 자주 바뀌었다”

국비 학원의 또 다른 문제는 강사의 교체입니다.

???? 문제점

  • 초반에는 좋은 강사가 배정되지만, 중간에 강사가 바뀌면서 수업의 질이 급격히 떨어짐
  • 실무 경험이 적은 강사가 이론만 가르치는 경우가 많음
  • 커리큘럼이 체계적이지 않고, 강사마다 스타일이 달라 일관성이 부족함

“처음엔 괜찮은 강사가 있었지만, 중간에 교체되면서 수업이 무너지기 시작했다.”

???? 해결책

  • 강사 교체가 잦은 학원은 피하는 것이 좋습니다. 입학 전 강사의 프로필과 강의 경력을 반드시 확인하세요.
  • 수업 방식이 바뀌어도 혼자 공부할 수 있는 능력을 키우는 것이 중요합니다.

???? 국비 IT 학원 선택 시 주의할 점

이런 문제를 피하려면 학원 선택이 가장 중요합니다. 다음 체크리스트를 확인해보세요.

✅ 수강생 후기를 확인하라 – 네이버 카페, 블로그, 유튜브 등에서 실제 수강생의 경험담을 찾아보세요.
✅ 강사의 경력을 체크하라 – 강사가 현업 경험이 있는지, 얼마나 오래 강의를 했는지 확인하세요.
✅ 커리큘럼을 꼼꼼히 살펴보라 – 수업 내용이 제대로 구성되어 있는지, 원하는 기술을 배울 수 있는지 확인하세요.
✅ 학습 분위기를 체크하라 – 직접 학원에 방문하거나, 설명회를 통해 분위기를 파악하세요.
✅ 취업 연계의 실체를 확인하라 – 학원에서 연결해주는 기업이 실제로 취업에 도움이 되는지 확인하세요.


???? 결론: 시간낭비를 피하려면?

국비 학원은 잘 활용하면 좋은 기회가 될 수도 있지만, 기대만큼 만족하기 어려운 경우도 많습니다.

???? 좋은 국비 학원을 선택하려면?
✔ 수강생의 분위기와 학습 태도를 확인하라
✔ 강사의 실무 경험과 교체 빈도를 체크하라
✔ 취업 연계가 실질적으로 도움이 되는지 따져보라
✔ 단순한 친목 모임이 아니라 실제로 공부할 수 있는 환경인지 고민하라

무작정 유명한 국비 학원이라고 선택하기보다는, 자신에게 맞는 학원이 어디인지 충분히 조사하고 결정하는 것이 가장 중요합니다.

여러분은 어떤 국비 학원을 선택하시겠습니까?

좋은 선택이 성공적인 IT 커리어의 시작이 될 것입니다. ????

 

01_화면_캡처_2025-03-22_165403.png

01_휴먼교육센터_IMG_1814.jpg

Loading

17 3월 2025

[산업] [알아봅시다] 좋은 국비지원 학원 고르는 법 – 실망하지 않으려면? (비전공자 코딩 국비 학원)

[산업] [알아봅시다] 좋은 국비지원 학원 고르는 법 – 실망하지 않으려면? (비전공자 코딩 국비 학원)

01 DALL·E 2025-03-17 01.37.46 - A humorous illustration comparing expectations vs. reality of attending a government-funded coding bootcamp. On the left, a student is excitedly learn.png

좋은 국비지원 학원 고르는 법 – 실망하지 않으려면?


국비지원 학원을 고민하는 많은 분들이 검색하면 가장 많이 접하는 단어 중 하나가 바로 “국비학원 쓰레기” 입니다. 정부 지원을 받아 부담 없이 배울 수 있다는 장점에도 불구하고 왜 이렇게 부정적인 평가가 많을까요?

이 글에서는 실제 사례를 바탕으로 국비지원 학원의 현실적인 문제점을 짚어보고, 좋은 학원을 선택하는 방법에 대해 이야기해보겠습니다.


???? “국비학원 갔다가 시간만 날렸다” – 부실한 커리큘럼과 강사 자질

“프론트엔드를 배우고 싶었는데 HTML, CSS 몇 주 배우다가 갑자기 자바 기본 문법을 배우기 시작했어요. 결국 React는 겨우 맛보기만 하고 끝났습니다.”

많은 수강생들이 커리큘럼과 관련된 불만을 가지고 있습니다. 국비지원 학원의 경우 제한된 예산과 기간 내에 다양한 내용을 가르쳐야 하다 보니, 체계적인 학습이 어렵고 깊이 있는 실무 교육이 부족한 경우가 많습니다.

특히 강사 자질도 중요한 문제입니다. 현업 경험이 풍부한 강사가 아니라 강의 경험만 있는 분들이 수업을 맡는 경우가 많아, 실무에서 어떻게 적용하는지에 대한 노하우를 배우기 어려운 경우가 있습니다.

✔ 어떻게 해결할 수 있을까요?
국비지원 학원을 선택할 때, 과정 개설 전에 강사의 경력과 실제 강의 방식에 대해 미리 확인하는 것이 중요합니다. 가능하다면 수강 후기를 찾아보고, 학원에 직접 방문해서 커리큘럼을 꼼꼼히 살펴보세요.


???? “취업률 90%라고 해서 등록했는데, 다 거짓말이었어요” – 현실적인 취업 연계

국비지원 학원은 취업률을 강조하며 마케팅을 하지만, 현실적으로 수강생들이 원하는 기업에 취업하는 경우는 많지 않습니다.

“취업 연계라고 해서 기대했는데, 결국 제가 직접 구직 사이트에서 공고 찾고 면접 보러 다녀야 했어요.”

이런 사례가 적지 않습니다. 일부 학원은 취업 연계라고 하지만 실제로는 이력서 첨삭이나 모의 면접 같은 기본적인 지원만 제공하는 수준입니다.

또한, 학원에서 연결해주는 기업들은 대부분 규모가 작은 곳이 많아, 연봉이나 근무 환경이 기대에 미치지 못하는 경우도 많습니다.

✔ 어떻게 해결할 수 있을까요?
취업 연계를 강조하는 학원이라면, 어떤 회사들과 실제 협약이 있는지 직접 확인하세요. “우리 학원 수강생들이 많이 간 곳입니다”가 아니라, 공식적인 협력 관계가 있는지를 물어보는 것이 중요합니다.


???? “등록하기 전과 후가 너무 달라요” – 상담 과정에서 주의할 점

국비지원 학원을 상담받으러 가면, 처음에는 굉장히 친절합니다. 하지만 등록을 마친 후부터 태도가 바뀌는 경우가 많습니다.

“처음 상담할 때는 좋은 강사님이 있다고 해서 등록했는데, 수업 시작 후 강사가 바뀌었어요. 중간에 강사 교체가 너무 잦아서 제대로 배운다는 느낌이 안 들었어요.”

또한, 국비지원 과정만으로는 부족하다며 유료 과정을 추가로 등록하도록 유도하는 경우도 많습니다.

✔ 어떻게 해결할 수 있을까요?
상담을 받을 때, 계약서 내용을 꼼꼼히 확인하세요. 국비지원 과정 외에 추가 비용이 발생할 가능성이 있는지, 강사 변경이 빈번한지에 대해 미리 물어보는 것이 중요합니다.


???? 그럼에도 국비지원 학원이 도움이 될 수 있는 경우는?

물론 모든 국비지원 학원이 나쁜 것은 아닙니다. 잘 활용하면 좋은 기회가 될 수도 있습니다.

✅ 국비지원 학원이 도움이 되는 경우

  • 비전공자로서 프로그래밍이나 디자인 등 기초 개념을 익히고 싶은 경우
  • 경제적 부담 없이 체계적인 커리큘럼을 따르고 싶은 경우
  • 혼자 공부하기 어려운 환경에서 강제적으로라도 학습 리듬을 잡고 싶은 경우

❌ 국비지원 학원이 적합하지 않은 경우

  • 이미 기본적인 개념을 알고 있고, 더 깊이 있는 실무 교육을 원한다면
  • 특정 기술을 집중적으로 배우고 싶은데, 수업 내용이 광범위하다면
  • 독학이 가능하고, 자신만의 프로젝트를 만들면서 배울 수 있다면

???? 좋은 국비지원 학원 고르는 법

✔ 커리큘럼을 확인하세요. 원하는 기술이 체계적으로 다뤄지는지 확인해야 합니다.
✔ 강사 경력을 체크하세요. 해당 과정의 강사가 실무 경험이 있는지 알아보세요.
✔ 수강 후기를 찾아보세요. 공식 사이트가 아닌, 실제 수강생들의 후기를 검색해보세요.
✔ 취업 연계 내용을 확인하세요. 실제 어떤 기업들과 협약이 있는지 살펴보세요.
✔ 추가 비용 여부를 확인하세요. 무료 과정 외에 유료 과정 등록을 유도하는지 체크하세요.

 

01_화면_캡처_2025-03-22_165403.png

01_휴먼교육센터_IMG_1814.jpg

Loading

9 3월 2025

[기계학습][머신러닝][딥러닝] 머신러닝 하루 만에 배우려고 하지 마라

[기계학습][머신러닝][딥러닝] 머신러닝 하루 만에 배우려고 하지 마라

머신러닝 하루 만에 배우려고 하지 마라


Source – https://medium.com/designer-hangout/machine-learning-and-ux-c28725b5f3a5

최근 피터 노빅의 “10년 동안 프로그래밍 독학하라”는 멋진 글을 발견했다.

제목이 위트 있으면서도 약간 비꼬는 느낌인데, 프로그래밍을 하루, 일주일, 열흘, 말도 안 되게 짧은 시간만에 익히게 해준다는 허접한 책들을 두고 빈정거리는 것이다.

닥터 노빅은 다음과 같이 분명하게 말한다. 프로그래밍 문법, 원리, 스타일은 하루 만에 익힐 수도 있다. 하지만 그렇다고 해서 프로그래밍 기술을 제대로 사용할 수 있게 되는 것은 아니다. 프로그래밍은 문법이 다가 아니기 때문이다. 프로그래밍이란 코드를 효율적으로 설계하고, 시간과 공간의 복잡성을 철저하게 분석하고, 언제 특정 언어를 사용하는 게 다른 언어를 사용하는 것보다 더 나은지 이해하는 등 다양한 지식을 포괄하는 것이다.

물론 Hello World나 원의 넓이를 구하는 프로그램을 C++로 하루 만에 짤 수도 있겠지만 핵심은 그게 아니다. 당신은 객체 지향 프로그래밍의 관점을 이해하는가? namespaces와 templates를 언제 사용해야 하는지 아는가? STL을 어떻게 사용하는지 아는가? 만약 알고 있다면, 분명 이 모든 것을 일주일 혹은 한 달 만에 익히지는 않았을 것이다. 이런 걸 익히는 데는 시간이 꽤 많이 걸린다. 그리고 알면 알수록, 겉으로 보기보다 더 많은 것들을 알아야 한다는 것을 깨달았을 것이다.

머신러닝, 딥러닝, AI를 둘러싼 전 영역의 분위기에도 이와 비슷한 문제가 있다. 광고, 블로그, 기사, 교육 과정이 도처에 넘쳐난다. 대부분 “코드 일곱 줄로 머신러닝 배우기”, “열흘 만에 배우는 머신러닝” 같은 비슷한 제목을 달고 있다. 이런걸 접한 사람들은 Quora에 “어떻게 하면 머신러닝을 한달 만에 배울수 있을까요?” 같은 질문을 올리게 된다. 짧게 답하자면 “한 달 안에 안된다. 누구도 못한다. 어떤 전문가도 그러지 못했다.”


많이 보던 상황인가? 이 페이스북 페이지에서 찾은 이미지다.

우리가 1만 시간의 법칙을 잠시 잊었다 하더라도, 머신러닝을 코드 일곱 줄로 배울 수는 없다.

왜냐고? 코드 일곱 줄로는 bias-variance tradeoff를 어떻게 처리했는지, 생성된 모델의 accuracy가 무얼 의미하는지, accuracy가 성능을 평가하는데 적절한 지표인지, 모델이 과적합되지는 않았는지, 데이터가 어떤 분포를 띠고 있고 따라서 적합한 모델을 선택했는지 등을 알 수 없기 때문이다. 이 모든 것을 알고 있더라도, 이 밖에 고려해야 할 문제가 훨씬 더 많다.

모델을 해석할 수 없으면 그냥 sklearn으로 파라미터를 조정해서 성능을 좀 향상시킨 다음 기분 좋게 퇴근하면 된다. 하지만 이게 진짜로 머신러닝을 아는 건가?

Source – http://machinelearningjourney.blogspot.in/2012/03/machine-learning-and-memes.html

즉, 코드 일곱 줄로 끝내려고 하면 안 된다. 6개월, 1년 이상 시간을 들여야 한다. 이 기간의 중간쯤 되면 자신이 여기에 흥미가 있는지 아닌지 판단할 수 있게 될 것이다. 화려한 겉모습은 일단 잊어버리고, 깊이 있고 놀라운 연구의 세계로 빠져들어야 한다. 이 글을 꼭 읽어보길 권한다. 초보자에게 가장 많은 도움이 되는 글이다. 수학이나 프로그래밍을 몰라도 된다. 이 글을 읽고 나면 이 분야에 익숙해지려면 알아야 하는, 머신러닝에 관해 생각하고 말하려면 알고 있어야 하는 개념들의 큰 그림을 그릴 수 있게 될 거다.

이 주제와 관련한 훌륭한 블로그들을 소개한다. 이 리스트엔 나의 개인 취향이 반영되어 있다.

  1. http://colah.github.io/
  2. http://mark.reid.name/blog/
  3. http://karpathy.github.io/

Medium도 공부하는데 도움이 많이 된다. 나는 이 페이지를 팔로우하면서 거의 모든 글을 읽고 있다.

만약 당신이 옛날 공부 방식에 익숙하다면, 앤드류 응이 스탠퍼드 대학교에서 강의한 CS229를 들어보라. 앤드류 응이 Coursera에서 했던 강의보다 더 깊이 관여한 강의이고, 개론으로 듣기에 좋다.

과장 광고에 홀려 공부하면 “정보에 빠져 지식에 굶주리는” 불행한 결과를 마주하게 된다. 굉장히 많은 사람이 그런 상황을 겪는다. 우리는 자주 큰 그림을 놓친다. 머신러닝은 훌륭하다. 머신러닝은 하나의 진지한 연구 개발 분야인 동시에 21세기의 수많은 성공 사례들을 이끌고 있다.

하루 만에 배우려고 좀 하지 마라.

여기에서 stellar AI의 연구원인 피터 노빅의 글을 읽을 수 있다. 반드시 읽어봐야 하는 글이다.

진지하게, 왜 안돼?

Yu Zhou에게 감사를 전한다.

이 글은 Rwiddhi Chakraborty의 Don’t learn Machine Learning in 24 hours를 번역한 것입니다. 원문과 대조하여 보려면 링크를 클릭하세요.

[출처] https://github.com/youngwoos/etc/blob/master/Don%E2%80%99t%20learn%20Machine%20Learning%20in%2024%20hours.md

Loading

9 3월 2025

[데이터분석 & 데이터 사이언스] 수많은 데이터 사이언티스트들이 직장을 떠나는 이유는 무엇인가?

[데이터분석 & 데이터 사이언스] 수많은 데이터 사이언티스트들이 직장을 떠나는 이유는 무엇인가?

수많은 데이터 사이언티스트들이 직장을 떠나는 이유는 무엇인가?

데이터 사이언티스트의 좌절!

맞다. 나는 데이터 사이언티스트다. 당신이 읽은 제목도 제대로 읽은 거 맞다. 누군가는 이런 이야기를 해야만 한다. 우리는 데이터 사이언티스트가 21세기의 가장 섹시한 직업이라거나꿈의 직업으로 보일 만큼 엄청나게 돈을 많이 번다는 식의 이야기를 굉장히 많이 듣는다. 이 분야에는 복잡한 문제를 괴짜같이 놀라운 방법으로 해결해내는 뛰어난 능력자들이 많은데, 이 직업이 매력적인 이유는 이런 측면에 있다.

하지만 진실은 이렇다. 파이낸셜 타임스의 글에 따르면, 데이터 사이언티스트들은 일반적으로 “일주일에 한두 시간은 새 직장을 구하는 데 쓴다”. 심지어 “새로운 직장을 구하고 있다고 응답한 개발자 중 1위는 머신러닝 전문가(14.3%)다. 데이터 사이언티스트는 근소한 차이로 2위다(13.2%).” 이 데이터는 스택 오버플로가 개발자 64,000명을 대상으로 한 설문조사에서 수집된 것이다.

나도 같은 상황에 처해있었고, 최근에는 직장을 바꿨다.

그렇다면 왜 수많은 데이터 사이언티스트들이 새 직장을 구하려 할까?

이 질문에 답하기 전에 내가 여전히 데이터 사이언티스트라는 것을 밝혀 둔다. 전반적으로 나는 이 직업을 사랑하고, 데이터 사이언티스트가 되려고 하는 사람들의 의욕을 꺾을 마음이 없다. 데이터 사이언티스트는 즐겁고, 흥미롭고, 보람 있는 직업이다. 이 글의 목적은 일부러 반대 측 이야기를 하는 악마의 변호인이 되어서 부정적인 면을 조명하는 데 있다.

내가 보기에 많은 데이터 사이언티스트들이 자신의 직업에 만족하지 못하는 데는 크게 네 가지 이유가 있다.

1. 현실은 기대하는 것과 다르다

빅데이터는 십대의 섹스와 같다. 다들 그것에 대해 말하지만, 진짜로 어떻게 하는지는 아무도 모르고, 나만 빼고 모두가 하고 있을 거라 생각한다. 그래서 다들 자기도 하고 있다고 주장한다. – Dan Ariely

매우 적절한 비유다. 나를 포함해서, 많은 주니어 데이터 사이언티스트들은 최신의 쿨한 머신러닝 알고리즘을 이용해 복잡한 문제를 해결하고 비즈니스에 엄청난 영향을 미칠 수 있을 거라 믿었기 때문에 데이터 과학에 뛰어들었다. 우리가 하는 일이 기존에 해왔던 일들 보다 훨씬 중요하게 느껴지는 것이다. 그러나, 보통은 안 그렇다.

내가 보기에 수많은 데이터 사이언티스트들이 업계를 떠나는 핵심적인 이유는 기대와 현실이 다르다는 것이다. 여기에는 다양한 이유가 있지만, 이 글에서 전부 다룰 수는 없고, 내가 직면했던 근본적인 문제들을 이야기하고자 한다.

회사마다 상황이 다르니 모두 다 그렇다고 할 수는 없겠지만, 많은 회사들이 AI를 이용해 가치를 얻어낼 수 있을 정도의 적절한 인프라를 구축하지 못한 상태에서 데이터 사이언티스트를 고용한다. 이 때문에 AI 분야의 콜드 스타트 문제가 발생한다. 이런 상황에 주니어를 고용하기 전에 경험 많은 시니어 데이터 전문가를 고용하지 못했다는 문제가 결합되면, 회사와 데이터 사이언티스트 양쪽 모두가 환멸을 느끼고 불행한 관계가 되는 법 레시피를 얻은 셈이다. 데이터 사이언티스트는 인사이트를 얻어낼 스마트한 머신러닝 알고리즘을 만드는 일을 하게 될 줄 알았겠지만 그러지 못한다. 데이터 인프라를 정리하고 분석 보고서 쓰는 일부터 해야 하기 때문이다. 반면 회사는 그저 매일 하는 미팅에 사용할 차트 한 장이 필요했을 뿐이다. 그러고 나면 회사도 좌절하게 된다. 새로운 가치를 충분히, 빨리 찾아내지 못하고, 결과적으로 이런 문제들 때문에 데이터 사이언티스트도 자신의 직무에 만족하지 못하게 되기 때문이다.

Robert Chang은 주니어 데이터 사이언티스트들에게 조언하며 다음과 같이 굉장히 통찰력 있는 이야기를 했다.

일하게 될 곳의 전체 업무 절차(critical path)가 자신이 하고자 하는 것에 얼마나 부합하는지 따져봐야 한다. 자신이 바라는 것에 가장 잘 부합하는 업무 절차를 갖추고 있는 프로젝트, 팀, 회사를 찾아라.

이 조언은 고용주와 데이터 사이언티스트의 관계를 강조하는 것이다. 회사가 제대로 준비되어 있지 않거나 데이터 사이언티스트의 기대와 부합하지 않는 목표를 가지고 있다면, 데이터 사이언티스트가 다른 일을 찾게 되는 것은 시간 문제다.

이 문제에 흥미가 생긴다면, 온라인 쇼핑몰 Wish에서 분석 팀을 만든 과정을 다룬 Samson Hu의 연재 글을 읽어 보길 권한다. 통찰이 담겨있는 훌륭한 글이다.

데이터 사이언티스트가 환멸을 느끼는 또 다른 이유는 내가 학계에 환멸을 느꼈던 이유와 비슷하다. 나는 내가 회사뿐만 아니라 전 세계 모든 사람들에게 엄청나게 큰 영향을 미칠 수 있을 거라고 생각했다. 현실은, 만약 회사의 핵심 사업이 머신러닝을 운용하는게 아니라면(나는 미디어 출판사에 다녔었다) 당신이 하는 데이터 과학 작업은 아주 작은 추가 이득 정도를 만들어 낼 수 있을 뿐이다. 데이터 과학으로 굉장히 의미 있는 가치를 만들어 내거나, 운 좋게 얻어 걸려서 금맥을 찾는 일이 생길 수도 있겠지만, 근건 굉장히 드문 일이다.

2. 정치가 모든 것을 결정한다

정치 문제에 관해서는 “데이터 사이언스에서 가장 어려운 것: 정치”라는 훌륭한 글이 이미 있다. 꼭 읽어 보길 권한다. 이 글의 도입부 몇 문장은 내가 말하고자 하는 것을 요약하고 있다.

Support Vector Machines 알고리즘을 공부하려고 아침 6시에 일어났을 때, “이거 진짜 힘드네. 하지만 나는 고용주들이 탐낼 사람이 될 거야” 하고 생각했다. 만약 타임머신(DeLorean)이 있다면, 과거로 돌아가 내 자신에게 말해 줄거다. “개소리하고 앉았네”.

다양한 머신러닝 알고리즘을 알면 가치 있는 데이터 사이언티스트가 될 거라고 진지하게 생각하고 있다면, 내가 처음에 지적했던 것을 다시 생각해보라. 현실은 기대하는 것과 다르다.

진실은, 비즈니스에서 가장 영향력 있는 사람들이 당신에 대해 좋은 인상을 갖도록 노력하는 일을 해야 한다는 것이다. 단지 윗분들이 당신에 대해 좋은 인상을 갖도록 하기 위한 목적으로 단순한 프로젝트를 수행하고, 동시에 윗분들이 필요하다고 할 때마다 데이터베이스에서 지표들을 뽑아 제 시간에 가져다 주는 추가 업무를 끝없이 해야만 한다. 나는 이전 직장에서 이런 일을 굉장히 많이 해야만 했다. 절망적이게도, 이런 일이 이 직업의 필수적인 부분이다.

3. 데이터가 있는 곳이라면 어디든 달려가야 한다

윗분들을 기쁘게 하는 일이라면 뭐든지 해야 한다는 것에 관해 조금 더 이야기하자면, 영향력 있는 윗사람들은 대부분 “데이터 사이언티스트”가 뭔 지 모른다. 이는 당신이 데이터 분석 전문가일 뿐만 아니라 ‘보고서 만들어주는 애’가 되어야 한다는 것을 의미한다. 동시에 데이터베이스 전문가가 되어야 한다는 것도 잊으면 안된다.

비 기술 분야의 경영진뿐만 아니라 대부분의 사람들은 당신이 엄청나게 많은 스킬을 보유하고 있을 거라 가정한다. 기술 분야에 있는 동료들도 당신이 데이터와 관련된 거라면 무엇이든 다 알 거라고 생각한다. Spark, Hadoop, Hive, Pig, SQL, Neo4J, MySQL, Python, R, Scala, Tensorflow, A/B Testing, NLP, 머신러닝의 모든 것, 이 외에 당신이 생각해낼 수 있는 데이터와 관련된 모든 것들을 잘 알고 있어야만 한다. 그건 그렇고, 만약 이 모든 게 적혀 있는 직무명세서를 발견한다면 빨리 도망쳐라. 그 회사가 자신들의 데이터 전략에 관해 아무 생각이 없고, 누가 됐든 데이터와 관련된 사람을 뽑으면 회사에 있는 데이터와 관련된 모든 문제를 해결해줄 거라 믿기 때문에 아무나 고용하려 한다는 것을 암시하는 것이다.

그런데 이게 끝이 아니다. 사람들은 당신은 이 모든 것을 잘 알고 있고, 분명 모든 데이터에 접근할 수 있을 것이기 때문에 데이터와 관련된 질문이라면 무엇이든 답변해줄 거라 생각한다. 그러니까, 안 물어봤어도 적어도 5분 전에는 담당자한테 메일로 답변을 보내놨어야 한다.

모든 사람들에게 자신이 실제로 아는 것은 무엇이고 다루기 어려운 것은 무엇인지를 얘기한다는 것은 쉽지 않은 일이다. 누군가 자신을 나쁘게 볼까 봐서가 아니라, 현장 경험이 별로 없는 주니어 데이터 사이언티스트처럼 여기게 될 것이 걱정되기 때문이다. 그렇게 되면 상황이 정말 어려워질 수 있다.

4. 고립된 팀에서 일한다

종종 성공한 데이터 제품을 접하면, 똑똑한 기능, 전문적으로 디자인된 UI를 볼 수 있다. 특히, 적어도 사용자가 보기에 문제를 적절히 해결하고 유용한 결과물을 만들어 낸다. 그러니까 만약 데이터 사이언티스트가 머신러닝 알고리즘을 만들고 적용하는 방법을 익히는 데에만 시간을 쏟았다면, 가치 있는 제품을 만들어내 프로젝트를 성공적으로 이끈 팀에서 아주 작은 역할만을 담당하게 되는 것이다(비록 필수적인 역할이라 하더라도). 즉, 고립된 상태로 일하는 데이터 사이언스 팀은 가치를 만들어내는데 어려움을 겪게 되는 것이다.

그런데도 여전히 많은 기업들이 자신들만의 프로젝트를 수행하기 위해 코드를 짜고 문제를 해결하려 노력하는 데이터 사이언스 팀을 운용하고 있다. 어떤 경우에는 그것 만으로 충분할 수도 있다. 예를 들어, 분기에 한번 정도 고정된 스프레드시트를 만들어 내는게 목표라면 데이터 사이언스 팀이 가치를 만들어 낼 수 있다. 반면 지능화된 추천 시스템을 최적화해서 맞춤형 웹사이트에 구현하는게 목표라면, 대다수 데이터 사이언티스트가 갖추고 있을 거라고 보기 어려운 매우 다양한 기술들이 필요하다(진정한 유니콘 데이터 사이언티스트만이 이 일을 해낼 수 있다). 따라서 고립된 채로 일하는 데이터 사이언스 팀이 프로젝트를 맡으면, 그 프로젝트는 실패할 가능성이 매우 높다(혹은 굉장히 오래 걸리거나. 대기업에서 고립된 팀을 다른 팀과 협력하도록 재조직하는 것은 쉽지 않기 때문이다).

따라서 현장에서 일을 잘하는 데이터 사이언티스가 되고자 한다면, 단지 캐글 대회에서 좋은 성적을 거두고 온라인 교육 코스 몇 개 수료하는 것만으로는 충분하지 않다. 불행하게도, 위계와 정치가 비즈니스에서 어떤 식으로 작동하는지 이해해야만 한다(관점에 따라서는 좋은 것일수도 있다). 데이터 사이언스 분야에서 만족할 만한 직장을 구하려면, 자신이 기대하는 업무 절차를 갖춘 회사를 찾는 것을 핵심 목표로 삼아야 한다. 하지만 그렇더라도, 데이터 사이언스의 역할에 대해 가지고 있던 기대는 낮춰야 할 것이다.

누구든 코멘트, 질문, 반대 의견이 있다면 환영한다. 데이터 사이언티스트가 되고자 하는 사람들이 충분한 정보를 바탕으로 진로를 결정할 수 있도록 도우려면 건설적인 토론이 필수적이기 때문이다.

이 글이 이 직업에 대한 흥미를 잃게 만든 것은 아니길 바란다.

읽어줘서 감사하다. 🙂

이 글은 Jonny Brooks-Bartlett의 Here’s why so many data scientists are leaving their jobs를 번역한 것입니다.

[출처] https://github.com/youngwoos/etc/blob/master/Here%E2%80%99s%20why%20so%20many%20data%20scientists%20are%20leaving%20their%20jobs.md#%EC%88%98%EB%A7%8E%EC%9D%80-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%82%AC%EC%9D%B4%EC%96%B8%ED%8B%B0%EC%8A%A4%ED%8A%B8%EB%93%A4%EC%9D%B4-%EC%A7%81%EC%9E%A5%EC%9D%84-%EB%96%A0%EB%82%98%EB%8A%94-%EC%9D%B4%EC%9C%A0%EB%8A%94-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80

Loading