25 5월 2025

[一日30分 인생승리의 학습법] [Git] 다중 리모트를 사용하여 여러 Git 연동하기(Gitea, GitHub)

post-thumbnail


Git 다중 리모트를 사용하여 Gitea와 GitHub 연동하기

 

한 프로젝트에서 Gitea와 GitHub를 동시에 관리하려면, Git의 다중 리모트(remote) 기능을 사용하면 된다. 다중 리모트를 설정하면, 동일한 로컬 저장소에서 두 개 이상의 원격 저장소로 데이터를 주고받을 수 있게 된다.

여기서 진행할 순서는 다음과 같다:

  1. Gitea와 GitHub 레포지토리 리모트 설정.
  2. 각 리모트를 구분하여 push/pull하는 방법.
  3. 다중 리모트 관리 시 주의사항.

1. 사전 준비: 프로젝트 리포지토리 설정

  • 현재 Gitea의 레포지토리 (wbapp)는 master 브랜치로 연결되어 있다.
    • Gitea의 URL 예시: http://gitea-ip/your-username/app.git
  • GitHub에도 동일한 프로젝트(wbapp)를 만들고, 이를 main 브랜치로 관리하려고 한다.
    • GitHub의 URL 예시: https://github.com/nyaongdev/app.git

먼저 GitHub에 새로운 레포지토리를 생성하고, 여기에 다중 리모트를 설정하도록 하자.


2. 다중 리모트 설정하기

2.1 기존 리모트 상태 확인

로컬 저장소에서 리모트 설정을 확인하려면 터미널이나 명령 프롬프트에서 다음 명령어를 사용한다.


git remote -v

이 명령어를 입력하면 현재 연결된 리모트 목록이 나타난다. 예를 들어:


origin  http://gitea-ip/your-username/app.git (fetch)
origin  http://gitea-ip/your-username/app.git (push)

현재 origin이라는 이름으로 Gitea 리모트가 연결된 상태다.

2.2 GitHub 리모트 추가하기

이제 GitHub 리모트를 추가해야 한다. GitHub 리모트를 추가할 때는 리모트의 이름을 다르게 설정하여, 두 개의 리모트를 구분할 수 있도록 해야 한다. 여기서는 github-nyaong이라는 이름으로 GitHub 리모트를 추가할 것이다.


git remote add github-nyaong https://github.com/nyaongdev/app.git

이제 git remote -v 명령어를 다시 실행하면 다음과 같은 출력이 나올 것이다.


origin         http://gitea-ip/your-username/app.git (fetch)
origin         http://gitea-ip/your-username/app.git (push)
github-nyaong  https://github.com/nyaongdev/app.git (fetch)
github-nyaong  https://github.com/nyaongdev/app.git (push)

이제 origin은 Giteagithub-nyaong은 GitHub를 가리키고 있다.


3. 리모트를 구분하여 Push/Pull 사용하기

이제 각각의 리모트로 push와 pull 작업을 할 수 있는 방법을 살펴보자.

3.1 Gitea와 GitHub에 Push

  • *Gitea (origin)**에 push:
    
    git push origin master
    
  • *GitHub (github-nyaong)**에 push:
    
    git push github-nyaong main

각 리모트를 지정해 브랜치를 푸시(push)할 수 있다. 여기서는 Gitea에는 master 브랜치로, GitHub에는 main 브랜치로 푸시하는 방식이다.

3.2 각각의 리모트에서 Pull

  • *Gitea (origin)**에서 pull:
    
    git pull origin master
  • *GitHub (github-nyaong)**에서 pull:
    
    git pull github-nyaong main

이를 통해 각각의 원격 저장소에서 변경 사항을 로컬 저장소로 가져올 수 있다.

3.3 두 리모트에 동시에 Push하기

Gitea와 GitHub 두 리모트에 동시에 변경 사항을 push하고 싶다면, 두 리모트를 한 번에 지정하여 푸시할 수도 있다.


git push origin master
git push github-nyaong main

이렇게 명령어를 두 번 실행하여 두 곳에 동시에 변경 사항을 적용할 수 있다. 더 자동화하고 싶다면, Git 훅(hook)이나 스크립트를 작성해 한 번의 명령어로 여러 리모트로 푸시하도록 만들 수 있다.


4. 다중 리모트 사용 시 주의사항

4.1 브랜치 관리

  • Gitea에서는 master 브랜치를 사용하고, GitHub에서는 main 브랜치를 사용하는 상황이므로, 브랜치 간의 동기화가 중요하다. 이를 위해 로컬에서 적절히 checkout하고 변경 사항을 푸시해야 한다.
  • 예를 들어, master 브랜치에서 작업한 후 main 브랜치에도 동일하게 반영하려면, 브랜치 병합(merge)을 하거나 리베이스(rebase)를 사용해야 할 수 있다.

# master 브랜치에서 작업 후 main 브랜치로 병합
git checkout main
git merge master
git push github-nyaong main

이와 같이, 각 브랜치가 서로 다르게 유지되지 않도록 주기적으로 병합하여 두 리모트의 코드가 일관되도록 관리하는 것이 좋다.

4.2 충돌 관리

  • 같은 프로젝트를 여러 리모트에 동기화하다 보면, 가끔 충돌(conflict)이 발생할 수 있다. 이 경우, Git은 충돌을 해결해야 푸시할 수 있도록 하며, 이를 해결한 후에 다시 푸시하면 된다.
  • 만약 Gitea와 GitHub 양쪽에서 모두 병렬적으로 작업하고 있다면, 주기적으로 pull을 통해 양쪽의 변경 사항을 확인하고 반영해야 한다.

4.3 협업 시 고려사항

  • 만약 팀원들과 Gitea를 통해 협업하고, 개인적으로 GitHub에도 저장하고 싶다면, Gitea에서 작업한 후 GitHub에 백업하는 형식으로 생각하면 된다.
  • 모든 작업이 Gitea를 기준으로 이루어지고, 완료된 작업을 GitHub에 푸시하는 순서를 정하면 충돌을 줄이고 관리하기 쉽다.

5. 마무리

이제 하나의 프로젝트에서 Gitea와 GitHub 두 리모트를 동시에 관리할 수 있게 되었다. 다중 리모트를 사용하면 하나의 로컬 저장소에서 여러 원격 저장소로 쉽게 데이터를 동기화할 수 있어, 사내의 Git 서버와 외부의 GitHub를 동시에 사용하는 것이 가능해진다.

  • Gitea는 사내 협업을 위한 주요 원격 저장소로 사용하는 형태
  • GitHub는 개인 백업이나 외부 프로젝트 관리용으로 사용하는 형태

[출처] https://velog.io/@nyaong/Git-%EB%8B%A4%EC%A4%91-%EB%A6%AC%EB%AA%A8%ED%8A%B8%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC-%EC%97%AC%EB%9F%AC-Git-%EC%97%B0%EB%8F%99%ED%95%98%EA%B8%B0Gitea-GitHub

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

23 4월 2025

[인공지능 기술] 개발자가 맞닥뜨린 갈림길…‘바이브 코딩’을 배우거나, 은퇴하거나

