라떼로 시작해 봅니다.

보통 개발환경을 구축하려면 운영체제 설치하고, 통합개발환경 도구와 플랫폼SDK를 설치합니다. 이 설치 과정도 꽤나 복잡하고, 번거롭습니다. 이 작업만 해도 하루가 족히 걸립니다.

 

하지만 바야흐로 21세기... 2024년.

서버 운영 환경도 가상화 되는 현실에서 로컬 개발 환경 구축 과정도 별반 다르지 않네요.

 

이번에 개발 환경 구축 가이드를 작성할 일이 있어서..윈도우 VM 을 MS에서 제공해 줬던 것이 기억이 나서 찾다가 알게되었습니다. 예전에   MS는 브라우저 호환성 검사용으로 VM이미지를 제공해 주었습니다.  그런데 이번에 찾아보니 마이크로소프트는 아예 윈11 개발환경을 VM이미지로 만들어서 무료로 제공하고 있습니다.

심지어 VMWare용, Hyper-V용, VirtualBox용, Parallels용으로 나눠서 제공합니다.

 

이 VM 이미지에는 

  • 윈 11 엔터프라이즈 평가판
  • VS 2022 커뮤니티 에디션 + UWP, .NET 데스크탑, 애져 및 윈 App SDK
  • WSL2 + 우분투 리눅스
  • 윈도우즈 터미널
  • 개발자 모드 활성화

가 포함되어 있다고 합니다.

 

정말 MS... 이런 모습은 본받아야 합니다. 정말 개발자 친화적인 기업입니다.

 

이제는 VM이미지 다운로드 받고, 실행하면 되겠네요.

사실 애져에서 제공되는 Microsoft DevBox도 그렇게 사용할까 했는데, 한달에 대략 20~30만원의 비용이 나오겠더라구요.

 

 

앗. 주소 공유를 깜빡했네요.

 

https://developer.microsoft.com/en-us/windows/downloads/virtual-machines/

 

Download a Windows virtual machine - Windows app development

Start building Windows applications quickly by using a virtual machine with the latest versions of Windows, the developer tools, SDKs, and samples ready to go.

developer.microsoft.com

 

즐거운 개발생활에 집중합시다.

 

반응형

예전에 같이 공부했던 것 정리했던 기록입니다. 리팩토링을 리마인드 하기 위해서 OReilly에서 21년 10월 출간된 "Five Lines of Code" 책을 가지고 공부했었습니다. 지난 6월에 정리한 것을 이제 하나씩 공유해 볼까 합니다. 리팩토링 관련해서 좋은 책이니 일독을 추천합니다.


 

코드 품질이 좋으면 유지보수비용도 낮아지고, 오류도 적고, 개발자도 행복.

 

기술(skill) 코드가 좋은지 나쁜지, 나쁘면 리팩토링이 필요한지를 판단하는 기술. 판단력과 경험 필요. 주니어에겐 육감처럼 느껴질 수도 있음.
문화(culture) 코드 개선 작업에 시간을 할애할 수 있고, 장려하는 문화.
도구(tool) 우리가 하는 일이 안전한지 확인하는 데 도움이 되는 무언가.
자동화된 테스트 등

 

리팩토링

  • 코드의 기능(하는 일)을 변경하지 않고도 사람이 더 읽기 쉽고 유지 관리하기 쉽도록 코드를 변경하는 것
  • 정기적으로 수행하지 않으면 시간(개발자의 시간은 곧 비용)이 많이 걸릴 수 있음.
  • 코드 속도 향상,  코드를 더 작게 만들기, 코드를 더 일반적으로 변경하여 재사용 가능하게 만들기, 코드를 더 쉽게 읽거나 유지 관리하기
  • 코드가 수행하는 작업을 변경하진 않으므로, 읽기 쉽고 유지 보수가 쉬운 코드를 작성하는 방법에 중점.

좋은 코드: 사람이 읽기 쉽고 유지 관리가 쉬우며, 설정한 작업을 올바르게 수행

코드 이해가 중요한 이유.

  • 대부분의 프로그래머는 코드를 작성하는 것보다 코드를 읽고 이해하는 데 더 많은 시간을 할애
  • 코드를 이해하지 못한 채 무언가를 변경하면 치명적인 오류가 발생할 수 있기 때문
  • 코드의 가독성을 향상시키면 새로운 기능을 구현할 시간 확보 가능
  • 유지 보수가 쉬운 코드는  버그가 줄어들고 수정하기 쉬워진다
  • 코드를 읽을 때  머릿속으로 코드가 무엇을 하는지에 대한 모델을 구축하는데, 한 번에 머릿속에 더 많은 것을 기억해야 할수록 더 피곤해짐.

코드 악취

  •  코드가 나쁘다는 것을 암시할 수 있는 요소
  • 리팩터링은 샤워를 하는 것과 같다.-Kent Beck
  • 리팩터링은 정기적으로 수행할 때 가장 효과적이고 비용도 적게 듬.일상 업무에 리팩터링을 통합하는 것이 좋음.

개발 워크플로 6단계:

  • 탐색하기.: 문제(요구사항)에 대한 인식 . 실험으로부터 시작. 무언가를 빠르게 구현한 다음 고객과 함께 요구사항을 검증해보기.
  • 명세하기.  구축해야 하는 것이 무엇인지  명시. 어떤 형태로든 자동화된 테스트를 수행하는 것이 가장 좋음.
  • 구현하기:  코드 작성.
  • 테스트: 작성한 코드가 명세를 통과했는지 확인
  • 리팩터링: 코드 전달 전에 다음 사람이 작업하기 쉬운지 확인
  • 배포(적용): 풀 리퀘스트 또는 특정 브랜치에 푸시

누가 뭐라해도 코드의 가치는 작성한 코드를 고객에게 전달하는데 있다!!

 

 

규칙 기반 리팩터링 수행 워크플로

레거시 시스템 리팩토링

  • 먼저 쉽게 변경할 수 있는 구조로 바꾼 다음. 쉽게 변경하세요.-Kent Beck
  • 새로운 것을 구현하려고 할 때마다 새로운 코드를 쉽게 추가할 수 있도록 리팩터링부터 시작

리팩터링의 가치가 없는 코드베이스:

  • 작성하고 한 번만 실행한 다음 삭제할 코드.
  • 폐기되기 전에 유지 관리 모드에 있는 코드.
  • 임베디드 시스템이나 게임의 하이엔드 물리 엔진과 같이 엄격한 성능 요구 사항이 있는 코드.

도구

  • 자동화된 테스트:  소프트웨어 개발에 있어 자동차에 브레이크와 같은 존재
  • 레시피와 유사한 상세한 단계별 구조화된 리팩토링 패턴
  • 버전 관리
  • 컴파일러
  • 도구의 도움을 받아서  리팩토링 작업에 대한 확신을 얻자!

 

DRY(반복하지 마세요) KISS(단순하게, 바보처럼) 원칙을 준수

규칙의 목적은 이해를 높이는 것.더 잘 알 때까지는 규칙을 따르자.


 



반응형

+ Recent posts