반응형
반응형

Rust, Python, TypeScript: 새로운 프로그래밍 3대장(Trifecta)

 

 

  • Rust, Python, TypeScript가 앞으로 소프트웨어 개발의 중심 언어로 부상할 것으로 예상됨
  • AI 코딩 도구의 보편화로 인해 개발자의 언어 충성도가 약화되고, 실용적이고 생태계가 강한 언어가 선택받게 됨
  • 아이디어 중심 프로그래밍(idea-oriented programming) 패러다임이 등장, 개발자는 설계와 검토에 집중하고 구현은 AI에게 맡기는 구조로 변화함
  • 이 세 언어는 고급 타입 시스템 강력한 패키지 매니저 생태계를 모두 갖추고 있어, AI 활용과 협업, 오류 방지에 유리함
  • 에러 메시지 품질, 생태계, 플랫폼 연계성 등도 점점 더 중요한 기준이 되고 있음

Rust, Python, TypeScript가 떠오르는 이유

  • Rust는 시스템 소프트웨어, 고성능이 필요한 영역, 타입 안전성과 메모리 효율성이 탁월함
  • Python은 실험·프로토타이핑·수학/과학 라이브러리 활용에 최적, 빠르게 아이디어를 검증 가능
  • TypeScript는 웹, 브라우저, 다양한 플랫폼에 바로 적용 가능하며, 강력한 타입 시스템과 npm 생태계로 확장성 확보

AI가 바꾸는 개발 패러다임: 아이디어 중심 프로그래밍

  • AI 코딩 도구(Large Language Model) 보편화로 프로그래밍이 '아이디어 구상→AI가 구현→사람이 설계/검토'로 변화 중
  • Vibe coding은 즉흥적·모호한 명령에 가깝지만, Idea-oriented programming은 설계와 구조, 지속 가능한 원칙에 집중
  • 개발자는 주요 설계/방향 제시, AI는 반복적/구현적 작업 담당, 아키텍트와 견습생의 관계에 비유

언어 선택 기준의 변화

  • 예전에는 자신이 잘 아는 언어(예: Rust)로 빠르게 작업했으나, AI와 함께 일할 땐 필요한 라이브러리, 성능, 플랫폼 연계성이 더 중요해짐
  • 프로젝트에 따라 Python(머신러닝), TypeScript(웹·VSCode Extension), Rust(기본 선택) 등 상황별 최적 언어를 선택

타입 시스템의 중요성

  • AI 코딩 보조 환경에서는 고급 타입 시스템이 더 중요해짐
  • Rust와 TypeScript는 상태와 데이터 유효성, 실수 방지를 코드 레벨에서 강제, AI가 실수할 확률도 줄어듦
  • Python 역시 mypy, pydantic 등 설정을 통해 타입 안정성을 확보 가능

생태계와 패키지 매니저의 가치 상승

  • AI와 함께 개발할 때는 대형 라이브러리 활용이 쉬워져서, 생태계의 크기와 패키지 매니저의 품질이 더욱 중요해짐
  • Rust(cargo), TypeScript(npm), Python(uv 등) 모두 현대적인 패키지 매니저를 갖춤

사소한 문법과 워크어라운드는 덜 중요해지지만, 에러 메시지와 가이드 품질은 여전히 중요

  • LLM(AI)은 반복적 문법 실수는 빠르게 고치지만, 에러 메시지/가이드가 명확해야 효과적으로 보정 가능
  • Rust 커뮤니티의 언어 친화성(ergonomics) 노력처럼, AI도 좋은 에러 메시지를 활용해 더 나은 코드를 생산

결론: LLM이 강력한 개발 도구를 모두에게 열어줌

  • 아이디어 중심 프로그래밍 시대에는 주니어도 Principal Engineer급 설계/지휘 경험 가능
  • 코딩 자체의 ‘플로우’가 줄어든다는 우려도 있으나, 설계와 아이디어 중심의 개발 경험이 더 가치 있어질 전망

► AI와 함께하는 시대, Rust, Python, TypeScript가 강력한 타입, 생태계, 플랫폼 지원으로 개발 현장의 표준으로 자리 잡고 있음

반응형
반응형