[인공지능 기술] 개발자가 맞닥뜨린 갈림길…‘바이브 코딩’을 배우거나, 은퇴하거나

‘바이브 코딩’은 앞으로 개발자가 코드를 짜는 방식이 될 것이다. 지금 배우지 않으면 개발자로서 커리어는 끝난다.

01 3967678-0-70166200-1745395027-shutterstock_1724042191.pngCredit: Photoongraphy / Shutterstock

 

제목을 보고 분노하기를 바란다. 화내라. 책상을 쾅 내려치고 고개를 절레절레 흔들어라. 그리고 진지하게 받아들여라. 바이브 코딩(Vibe Coding)을 배워야 한다. 그렇지 않으면 소프트웨어 개발자 커리어는 끝난다.

바이브 코딩은 최신 세대의 코드 생성 툴, 즉 LLM(흔히 말하는 챗GPT)을 활용하는 방식을 귀엽게 부르는 말이다. 커서(Cursor), 코드라인(Codeline), 탭나인(Tabnine) 같은 수많은 툴이 있는데, 솔직히 말해 전부 별로다. 이제 여기에 이 분야의 원조 격인 깃허브 코파일럿(GitHub Copilot)까지 본격적으로 가세하고 있다. 대부분은 비주얼 스튜디오 코드(Visual Studio Code)의 파생 버전이거나 플러그인 형태다.

게임 개발 경험이 전혀 없는 사람이 GPT로 게임 하나를 뚝딱 만들어서 대통령이 트위터에 올리고, 그걸로 백만장자가 되는 일이 가능하다는 말은 아니다. (사실 그보다 더 황당한 일이 실제로 벌어지기는 했다.) 생성형 AI 코딩 툴이 훌륭하다는 얘기를 하려는 것도 아니다. 오히려 더 엉망이고, 보안 취약점이 더 많은 코드를 낼 가능성이 크다. 여기서 말하려는 건 단 하나다. 이런 툴을 배우지 않으면, 곧 업계에서 은퇴할 준비를 해야 할 거라는 점이다.

어디서 들어본 이야기

뻔한 이야기다. 이런 일은 예전에도 있었다. 커리어 초장기에 필자는 한 개발자를 만났다. 편의상 톰이라고 부른다. 톰은 전형적인 구세대 개발자였다. 키보드를 눈으로 보며 타자 치는 식의 ‘독수리 타법’으로 프로그래밍을 하던 사람이었다. 톰은 비주얼 베이직(Visual Basic)으로 보고서 하나 만드는 데 6개월이 걸렸다. 예전에는 어떤 언어를 썼는지는 모르겠지만, VB는 책을 통해 독학했다고 했다. 톰이 휴가를 간 동안, 원래는 둘이 함께하기로 했던 보고서를 10일 정도 만에 끝냈다. 일부러 톰이 할 부분은 남겨뒀는데, 그때부터 톰은 나를 싫어했다.

어떻게 그렇게 빨리 해냈느냐고? IDE를 활용했고 인터넷 검색을 했다(이때는 ‘구글링하다’라는 말이 없던 시기였다). 우리가 자바로 전환했을 때 필자는 인터넷에서 자바를 일주일 만에 익혔고 동시에 J빌더(JBuilder) 사용법도 배웠다. 반면 톰은 브루스 에켈의 『씽킹 인 자바(Thinking in Java)』 책을 사서 여전히 독수리 타법으로 쿵쾅대며 타이핑하고 마치 성경이라도 되는 듯 그 책에 의존했다. 톰은 새로운 방식으로 배우고자 하지 않았다. 세상이 바뀌는 걸 비난하면서 낡은 방식에 머무르고 싶어 했을 뿐이었다.

현재 링크드인에는 두 부류의 사람이 있다. 1년 전까지만 해도 웹3를 외치던 사람이 지금은 바이브 코딩에 대해 과장된 주장을 늘어놓는다. 그리고 또 한 부류는 ‘톰들’이다. 보안이 어쩌니, 코딩은 예술이니 하면서 온갖 불평을 늘어놓는 사람들이다. 만약 당신이 톰이라면, 이제 퇴직 알람을 맞춰야 할 때다. 새로운 방식으로 일하는 법을 배우는 것은 개발자라는 직업의 일부다.

비즈니스 소프트웨어를 만드는 개발자는 예술가도 아니고 코드 시인도 아니다. “소프트웨어 장인 정신” 같은 건 아무도 신경 쓰지 않는다. 상사의 말이 맞다. 새로운 방식을 배우고 더 빠르게 코딩해야 한다. 그게 아니면, 키보드 좀 잘 두드릴 줄 알고 구글 검색 하나 잘하는 20대를 만난 뒤 결국 은퇴를 택했던 톰이 된다. 그게 전부다. 바이브 코딩을 하든가, 은퇴하든가.

LLM이 정말 그렇게 대단하냐고? 그렇다. 완전한 애플리케이션을 생성할 수 있냐고? 그렇다. 결과물이 형편없을 거냐고? 그건 사용자의 실력에 달렸다. LLM은 만병통치약이 아니다. “코딩 없이도 할 수 있다”라는 새로운 세대의 구호는 사실 이전 세대의 “코딩 없이도 할 수 있다”라는 말과 전혀 다르지 않다. 단순한 것만 하려면 정말 코딩 없이도 되기는 한다. 하지만 버전 2.0이 필요하거나 복잡한 뭔가를 만들려면 결국 코딩이 필요하다. 예전과 똑같다. 달라진 건 단 하나, 코딩 툴의 속도와 품질이 더 좋아졌다는 점뿐이다.

 

시간이 필요하다

바이브 코딩 툴을 처음 써서 만든 애플리케이션은 형편없을 것이다. 툴이 무척 답답할 것이고 스스로 잘 활용하지 못한다고 느낄 것이다. 하지만 그건 도구 탓이 아니라 사용자 탓이다. 이런 툴은 아직 성숙도나 안정성 면에서 J빌더, (아마 이 정도까진 아니겠지만) 비주얼 베이직 4.2, 자바스크립트 1.0 수준이다. 사용하다 보면 이상한 동작을 해서 짜증이 나고 당장이라도 때려치우고 싶어질 수도 있다. 하지만 점점 적응하고 이런 툴과 함께 일하는 방법을 익히면 점점 속도가 붙기 시작한다.

코딩을 조금이라도 할 줄 아는 사람이라면 이런 툴은 처음 구조를 잡는 단계 이후부터는 오히려 속도를 늦출 수 있다. 툴이 내리는 이상한 결정에 고개를 절레절레 젓게 되겠지만, 결국에는 이 툴을 원하는 대로 사용하는 방법을 배우게 된다. 지금까지 새로운 개발 툴이나 기술을 배울 때 항상 그랬던 것처럼 말이다.

