image from: https://www.bricktogether.co.kr/goods/goods_view.php?goodsNo=1000001636 

JS 아키텍트인 Douglas Crockford님의 발표 중에서 다음 세대의 프로그래밍 컨셉은 어떻게 될 것인가에 대한 얘기 중 레고가 나왔습니다. 절차지향, 객체지향, 관점지향 여러가지 기술들이 있는데, 다음은 어떤 것으로 예상하냐는 것이죠. web 2.0 시절에 트위터에서 발표하신 것이었는데, 앞으로는 레고처럼 OpenAPI 등을 이용해 프로그램을 조립한다는 내용이었습니다.

이 말에 공감하는 것은 컴퓨팅 환경이 너무도 많이 변했습니다. 지금도 계속 변해가고 있고, AI의 일상화로 인해서 더 급변하는 것 같습니다. 제가 처음 프로그램을 짰던 시절에는 정보시대의 월간마이크로소프트, 컴퓨터 쥬니어 같은 잡지와 서점의 프로그래밍 책이 다였습니다. 인터넷이라는 것은 제대하고 처음 경험해 봤고, 블로그에 넘쳐나는 정보들이 제 정보 수집원이었습니다. 이제는 뭐, AI 없이 프로그래밍하는 게 상상이 안됩니다.

성경에 `해 아래 새 것이 없나니`라는 구절이 있습니다. 기술이 전에 없이 나오는 시대인데, 이건 새로운 거 아닌가? 하는 생각이 들 수도 있지만, 그 새로운 기술은 인간의 생활을 위한 것이기 때문에, 새로운 기술이 나와도 궁극적으로는 인간의 삶과 연결된다는 뜻으로 해석됩니다.

요즘은 개발도구(IDE)가 많이 좋아졌습니다. 옛날처럼 API를 외워서 타이핑하지 않아도 되고, 컴파일하기 전 편집기에서 이미 오타와 경고 등은 이미 표시됩니다. 인텔리J의 Alt+Enter나 이클립스의 Ctrl+1 처럼 문제 상황에 대한 가이드도 잘 되는 도구들이 엄연히 존재하는 시대입니다.

더구나 오픈 소스도 바다와 같이 넓게 펼쳐져 있기 때문에, 세상에 없는 기능을 만드는 것은 극히 일부일 뿐입니다. AI에게 샘플 코드를 요구하는 것도 가능하기도 합니다.

현시대 프로그래밍은 조립과 같은 작업이라고 생각합니다. 컴포넌트를 잘 구해서, 잘 조립해서, 쓸만한 애플리케이션을 만드는 일, 그게 필요하다고 봅니다.

요즘 관심이 있는 것은 lazygyu님의 룰렛입니다. https://lazygyu.github.io/roulette/ GitHub에 코드도 공개하셨고, 블로그도 있습니다.

 

당첨자 뽑기 룰렛 개발

물리엔진을 이용해 구슬들이 떨어지는 당첨자 룰렛 만들기

lazygyu.net

 

재미있는 조립하시길 바랍니다.

1. 언어, 프레임워크로 원하는 기능의 코드를 요청

2. 현재 있는 코드를 붙여 놓고, 취약점 또는 리팩터링 요청

3. 쉽지 않지만, 현재 코드에 대한 테스트 케이스 요청

engine

image from: https://civitai.com/images/1078270?modelVersionId=92021&prioritizedUserIds=1340464&period=AllTime&sort=Most+Reactions&limit=20 

 

Git 마법사 되기

원문: https://dev.to/elliot_brenya/become-a-git-wizard-mastering-the-advanced-git-commands-3he4

"깃타스틱하고, 깃리셔스하고, 아주 깃니피센트!" (역주: fantasic, delicious, simply magnificent) 저는 강력하고 대중적인 버전 관리 시스템인 Git에 대해 이렇게 설명하고 싶습니다. 이는 코드에 마법 지팡이를 사용하여 변경 사항을 추적하고 동료 마법사(또는 개발자)와 협업할 수 있는 것과 같습니다. 이 글에서는 Git 경험을 더욱 마법처럼 만들기 위해 가장 일반적으로 사용되는 Git 주문(명령)과 몇 가지 마법 팁(베스트 프랙티스)이 포함된 포괄적인 Git 치트 시트를 제공할 예정입니다.