글은 곧 삶이다.
삶을 살아가는 사람의 이야기는
언제든지 얼마든지 글이 될 수 있다.
누구나 살아가면서 자기만의 경험을
하기 때문에 자기만의 글을 쓸 수 있다.


- 고도원의 《누구든 글쓰기》 중에서 -


* 누구든 자기만의 삶을 살아갑니다.
따라서 누구든 자기만의 글을 쓸 수 있습니다.
나의 내밀하고 농밀한 삶을 어느 누가 나 이상
잘 알 수 있겠습니까? 자기 삶의 점(點)들을
얘기하듯 써나간다면 그 이상의 진솔한
글이 없을 것입니다. 자신감을 갖고
그냥 쓰세요. 오늘부터, 당장.

반응형

'아침편지' 카테고리의 다른 글

스스로 자신을 바꾼다  (0) 2025.08.18
스스로를 쉬게 하는 것  (0) 2025.08.12
전환  (0) 2025.08.11
영롱한 크리스털이 탄생하듯  (1) 2025.08.08
조금씩이라도 앞으로  (3) 2025.08.07
반응형

전환

 

모든 것이 바뀐다

반응형

'아침편지' 카테고리의 다른 글

스스로를 쉬게 하는 것  (0) 2025.08.12
누구든 자기만의 글을 쓸 수 있다  (1) 2025.08.11
영롱한 크리스털이 탄생하듯  (1) 2025.08.08
조금씩이라도 앞으로  (3) 2025.08.07
'나도 한번 글을 써보겠다'  (1) 2025.08.06
반응형

[copilot]  GitHub Copilot 에서 내 정보가 공유되지 않게 설정

 

VS Code에서 Copilot이 내 정보를 학습에 사용하지 않도록 설정하려면, GitHub Copilot 설정과 VS Code 자체의 원격 분석(telemetry) 설정을 변경해야 합니다. 이는 개인 정보 보호를 강화하는 데 도움이 됩니다.

 

 

 

{ 
    //VS Code 원격 분석(Telemetry) 설정 변경
    "telemetry.telemetryLevel": "off",
    "telemetry.feedback.enabled": false,
    "workbench.enableExperiments": false,
    // 특정 파일 유형에서 Copilot 비활성화
    //.env, .ini, .json, .yaml 등과 같이 민감한 정보가 포함될 수 있는 특정 파일 유형에 대해 Copilot이 내용을 처리하거나 제안하는 것을 막을 수 있습니다.
    "github.copilot.enable": {
        "*": true, // 모든 파일 형식에 대해 기본적으로 활성화 (또는 false)
        "plaintext": false, // 예시: 일반 텍스트 파일에서 비활성화
        "dotenv": false, // .env 파일에서 비활성화
        "ini": false,    // .ini 파일에서 비활성화
        "json": false,   // .json 파일에서 비활성화
        "yaml": false    // .yaml 파일에서 비활성화
    }
}
반응형
반응형

 

이미지 읽어서 스케치 형식으로 변환

# img_to_sketch_001.py
# 이미지 읽어서 스케치 형식으로 변환


# 파이썬 컴파일 경로가 달라서 현재 폴더의 이미지를 호출하지 못할때 작업디렉토리를 변경한다. 
import os
from pathlib import Path
# src 상위 폴더를 실행폴더로 지정하려고 한다.
###real_path = Path(__file__).parent.parent
real_path = Path(__file__).parent
print(real_path)
#작업 디렉토리 변경
os.chdir(real_path) 


import cv2
import numpy as np
import os