일단 요령이 생기면 새로운 역량을 얻게 된다. 필자 역시 코딩은 할 줄 알지만, 자바스크립트를 제대로 배워야겠다고 생각한 적은 별로 없었다. 그런데도 최근에 제법 복잡하고 방대한 자바스크립트 애플리케이션을 3주도 안 돼서 완성했다. 물론 생성형 AI 없이도 언젠가는 다 했을 일이다. 하지만 필요한 API를 일일이 검색하고 확장 포인트를 익히는 데는 시간이 꽤 걸렸을 것이다. 심지어 지금보다 훨씬 괜찮았던 시절의 구글링을 한다 해도 말이다. 필자가 바이브 코딩으로 완성한 결과물은 예전 같으면 석 달은 걸렸을 작업이었다. AI 덕분에 생산성이 10배 증가한 건 아니지만, 평소보다 작업 속도가 5배는 빨라졌다.

다가올 바이브 코딩 시대, 살아남고 싶다면 지금부터 준비해야 한다. 다음은 실전에 바로 쓸 수 있는 몇 가지 팁이다.

  • 우선 커서, 코드라인 같은 툴의 무료 버전부터 시작하라. 뭐든 상관없다. 그리고 곧바로 최소 40달러는 지불하라. 코드가 그려지는 걸 멍하니 보고만 있어선 실력이 늘지 않는다.
  • “시간만 있었으면 만들었을” 프로젝트를 골라라. 예를 들어, 줌 녹화 저장 문제를 스스로 해결했던 어떤 사람처럼 말이다.
  • 깃(Git)을 자주 사용하라. AI 코딩 툴은 종종 어이없는 짓을 종종 저지른다. 복구하려면 버전 관리에 익숙해야 한다.
  • 본격적으로 코딩을 시작하기 전에 LLM과 설계 대화를 나눠라. 결과를 마크다운 형식으로 받아두면 좋다. 대부분의 바이브 코딩 IDE는 이 마크다운을 지침 설정에 넣을 수 있다. 모델에게 같은 설명을 반복하지 않아도 된다. 혹시 까먹으면 다시 넣어주면 된다.
  • 매 단계마다 결과를 검토하고 모델이 엉뚱한 짓을 하면 과감히 되돌려라.
  • 답답해도 버텨라. 써먹을 줄 알게 되면 이런 툴은 무기가 된다.
  • 지금 시점에서는 클로드 3.7 소넷(Claude 3.7 Sonnet)이나 제미나이 2.5 프로(Gemini 2.5 Pro) 혹은 실험 버전(Gemini 2.5 Experimental)이 가장 쓸 만하다.

바이브 코딩은 곧 현실이 된다. 개발자는 앞으로 이렇게 코딩할 것이다. 지금 배우기 시작하라. 아니면 은퇴 준비를 하라.
dl-itworldkorea@foundryco.com

[출처] https://www.itworld.co.kr/article/3967678/%EA%B0%9C%EB%B0%9C%EC%9E%90%EA%B0%80-%EB%A7%9E%EB%8B%A5%EB%9C%A8%EB%A6%B0-%EA%B0%88%EB%A6%BC%EA%B8%B8%EB%B0%94%EC%9D%B4%EB%B8%8C-%EC%BD%94%EB%94%A9%EC%9D%84-%EB%B0%B0.html

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

30 3월 2025

[인공지능 기술]  [Pytorch] Pytorch & LLM Training Pipeline (pytorch로 chatgpt만들기, 기본예제)

[인공지능 기술]  [Pytorch] Pytorch & LLM Training Pipeline (pytorch로 chatgpt만들기, 기본예제)

Pytorch

Pytorych

What

Pytorch는 Opensource Machine Learning(ML) Framework로, Python 언어와 Torch Library를 기반으로 한다. Torch는 Opensource ML Library로, Deep learning을 이용하기 위해서 Lua Scripting으로 작성되었다. 현재, DL 연구를 위해서 가장 선호되는 플랫폼이다.

How to use?

Tools

Pytorch는 클라우드와 로컬, 두 가지 환경에서 활용할 수 있다.

  • In the cloud: Pytorch를 접근하기 가장 쉬운 방법으로, Microsoft를 통해서 접근하거나 Google Colab에서 실행해 볼 수 있다. 링크에만 접근한다면 Microsoft와 Colab에 작성된 Notebook에서 코드를 실행할 수 있다.
  • Locally: 로컬에서는 PyTorch and TorchVision 등을 우선 설치해야한다. 설치 가이드(installation instructions)를 따라서 설치할 수 있다. 다양한 버전이 홈페이지에 게재되어있다. Notebook을 활용하거나 IDE()에서 코드를 작성하여 실행하면 된다.

Pipieline

01 Prerequisites

Pytorch는 python 프로그래밍을 통해,딥러닝과 트랜스포머 개념을 구현해야한다.

02 Library installation

trl : Transformer language odel을 Reinforcement Leanring으로 학습하는데 사용한다.
peft : Prameter-effiecient Fine-tuning(PEFT)방법을 통해서 효율적으로 pre-treined model을 조정한다.
torrch : Opensource ML library
datasets : ML datasets을 로딩(loading) 또는 다운로딩(downloading)하기 위해 하용한다.
Trasformers : Hugging Face가 개발한 라이브러리로, 분류/요약/번역 등과 같은 다양한 텍스트를 위한 task를 수행하기 위해 수천 개의 PLM(pre-trained model)모델을 제공한다.

02-1 pip 를 통해서 pythong package 다운로드한다.

%%bash
pip -q install trl
pip -q install peft
pip -q install torch
pip -q install datasets
pip -q install transformers

02-1 import 통해서 pythong package를 가져온다

import torch
from trl import SFTTrainer
from datasets import load_dataset
from peft import LoraConfig, get_peft_model, prepare_model_for_int8_training
from transformers import AutoModelForCausalLM, AutoTokenizer, TrainingArguments

03 Data Loading and Preparation

03-01 Data loading

허깅페이스의 공개 데이터셋을 로드한다.
load_dataset : 데이터 로드
dataset_name : 로드하기 위한 데이터셋 이름
split parameter를 “train“로 설정하여 학습(traing)데이터로만 설정된 데이터 로드

dataset_name="tatsu-lab/alpaca"
train_dataset = load_dataset(dataset_name, split="train")
print(train_dataset)

03-02 Converting the dictionary into a pandas dataframe

로드한 데이터는 dictionary 타입으로, pandas의 dataframe으로 변환한다.

.to_pandas() : train_dataset을 pandas dataframe으로 변환

pandas_format = train_dataset.to_pandas()
display(pandas_format.head())

04 Model Training

  • Pre-trained Model : Pretrained 모델
  • Tokenizer : 데이터의 토큰화(tokenization)를 위해 사용하며, PLM과 tokenizer를 가져옴
  • AutoModelForCausalLM :
    • from_pretrained 메서드로 PLM을 가져오기 위해 사용
    • pretrained_model_name은 PLM 모델을 지정하며, data type은 모델의 tensor를torch.bfloat16로 설정

*AutoTokenizer:

  • from_pretrained : 가 PLM에 맞는 tokenizer를 가져오기 위해 사용하는 메서드
  • pretrained_model_name과 trust_remote_code를 true로 설정