먼저 Git 주문을 시전하기 전에 먼저 컴퓨터에 설치해야 합니다. 걱정하지 마세요. 들리는 것만 큼 무섭지 않습니다. 공식 웹사이트(https://git-scm.com/downloads) 에서 최신 버전의 Git을 다운로드하고 지침에 따라 설치할 수 있습니다. 설치되면 터미널 또는 명령 프롬프트를 열고 Git 여정을 시작합니다.

시작하려면 'git init' 주문을 시전하여 새 저장소를 초기화해야 합니다. 이렇게 하면 현재 작업 디렉토리에 .git이라는 새 디렉토리가 생성되며, Git은 코드의 변경 사항을 추적하는 데 필요한 모든 메타데이터와 파일을 저장합니다. 코드를 위한 마법의 상자라고 생각하세요.

이제 몇 가지 기본 Git 주문을 살펴보겠습니다.

아, Git의 주문! 개발자는 이러한 주문을 기억하고 언제든지 사용할 수 있어야 합니다. 이러한 주문은 성공적인 코드 협업 및 관리의 중추입니다. 숙달해야 할 몇 가지 기본 주문을 살펴보겠습니다.

'git add' - 이 주문은 "스테이징 영역"에 새 파일이나 변경 사항을 추가합니다. 코드가 공식적으로 저장소에 합류하기 전에 대기실이라고 생각하세요. 'git add'를 사용하여 특정 파일이나 디렉토리를 추가하거나 'git add'를 사용할 수 있습니다. 현재 작업 디렉토리에 모든 변경 사항을 추가합니다.

'git commit' - 이 주문은 코드에 대한 승인의 최종 도장과 같습니다. 변경 사항을 저장소에 저장하고 나중에 참조할 수 있도록 "커밋 메시지"라는 메모를 남길 수 있습니다. 이 메시지는 커밋 중인 변경 사항에 대한 간략한 설명이어야 합니다.

'git status' - 이 주문은 저장소의 현재 상태를 보여줍니다. 추가, 수정 또는 삭제된 파일과 스테이징 영역에서 대기 중인 파일을 보여줍니다. 이 주문은 올바른 파일을 커밋하고 있는지 확인하기 위해 변경 사항을 커밋하기 전에 시전하는 데 유용합니다.

'git log' - 이 주문은 타임머신과 같습니다. 저장소의 커밋 기록을 볼 수 있습니다. 커밋 메시지 및 작성자와 함께 만들어진 모든 커밋 목록이 표시됩니다. 이 주문은 특정 커밋을 찾거나 코드의 변경 내역을 확인해야 할 때 시전하는 데 유용합니다.

'git diff' - 이 주문은 코드의 현재 버전을 마지막으로 커밋된 버전과 비교합니다. 추가, 수정 또는 삭제된 줄이 표시됩니다. 이 주문은 변경 사항을 적용하기 전에 어떤 변경 사항을 확인하고 싶을 때 시전하는 데 유용합니다.

'git branch' - 이 주문을 사용하면 Git 저장소에서 분기(branch)를 관리할 수 있습니다. 브랜치를 사용하면 동시에 여러 버전의 코드에서 작업할 수 있습니다. 이 주문을 사용하여 새 브랜치를 만들거나 기존 브랜치로 전환하거나 브랜치를 삭제할 수 있습니다.

'git merge' - 이 주문은 한 브랜치의 변경 사항을 다른 브랜치로 병합합니다. 브랜치에서 변경한 사항을 메인 브랜치에 병합하려는 경우에 유용합니다. 이 주문은 소스 브랜치의 변경 사항을 대상 브랜치로 병합합니다.

이제 기본 및 고급 Git 주문을 다루었으므로 한 단계 더 나아가 워크플로를 간소화하고 팀과의 공동 작업을 더욱 원활하게 만드는 데 도움이 되는 몇 가지 고급 Git 명령에 대해 이야기해 보겠습니다.

사용할 수 있는 가장 강력한 명령 중 하나는 'git rebase'입니다. 이 명령을 사용하면 여러 커밋을 보다 일관된 단일 커밋으로 재구성하고 결합할 수 있습니다. 이는 커밋 기록을 정리하거나 여러 커밋을 하나로 스쿼시(압축)하려는 경우에 특히 유용합니다.

또 다른 편리한 명령은 'git cherry-pick'입니다. 이 명령을 사용하면 한 브랜치에서 다른 브랜치로 특정 커밋을 선택적으로 적용할 수 있습니다. 이는 전체 브랜치를 병합하지 않고 한 브랜치에서 다른 브랜치로 특정 변경 사항을 적용하려는 경우에 특히 유용합니다.

디버깅과 관련하여 'git bisect'는 생명의 은인입니다. 코드에서 특정 버그나 문제를 가져온 커밋을 찾을 수 있습니다. 이 명령을 사용하면 코드에서 문제의 원인을 빠르게 식별하고 이전 작업 버전으로 되돌릴 수 있습니다.

때때로 우리는 실수를 하거나 생각을 바꿀 때 'git reset'이 유용합니다. 이 명령을 사용하면 커밋 실행 취소, 파일 수정 취소 또는 브랜치 포인터를 다른 커밋으로 이동할 수 있습니다. 이는 변경 사항을 실행 취소하거나 브랜치 포인터를 다른 커밋으로 이동하려는 경우에 매우 유용합니다.

마지막으로 'git reflog'가 있습니다. 이 명령을 사용하면 리포지토리에서 브랜치 및 참조 업데이트의 전체 기록을 볼 수 있습니다. 이는 리포지토리의 전체 기록을 확인하고 손실된 커밋을 복구하려는 경우 매우 유용합니다.

이러한 명령은 모든 개발자의 무기고에 있는 강력한 도구이며 이를 마스터하면 작업 흐름 및 다른 사람과의 공동 작업에서 큰 차이를 만들 수 있습니다. 그러나 다른 강력한 도구와 마찬가지로 주의해서 사용하고 그 결과를 인식하는 것이 중요합니다. 커밋하기 전에 항상 작업을 테스트하고 다시 확인하십시오. 연습이 완벽을 만든다는 사실을 기억하십시오. 두려워하지 말고 실험을 통해 작업 흐름에 가장 적합한 명령 조합을 찾으십시오. 행복한 깃팅(Git-ting)!

2000년까지 만들어지고, 현재도 쓰이고 있는 언어들입니다. 연도는 위키피디어에 기록된 것입니다.




프로그래밍 언어의 역사

  • 기계식 컴퓨터
    • Piano Player
    • 차분 기관
  • 기계어
    • Machine Language
    • Machine Code
  • 어셈블리어
    • 1950s
    • Assembly Language
  • Fortran
    • 1957
    • The IBM Mathematical Formula Translating System
  • Lisp
    • 1958
    • LISt Processing
  • COBOL
    • 1959
    • COmmon Business Oriented Language
  • BASIC
    • 1964
    • Beginner's All-purpose Symbolic Instruction Code
  • Pascal
    • 1970
  • C
    • 1972
  • C++
    • 1983
  • Python
    • 1991
  • Java
    • 1995
  • JavaScript
    • 1995
  • C#
    • 2000  


컴파일도 필요없고, 즉석에서 바로 확인도 가능합니다. 마치 z80시대의 BASIC 느낌이라고 할까요. 물론 LIST, RUN 등의 원초적인 시절과 현재의 shell은 확연히 다르지만 말이죠.

http://www.ibm.com/developerworks/kr/library/tutorial/au-dw-au-unixtips4-i.html

엔터프라이즈라고 하는 기업 환경에서 프로그래밍 하려면 shell 프로그램은 짜기 힘들어도 읽고 내용 간파 정도는 기본이 아닐까 생각됩니다.

ps. 어째 초짜 대상으로 돌팔이 짓을 하는 글일 수도 있는데, 그냥 제 생각입니다.

+ Recent posts