def convert_to_sketch(image_path, output_path="sketch_output.jpg"):
    """
    사진을 읽어들여 스케치 형식으로 변환하고 저장합니다.
    """
    try:
        # 1. 이미지 로드
        img = cv2.imread(image_path)
        if img is None:
            print(f"오류: 이미지를 로드할 수 없습니다. 경로를 확인하세요: {image_path}")
            return

        # 2. 이미지를 회색조로 변환
        gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
        
        # 3. 이미지 반전 (어두운 부분은 밝게, 밝은 부분은 어둡게)
        # 펜으로 그린 선처럼 보이게 합니다.
        inverted_img = 255 - gray_img
        
        # 4. 가우시안 블러 적용
        # 이미지를 부드럽게 만들고, 반전된 이미지와 블렌딩할 때 경계를 부드럽게 합니다.
        # (21, 21)은 커널 크기, 0은 시그마 값 (자동 계산)
        blurred_img = cv2.GaussianBlur(inverted_img, (21, 21), 0)
        
        # 5. 컬러 닷지 블렌드 모드 적용 (스케치 효과의 핵심)
        # 원본 회색조 이미지와 블러 처리된 반전 이미지를 혼합합니다.
        # "닷지(Dodge)" 모드는 밝은 영역을 더 밝게 만들고, 어두운 영역의 디테일을 유지합니다.
        # OpenCV에서는 직접적인 닷지 블렌드 모드 함수를 제공하지 않으므로, 수학적 연산을 사용합니다.
        # result = (gray_img * 256) / (255 - blurred_img + epsilon)
        # 여기서 255 - blurred_img가 0이 되는 것을 방지하기 위해 작은 값(epsilon)을 더합니다.
        epsilon = 10 # 0으로 나누는 것을 방지하기 위한 작은 상수
        sketch_img = cv2.divide(gray_img, 255 - blurred_img + epsilon, scale=256)
        
        # 6. 결과 이미지 저장
        cv2.imwrite(output_path, sketch_img)
        print(f"스케치 이미지가 '{output_path}'로 성공적으로 저장되었습니다.")

    except Exception as e:
        print(f"스케치 변환 중 오류 발생: {e}")

# --- 사용 예시 ---
# 1. 'input_image.jpg' 라는 이름의 사진 파일을 이 파이썬 스크립트와 같은 폴더에 놓으세요.
# 2. 또는 정확한 이미지 파일 경로를 지정하세요.
input_image_path = "person_01.jpg"

# 파일명과 확장자 분리 및 새 파일명 생성
file_name_without_extension, file_extension = os.path.splitext(input_image_path)
output_sketch_path = f"{file_name_without_extension}_sketch{file_extension}"
 
print(f"원본 파일명: {input_image_path}")
print(f"확장자 없는 파일명: {file_name_without_extension}")
print(f"확장자: {file_extension}")

#output_caricature_path = file_name_without_extension + "_caricature_result." + file_extension
# F-string을 사용하여 문자열 내부에 변수를 직접 삽입합니다.
output_sketch_path = f"{file_name_without_extension}_caricature_result{file_extension}"



convert_to_sketch(input_image_path, output_sketch_path)

# 결과 이미지 확인 (선택 사항)
# try:
#     # OpenCV로 이미지 표시 (OpenCV 창을 사용)
#     result_img = cv2.imread(output_sketch_path)
#     if result_img is not None:
#         cv2.imshow("Sketch Image", result_img)
#         cv2.waitKey(0)  # 아무 키나 누를 때까지 대기
#         cv2.destroyAllWindows() # 모든 OpenCV 창 닫기
#     else:
#         print("결과 이미지를 읽을 수 없습니다.")
# except FileNotFoundError:
#     print("결과 이미지를 찾을 수 없어 미리보기를 실행할 수 없습니다.")
# except Exception as e:
#     print(f"결과 이미지 미리보기 중 오류 발생: {e}")

반응형
반응형

당신의 과거,
당신이 받은 모든 상처는
물리적인 현실에 존재하지 않습니다.
그것들이 여기 당신 생각 속에 남아있게
하지 마세요. 현재 이 순간을
흙탕물로 만들 뿐입니다.


- 웨인 다이어의 《인생 수업》 중에서 -


* 과거 속 상처는
내가 어떤 시선으로 바라보는가에 따라
갈립니다. 영원히 지워지지 않는 아픈 흔적일 수도 있고,
현재와 미래를 빛나게 하는 불씨가 될 수도 있습니다.
내 의식이 성장함에 따라, 상처는 상처로만
존재하지 않습니다. 뜨거운 열과 압력으로
영롱한 크리스털이 탄생하듯, 상처도
변성 작용을 일으킵니다.

반응형

'아침편지' 카테고리의 다른 글

누구든 자기만의 글을 쓸 수 있다  (1) 2025.08.11
전환  (0) 2025.08.11
조금씩이라도 앞으로  (3) 2025.08.07
'나도 한번 글을 써보겠다'  (1) 2025.08.06
우연히 만난 맛있는 음식  (3) 2025.08.05

+ Recent posts