pretrained_model_name = "Salesforce/xgen-7b-8k-base"
model = AutoModelForCausalLM.from_pretrained(pretrained_model_name, torch_dtype=torch.bfloat16)
tokenizer = AutoTokenizer.from_pretrained(pretrained_model_name, trust_remote_code=True)

05 Training configuration

Training을 위해 training arguments(인수)와 training configurations(구성)이 필요하다. 이는 TrainingArguments로 구성하며, LoraConfig model과 SFTTrainer model의 인스턴스이다.

06 TrainingArguments

output_dir 학습 모델 저장 위치
per_device_train_batch_size 한 학습에 사용하기 위한 학습 샘플의 사이즈
optim 옵티마이저
logging_steps 로깅을 위한 빈도로, n번의 스텝마다 기록
learning_rate 옵티마이저의 learning rate 설정
warmup_ratio
lr_scheduler_type
num_train_epochs
save_strategy

model_training_args = TrainingArguments(
       output_dir="xgen-7b-8k-base-fine-tuned",
       per_device_train_batch_size=4,
       optim="adamw_torch",
       logging_steps=80,
       learning_rate=2e-4,
       warmup_ratio=0.1,
       lr_scheduler_type="linear",
       num_train_epochs=1,
       save_strategy="epoch"
   )

07 LoRAConfig

LoRa(Low-Rank Adaptation)은 Hugging Face가 개발한 PEFT이다. peft 라이브러를 통해서 사용할 수 있다.
현재의 파이프라인에서는 하위 변환 행렬을 16으로 설정한다. LoRa의 매개변수의 스케일링 계수는 32로 서렁한다. 드롭아웃 비율은 0.05로 설정되었다.
CASULA_LM은 인과적 언어 모델(causual lanauge model)의 속성을 초기화한다.

08 SFTTrainer

training data, tokenizer, 모델의 추가 정보를 이용하여 학습한다.

아래는 로드한 텍스트 칼럼의 길이를 컬럼을 추가하여 저장하는 것이다. 이 데이터셋은 0~1000 크기의 텍스트 분포가 크다. (분포를 보여주는 표는 생략)
1024보다 큰 값의 비율을 구한다.

pandas_foramt은 특정 칼럼의 크기가 1024보다 큰것을 찾아 mask로 저장
percentage에 mask가 ‘texst_length’컬럼에서 차지하는 비율을 구함

pandas_format['text_length'] = pandas_format['text'].apply(len)

mask = pandas_format['text_length'] > 1024
percentage = (mask.sum() / pandas_format['text_length'].count()) * 100

print(f"The percentage of text documents with a length greater than 1024 is: {percentage}%")
  • 아래 코드는 SFTTrainer 의 인스턴스를 만들고 있다.
    model=model PLM을 SFTTrainer에 전달
    train_dataset=train_dataset train dataset을 SFTTrainer에 전달
    dataset_text_field="text" 텍스트 데이터를 포함하는 dataset 필드 지정
    max_seq_length=1024 모델 력의 최대 시퀀스 길이를 설정
    tokenizer=tokenizer tokenizer를 SFTTrainer에 전달
    args=model_training_args 모델 트레이닝을 위한 인수를 SFTTrainer에 전달
    packing=True효율적인 훈련을 위한 시퀀스 패킹 설정
    peft_config=lora_peft_config PEFT에 loraConfig 설정
SFT_trainer = SFTTrainer(
       model=model,
       train_dataset=train_dataset,
       dataset_text_field="text",
       max_seq_length=1024,
       tokenizer=tokenizer,
       args=model_training_args,
       packing=True,
       peft_config=lora_peft_config,
   )

09 Training execution

tokenizer.pad_token =tokenizer.eos_token padding token을 eos_token으로 설정(eos, end of sequence)
model.resize_token_embeddings(len(tokenizer)) 모델의 토큰 임베딩 계층을 tokenizer 길이로 설정
model=prepare_model_for_int8_training(model)) 양자화처럼, INT8 정밀도로 트레이닝할 수 있도록 준비
model = get_peft_model (model, lora_peft_config) 주어진 모델을 PEFT 구성에 따따 조정
training_args = model_training_args training_args에 미리 정의된 training 인수를 할당
trainer =SFT_Trainer SFTTrainer 인스턴스를 trainer에 저장
trainer.train() (위의) 설정에 따라 모델을 학습

tokenizer.pad_token = tokenizer.eos_token
model.resize_token_embeddings(len(tokenizer))
model = prepare_model_for_int8_training(model)
model = get_peft_model(model, lora_peft_config)
training_args = model_training_args
trainer = SFT_trainer
trainer.train()

Reference
[1] https://pytorch.org/tutorials/beginner/basics/intro.html
[2] https://www.datacamp.com/tutorial/how-to-train-a-llm-with-pytorch
[3] https://github.com/keitazoumana/Medium-Articles-Notebooks/blob/main/Train_your_LLM.ipynb

[출처] https://velog.io/@jasmine_s2/Pytorch-Pytorch-LLM-Training-Pipeline

Loading

29 3월 2025

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

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

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

 

 

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

 

 

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

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

 

 

 

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

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

 

 

 

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

 

 

직접 제작한 표지

 

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

 

 

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

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

 

vector부분 정리

 

선형회귀부분 정리

 

자연어처리 부분 정리

 

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

Loading

25 3월 2025

[산업] [알아봅시다][비전공자 코딩 국비교육] 국비 IT 교육, 그 교실 안에서 나는 왜 무너졌는가 – 한 강사의 고백

[산업] [알아봅시다][비전공자 코딩 국비교육] 국비 IT 교육, 그 교실 안에서 나는 왜 무너졌는가 – 한 강사의 고백

[알아봅시다][비전공자 코딩 국비교육] 국비 IT 교육, 그 교실 안에서 나는 왜 무너졌는가 – 한 강사의 고백

국비 IT 교육, 그 교실 안에서 나는 왜 무너졌는가 – 한 강사의 고백

“강사로서 4년, 그 이전에는 백엔드 개발자로 10년.

오늘, 나는 강사직을 내려놓았다.”


???? 국비 교육의 이상과 현실 사이

처음 강사가 되었을 땐, 경험을 나누고 싶었다.

코딩을 처음 배우는 사람들에게 현장의 지식과 기술을 전하고, 누군가의 인생 전환점이 되어주고 싶었다.

그러나 현실은 이상과 너무도 달랐다.


???? 수업이 불가능한 교실

국비 코딩 학원의 수강생들 중 다수는 단지 수당을 목적으로 앉아 있는 사람들이었다.

알바를 하다 갑자기 국취제(국민취업지원제도)로 연결되어 온 사람들, 의지도 없고 목표도 없다.

“한 달 80만 원 받으며 6개월 동안 야동이나 보며 시간 때우는 사람들을 교육한다는 건…

그 자체로 비현실이다.”

수업에 집중하지 않는다.

옆사람에게 장난을 치고, 강의를 들으며 게임을 한다.

드물게 의욕 있는 훈련생이 나타나면 금세 지쳐 떠나버린다.


???? 케이디지털, 천이백만 원의 혈세가 간다

케이디지털 트레이닝은 1인당 최대 1,200만 원까지 정부가 지원한다.

문제는 이 엄청난 예산이, 실제로 효과 있는 교육에 쓰이지 못하고 있다는 것이다.

 

“강의는 10년 전 실무에서 쓰던 기술 그대로.

커리큘럼도, 강사도, 시스템도 시대에 뒤처졌다.”

즉, 정부는 매년 수천억 원을 국비 교육에 쏟아붓고 있지만, 현장은 변화하지 않고 있으며,

결국 이 혈세는 의욕 없는 수강생과 낙후된 교육 방식 속에 증발하고 있는 셈이다.


???? 강사도 지쳐간다

현장에서 실무를 경험하고, 후배를 키워보겠다는 마음으로 시작한 국비 강사.

하지만 현실은, 매일 매시간 수업에 집중하지 않는 사람들과의 싸움이었다.

“이게 무슨 교육인가.

오늘 나는, 그만둔다.”


???? 이제는 질문해야 할 때

  • 국비 교육의 목적은 무엇이어야 하는가?

  • 정부 지원이 정말 필요한 사람들에게 효과적으로 쓰이고 있는가?

  • 학습 의지가 있는 사람과 그렇지 않은 사람을 구분할 수 있는 제도는 마련되어 있는가?

  • 현장과 동떨어진 커리큘럼을 그대로 반복하는 것은 왜 방치되는가?


✍️ 결론: 국비 교육, 리셋이 필요하다

국비 코딩 교육이 비판받는 이유는 분명하다.

그러나 그 비판 속에는, 더 나은 시스템을 향한 요구와 기대가 담겨 있다.

국비는 필요하다. 하지만 지금 이 방식으로는 국가도, 수강생도, 강사도 모두 손해다.

이제는 정말, 바뀌어야 할 때다.

DALL·E 2025-03-25 17.58.22 - An emotional illustration showing a tired coding instructor walking out of a chaotic classroom at a government-funded training center. The instructor .png

강사한지 4년되었고

그전에 백엔드 십년 정도했다.

오늘부로 강사 때려치었다

필드로 복귀예정이다.

한 마디만 한다.

국비 수업 훈련생들 90퍼가 인생에 루저들임.

애네들 데리고 무슨 수업이 되냐?

알바하다 국취하고 수당합쳐서 한달에 80씩 6개월 앉아서 야동 보고 옆에 언니들한테 껄떡되고 운 좋으면 꼴에 연애도 하니ㅋㅋㅋ

오늘부로 국비 없애달라고 청원할꺼다

케이디지털은 일인당 6개월에 최대 천이백 씨발 대한민국이 미친거쥐

맞다 국비 강사들도 십년전에 필드에서 쓰던거로 약 팔고 있으니 쓰펄

엥간들아 6개월에 쓰레기들한테 천이백 혈세 들어가는게 맞냐?

Loading

24 3월 2025

[알아봅시다] [국비코딩학원] ???? 국비 코딩 학원에서 만나는 11가지 사람 유형

 

[알아봅시다] [국비코딩학원] ???? 국비 코딩 학원에서 만나는 11가지 사람 유형

???? 국비 코딩 학원에서 만나는 11가지 사람 유형

국비지원 코딩 부트캠프나 IT 학원에 다녀본 사람이라면 공감할 “아 저런 애들 꼭 있다” 싶은 사람들.

학습 분위기를 망치기도, 의외의 동기부여가 되기도 하는 다양한 유형의 사람들을 소개합니다.

※ 재미로 풀어봤지만, 실제 경험을 바탕으로 한 현실감 200%입니다!


???? 1. 에이스형

말 그대로 클래스의 에이스.

전공자거나 독학으로 기본기를 다져온 타입. 배우지 않은 개념도 혼자 습득해서 응용까지 해버리는 괴물.

???? 앞자리에 앉고, 옆사람도 잘 도와줌. 옆자리 당첨되면 복권 맞은 셈!


???? 2. 술고래형

“오늘은 모듈1 끝났으니까 기념으로 술~?”

모든 걸 술로 마무리하려는 타입. 처음엔 좋지만 계속 따라가면 2400은 순식간.

???? 적당히 선 긋지 않으면 체력과 시간 다 소모됩니다…


❤️ 3. 연애형 (a.k.a. 발정형)

“이 학원의 목적은 취업이 아니라 썸입니다.”

새로운 여성 수강생에게 친근하게 다가가며 친해지려는 목적이 뚜렷함.

???? 특히 웹 퍼블리셔 과정에 자주 출몰. 백엔드 반에도 간혹 있음. 조심하세요.


???? 4. 사회부적응자형

조용조용… 아니 거의 얼음.

말 걸면 소리도 안 나고, 처음엔 집중 잘 하는 줄 알았는데 질문도 못 함.

???? 질문은 구글도 안 하고 강사도 무서워하는 타입. 주로 안경 착용자?


???? 5. 인싸형

“우린 한 반이니까 친해지자~”

친화력 만렙. 덕분에 반에 웃음은 많지만, 집중은 좀 어렵기도.

???? 단, 이 인싸가 술고래 성향까지 있다면? 거리 두세요. 진심입니다.


❓ 6. 무지성 질문러형

생각보다 손보다 입이 빠름.

“이거 어떻게 해요?”를 10분에 한 번씩 말함.

???? 수업을 듣는 건지, 귀로만 듣는 건지 모름. 옆자리에 앉으면 진짜 피곤함.


????️ 7. 가오형

첫날부터 프로 개발자처럼 보이려고 cmd 창 오픈.

하지만 알고 보면 mkdir, ls, rm 반복 중.

???? “와… 잘하나보다” 하다가 뒤에서 보면 웃김. 귀엽다(?)


???? 8. 얼음공주형

철벽도 이런 철벽이 없다.

수업 외 대화 없음. 네가 누구든 상관없음.

???? 그냥 그런 사람이다. 쿨하게 지나가세요.


???? 9. 노력형

진짜 공부하러 온 사람.

집에 가서도 복습하고, CS도 따로 공부하고, 넷플릭스 대신 알고리즘 푼다.

???? 결국 이 사람이 3200~3600 받고 취업함. 조용히 본받자.


????️ 10. 선동형

“이 강사 커리큘럼 너무 구리다, 바꿔야 해!”

반 분위기를 이끌며 강사에게 항의, 반 전체 분위기를 부정적으로 이끎.

???? 나중엔 수업보다 회의가 더 많아짐. 이 유형 출현 시 탈출 추천.


????‍♂️ 11. 추노형

2~3주까지는 열심히 다니다가 그 후로는 안 보임.

“쟤 요즘 안 보이네?” “몰라, 나도.”

???? 이유는 모르지만, 수업 절반쯤부터는 사라진다.


???? 결론

국비 코딩 학원은 다양한 사람들이 모인 만큼,

집중하려면 “내가 왜 왔는지”를 잊지 않는 게 가장 중요합니다.

누구 옆에 앉느냐도 성적의 절반이라는 말이 있을 정도니까요! ????

DALL·E 2025-03-24 02.55.17 - A humorous classroom scene showing different types of students at a government-funded coding bootcamp. Each character has a distinct personality_ a to.png

 
 

 https://gall.dcinside.com/board/view/?id=programming&no=1870848 

1. 에이스형

말 그대로 쌉 에이스

주로 전공자가 많다.

수업을 잘 따라가는 것은 물론, 아직 안배운 개념도 응용해서 코딩한다.

보통 앞자리에 앉고 옆에 못하는 친구가 있으면 잘 도와주기 때문에 무조건 옆에 둬야 한다.

2. 술고래형

허구한날 뭐 끝났으니 기념으로 술마시자를 반복한다.

여기에 말려들면 그대로 2400간다. ㅇㅅㅇ

3. 발정형

목적은 취업이 아닌 섹수다.

매일 새로운 여자에게 접근해서 친해지고 따먹기를 반복한다.

주로 웹퍼블리셔 코스에 많이 서식한다.

프붕이는 백엔드 과정이었는데 두명 있었다. ㅇㅅㅇ…

아 봉천섹수

4. 사회부적응자형

말 걸어도 아주 조그만 목소리로 대답하고 재미도 없다보니

처음에 보기엔 정말 잘 하는 것처럼 보이지만

나중에 보면 강사에게 질문할 용기도 없는 찐따인 경우가 많다.

주로 안경을 썼다.

5. 인싸형

떠들러 학원왔다 ㅇㅅㅇ

그래도 자리가 가까우면 암울한 국비 생활에 작은 행복을 느끼게 해준다. 국비반의 단합을 굉장히 중요시 한다. 옆 반에게 은근 경쟁심을 느낀다. 단 인싸+술고래형이면 무슨 일이 있어도 친해지면 안된다.

6. 무지성 질문충

생각보다 입에서 질문이 먼저 나간다.

옆에 두면 ㅈ된다.

10분에 한번씩 “이거 어떻게 했어요?” 물어본다.

수업을 듣는지 안듣는지 모르겠다.

강사도 얘때문에 힘들어하고 얘 때문에 수업 전체 진도가 느려진다.

구글링은 하지 않는다.

7. 가오형

첫날 오자마자 CMD창 띄워놓고 뭔가를 열심히 친다.

애들은 보자마자 기가 죽는다.

자세히보면 mkdir, rm, ls 이런거만 하고 있다.

병신 ㅇㅅㅇ

8. 얼음공주 개발자형

너랑 상관 없다. ㅇㅅㅇ

9. 노력형

공부하러 이곳에 온 것을 잘 알고 있어서 공부에만 집중한다.

집에 가서 남들 넷플릭스볼때 따로 공부하고 CS과목도 틈틈히 한다.

이런 애들이 주로 3200간다.

10. 선동형

아주 아주 드물게 존재하는 유형인데

반 전체를 선동해서 강사를 자르기도 하고

과제의 부당성? 난이도 또는 커리큘럼의 정당성에 대해 계속 딴지를 걸고 애들을 선동해서 반 분위기를 부정적으로 이끌어간다.

이런 놈이 서식한다면 당장 탈출해랏 ㅇㅅㅇ

11. 추노형

3주 째 부터 안나온다.

 

Loading

22 3월 2025

[profit] 60세가 넘은 IT 개발자가 은퇴 후에도 계속 일하며 노후를 대비하는 방법

[profit] 60세가 넘은 IT 개발자가 은퇴 후에도 계속 일하며 노후를 대비하는 방법

60세가 넘은 IT 개발자가 은퇴 후에도 계속 일하며 노후를 대비하는 방법

60세가 넘은 IT 개발자가 은퇴 후에도 계속 일하며 노후를 대비하고 싶다면, 다양한 경로를 고려할 수 있습니다. 

이러한 경로는 개인의 기술적 전문성, 경험, 그리고 흥미를 기반으로 선택할 수 있으며, 지속 가능한 수입원을 확보하고 지적으로 활동적인 생활을 유지하는 데 도움이 될 것입니다. 다음은 은퇴한 IT 개발자가 고려할 수 있는 몇 가지 방법입니다.

1. 프리랜서 개발

 – 개발을 진심으로 꾸준히 그리고 잘 해왔다면 프리랜스 개발을 하는 데에 있어서 문제가 없어야 합니다. 자신의 경험과 지식을 바탕으로 프리랜서 개발 전문 분야를 정의합니다. 클라우드 컴퓨팅, 사이버 보안, 데이터 분석, 소프트웨어 개발, IT 인프라 관리 등 IT 분야는 매우 넓기 때문에, 특정 기술이나 산업에 초점을 맞추는 것이 중요합니다.

 – 제공할 서비스를 명확히 하고, 시간당 요금, 프로젝트별 요금, 또는 가치 기반 요금 등 가격 전략을 개발합니다. 경쟁력 있는 가격 설정과 함께 고객에게 명확한 가치를 제시할 수 있어야 합니다.

 – [온라인 프로필 및 포트폴리오 구축] LinkedIn, GitHub, 개인 웹사이트 등 온라인 플랫폼을 활용하여 전문 프로필을 구축하고, 이전 프로젝트나 업적을 포트폴리오로 제시합니다. 이는 잠재 고객에게 신뢰와 전문성을 전달하는 중요한 수단입니다. 뿐만 아니라 오프라인에서도 네트워킹을 계속해야 합니다. 전문 네트워킹 이벤트, 콘퍼런스, 워크샵 참여를 통해 업계 내 네트워크를 확장합니다. 또한 소셜 미디어, 블로그, 이메일 뉴스레터 등 다양한 채널을 통해 마케팅 활동을 진행하여 자신의 서비스를 알립니다.

 – [프리랜서 플랫폼 활용] Upwork, Freelancer, Toptal과 같은 프리랜서 플랫폼에 프로필을 등록하고, 프로젝트를 찾습니다. 이러한 플랫폼은 다양한 고객과 프로젝트에 접근할 수 있는 기회를 제공합니다.

 – [지속적인 학습 및 업데이트] 기술 분야는 빠르게 변화하기 때문에, 최신 기술 동향, 툴, 프레임워크를 지속적으로 학습하고 업데이트하는 것이 중요합니다. 온라인 코스, 웨비나, 산업별 보고서 등을 활용하여 지식을 갱신합니다.

그런데 아마 나이가 있어서 프리랜서 개발자로 고용이 되지 않을 확률이 매우 높습니다. 왜냐하면 젊고 저렴하고 생기 있는 인력들이 시장에 많이 있는데 굳이 비싼 돈을 들여서 노인 인력을 채용하려고 할까요? 그렇지 않습니다. 시장은 냉정합니다.

2. 교육, 강의 및 트레이닝

– IT 시장은 지속적인 교육이 필요한 산업입니다. 꾸준하게 교육을 필요로 하는 수요가 있고 기업, 개인, 학생, 학교 가릴 것 없이 많은 교육을 필요로 합니다. 이러한 강의 수요에 맞춰서 교육을 하는 교육자가 되는 것도 하나의 방법입니다.

– 자신의 전문 지식과 경험을 바탕으로 어떤 IT 교육 분야에서 강의할 수 있는지 결정합니다. 예를 들어, 소프트웨어 개발, 데이터 분석, 사이버 보안, 클라우드 컴퓨팅 등이 있습니다. 시장 조사를 통해 수요가 높고 경쟁이 적은 틈새 시장을 찾아보세요.

– 교육할 내용에 가장 적합한 학습자 그룹을 결정합니다. 예를 들어, 초보자를 대상으로 하는 기초 과정, 경력 개발자를 위한 고급 과정, 또는 특정 산업 분야에 종사하는 전문가를 위한 맞춤형 교육 등이 있을 수 있습니다.

– 강의할 내용에 대한 포괄적인 커리큘럼을 개발합니다. 이는 강의 목표, 학습 결과, 강의 자료, 실습 과제, 평가 방법 등을 포함해야 합니다. 현업에서의 실제 경험을 반영하여 실용적이고 적용 가능한 지식을 전달하는 것이 중요합니다.

– 프레젠테이션, 비디오, 실습 자료, 퀴즈 등 다양한 형태의 강의 자료를 준비합니다. 또한, GitHub, Jupyter Notebooks, 클라우드 서비스 등 실습에 필요한 도구와 플랫폼을 설정합니다.

– [교육 플랫폼 및 기관과 협력] 교육 과정을 제공할 플랫폼이나 기관을 찾습니다. 대학교, 평생 교육 센터, 전문 교육 기관, 온라인 교육 플랫폼(Udemy, Coursera 등)과 협력할 수 있습니다. 60세가 넘었기 때문에 박사급이나 기술사가 아닌 이상 오프라인 출강은 솔직히 어려울 수 있습니다. 1번과 동일한 이유 때문입니다. 시장에 젊고 생기 있는 인력들이 넘치는데 굳이 교육에 있어서 60세 넘은 노인을 채용할까요? 그렇지 않습니다. 그렇기 때문에 결국 교육을 하더라도 온라인 강의 플랫폼으로 진출할 수 밖에 없는 것이지요.

– [온라인 강의 홍보] 소셜 미디어, 블로그, 이메일 마케팅, 워크샵, 콘퍼런스 등을 통해 교육 과정을 홍보합니다. 개인적인 네트워크와 전문가 커뮤니티를 활용하는 것도 좋은 방법입니다.

– [자격증 교육] 특정 분야에서 자격증을 취득하거나 지속적으로 최신 기술과 교육 방법을 학습하여 자신의 교육 내용을 갱신합니다. 이는 교육자로서의 신뢰성을 높이고 학습자에게 최신 지식을 제공하는 데 도움이 됩니다. 그나마 신기술 교육이 아니라 자격증 교육이라면 나이가 있어도 도전해볼 수 있는 분야입니다. ISMS-P 인증 심사 자격증, PMP 자격증, CISA, CIA, CISSP, 정보관리기술사, 정보처리기술사, 컴퓨터시스템응용기술사, 정보통신기술사, 정보시스템감리사 등 여러 자격증 교육은 나이가 아닌 경험을 중요시 하기 때문입니다. 물론 이러한 분야에서 교육을 하기 위해서는 자격증을 미리 취득해야 했어야 합니다.

 -교육자, 개발자, 산업 전문가로 구성된 네트워크와 커뮤니티에 참여합니다. 이를 통해 경험을 공유하고, 학습자를 위한 추가 자원과 기회를 발굴할 수 있습니다.
은퇴한 IT 개발자가 교육 및 트레이닝 분야에 진출하는 것은 자신의 지식과 경험을 나누고, 학습자들의 커리어 발전에 기여하며, 동시에 지속 가능한 수입원을 확보할 수 있는 효과적인 방법입니다. 이 과정에서 중요한 것은 자신의 전문 지식을 최대한 활용하고, 학습자의 필요와 흥미를 충족시키는 교육을 제공하는 것입니다.

3. 스타트업 창업 (기술 서비스 창업)

60세가 넘은 IT 개발자가 은퇴 후에도 계속 일하며 노후를 대비하는 방법으로 스타트업에 참여하거나 창업하는 것은 경험과 지식을 활용하여 새로운 기회를 창출하는 흥미로운 방법입니다. 다음은 스타트업 참여 또는 창업을 위한 상세한 단계입니다.

가. 아이디어 및 시장 조사
혁신적인 사업 아이디어를 개발하거나, 기술적 해결책이 필요한 시장의 문제를 식별합니다. 이 과정에서 경험, 전문 지식, 그리고 열정이 중요한 역할을 합니다.
타겟 시장을 정의하고, 경쟁 분석을 실시하여 시장의 수요와 경쟁 상황을 파악합니다.

나. 사업 계획 수립
사업 아이디어, 시장 분석, 마케팅 전략, 재정 계획 등을 포함하는 사업 계획서를 작성합니다. 사업 계획은 목표를 설정하고, 자금 조달, 파트너십 구축, 사업 운영에 필요한 로드맵 역할을 합니다.

다. 자금 조달
개인 자본, 가족 및 친구, 엔젤 투자자, 벤처 캐피탈, 크라우드펀딩 등 다양한 자금 조달 방법을 탐색합니다. 사업 계획의 신뢰성과 잠재적 성장 가능성을 투자자에게 설득할 수 있어야 합니다.

라. 팀 구성
사업을 함께 운영할 창업 팀을 구성합니다. 다양한 전문성을 갖춘 팀원을 선발하여 사업의 성공 가능성을 높입니다. 팀 구성원 간의 역할과 책임을 명확히 합니다.

마. 제품 개발 및 시험
최소 기능 제품(MVP, Minimum Viable Product)을 개발하여 시장에서의 반응을 테스트합니다. 이를 통해 제품이나 서비스를 지속적으로 개선하고 사용자의 요구를 충족시킬 수 있습니다.

바. 마케팅 및 브랜딩
타겟 시장에 맞는 마케팅 전략을 수립하고, 브랜드 인지도를 높이기 위한 활동을 계획합니다. 온라인 마케팅, 소셜 미디어 활용, 콘텐츠 마케팅 등 다양한 방법을 활용합니다.

사. 네트워킹 및 파트너십
업계 내 네트워킹을 통해 비즈니스 기회를 확장하고, 다른 기업이나 조직과의 파트너십을 구축합니다. 이는 사업의 성장을 가속화하고, 시장 접근성을 높일 수 있는 중요한 전략입니다.

아. 사업 운영 및 관리
효율적인 사업 운영을 위한 체계를 구축합니다. 재정 관리, 고객 관리, 제품 개발 프로세스 등 사업의 모든 측면에서 체계적인 관리가 필요합니다.

자. 성장 전략 및 확장
초기 성공 후 사업을 확장하기 위한 전략을 수립합니다. 새로운 시장 진입, 제품 라인 확장, 국제 시장으로의 확장 등 다양한 성장 전략을 고려할 수 있습니다.

차. 지속 가능성 및 사회적 책임
사업이 장기적으로 지속 가능하고 사회적으로 책임감 있는 방향으로 운영될 수 있도록 계획합니다. 환경, 사회, 거버넌스(ESG) 요소를 고려한 사업 모델을 구축합니다.

60세가 넘은 IT 개발자가 스타트업 참여 또는 창업을 통해 은퇴 후에도 계속 일하는 것은 새로운 도전을 추구하고, 사회에 기여하며, 경제적으로도 독립적일 수 있는 훌륭한 방법입니다. 이러한 과정은 준비와 노력이 필요하지만, 자신의 경험과 지식을 살려 새로운 가치를 창출하는 매우 보람찬 경험이 될 것입니다. 하지만, 웬만한 실력이 있는 개발자도 창업을 하기란 쉽지 않습니다. 팀 구성과 자금 모달에서부터 많은 어려움을 겪습니다. 이것 역시 현실적으로 쉽지 않은 노후 대비 방법입니다.

4. 아르바이트 (노인 알바, 단순 노동, 공장 알바, 배달 알바, 식당 알바 등)

– IT와 관련이 없는 산업에서 근무하는 것도 흔한 노후 대비 방법 중 하나 입니다. 실제로 개발자를 30년 넘게 하시고 은퇴한 선배님께서 시설 관리 업체에서 근무하고 있다는 소식을 들은 적 있습니다. 60세가 넘어도 수입은 필요하지만 60세가 넘은 노인을 고용하는 기업은 많이 없습니다. 그렇기 때문에 어쩔 수 없이 수입이 필요하여 어떠한 일이라도 하는 것입니다.
 – 하지만 이러한 아르바이트 수입을 얻는 데에 있어서 어려운 점이 있습니다. 건강 상태입니다. 아르바이트는 보통 육체적인 노동 강도를 요구하는 경우가 많습니다. 하지만 60세가 넘은 노인의 건강 상태가 젊은 사람들보다 건강하지 않을 확률이 높으며 미래에는 로봇과 키오스크가 여러 단순 노동 일자리를 대체할 것입니다. 이러한 문제점들은 노인들이 60세 이후에 단순 노동 일자리를 얻는 데에 어려움을 동반합니다.

– 또한 근무 중 다칠 위험이 항상 존재한다는 점이 있다는 것입니다.

5. 정보관리기술사 취득 (현실적인 방법)

60세가 넘은 IT 개발자가 은퇴 후에도 계속 일하며 노후를 대비하는 방법으로 보안 감사 및 컨설팅에 진출하는 것은 높은 수요와 전문성을 요구하는 분야입니다. 이러한 경로는 풍부한 경험과 전문 지식을 활용하여 기업이나 조직의 정보 보안을 강화하는 데 큰 기여를 할 수 있습니다. IT 개발자가 은퇴 이후에 노후를 준비하는 방법은 정보관리기술사 자격증을 취득하는 것이 가장 현실적인 방법입니다.

정보 보안 분야에서 요구되는 전문 지식과 기술을 갖추기 위해 정보관리기술사, 정보시스템감리사, 컴퓨터시스템응용기술사, CISSP(인증 정보 시스템 보안 전문가), CISA(인증 정보 시스템 감사사), CEH(인증 해킹 전문가) 등의 자격증을 취득합니다. 이는 전문성을 인증하고 신뢰성을 높이는 데 중요합니다.

은퇴 전 쌓아온 경험과 전문 지식을 바탕으로 제공할 수 있는 보안 컨설팅 서비스를 정의합니다. 예를 들어, 사업 컨설팅, 사업 감리, 프로젝트 전산감사, 보안 정책 개발, 위험 평가, 침투 테스트, 사이버 보안 교육, 컴플라이언스 감사 등이 있습니다.

정보관리기술사를 취득하고 이력서를 여러 감리업체에 제출하면 많은 곳에서 잡 오퍼를 받을 수 있습니다. 정보관리기술사와 감리사는 정해진 정년이 없기 때문에 몸과 정신이 건강하기만 하다면 70대에도 계속 근무할 수 있습니다. 보안 서비스가 필요한 시장과 타겟 고객을 분석합니다. 중소기업, 스타트업, 교육 기관, 비영리 조직 등 다양한 고객군을 대상으로 할 수 있으며, 각 고객의 특정 요구와 문제점을 해결할 수 있는 맞춤형 서비스를 계획합니다.
– 기술사 자격증을 취득하면 기술사협회에 등록할 수 있고 기술사협외 분기마다 모임이 있습니다. 그곳에서 여러 기술사분들과 식사를 할 수 있고 업계 내외의 네트워킹을 통해 비즈니스 기회를 확장할 수 있습니다. 보안 업계의 다른 전문가, IT 서비스 제공업체, 법률 및 규제 컨설팅 회사와의 파트너십을 구축하여 서비스의 범위와 영향력을 확대할 수 있습니다.
– 60세가 넘은 IT 개발자가 보안 감사 및 컨설팅 분야에 진출하는 것은 전문 지식을 활용하여 중요한 사회적 기여를 하는 동시에, 은퇴 후에도 활동적이고 보람찬 커리어를 유지할 수 있는 기회를 제공합니다. 이러한 진출은 철저한 준비와 지속적인 학습, 그리고 업계와의 활발한 교류를 통해 성공적으로 이루어질 수 있습니다. 정보관리기술사는 취득하는 데에 1년 ~ 3년 정도로 짧지 않은 공부 기간을 요구하지만 IT 개발을 4년 이상 했다면 누구나 합격할 수 있는 100% 암기 시험입니다. 현직에 있을 때 정보관리기술사 자격증을 취득하여 노후를 대비하는 것이 가장 좋지만 지금 은퇴 직전이어도 늦지 않았습니다. 책과 펜만 구매하여 합격한다면 은퇴 후에도 10년은 더 IT 감리와 IT 감사 업계에서 더 근무하실 수 있습니다. IT 감리 업체 평균 연봉은 약 6,500만 원 정도이고 10년을 할 수 있다고 하면 은퇴 이후에도 약 7억 원의 수입을 얻을 수 있습니다. 반면 다른 아르바이트를 한다면 10년 동안 절대 많은 수입을 기대하기 어렵습니다. 정보관리기술사를 취득함으로써 자신의 노후를 대비하는 것은 선택이지만 

https://kmong.com/self-mark[eting/533593/gaPWRhuqHH

[출처] https://gogetem.tistory.com/entry/60%EC%84%B8%EA%B0%80-%EB%84%98%EC%9D%80-IT-%EA%B0%9C%EB%B0%9C%EC%9E%90%EA%B0%80-%EC%9D%80%ED%87%B4-%ED%9B%84%EC%97%90%EB%8F%84-%EA%B3%84%EC%86%8D-%EC%9D%BC%ED%95%98%EB%A9%B0-%EB%85%B8%ED%9B%84%EB%A5%BC-%EB%8C%80%EB%B9%84%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95

Loading