Category: 개발

Dover 웹사이트: JavaScript 필요

2025-01-13

Dover라는 웹사이트를 방문하면 애플리케이션을 실행하려면 JavaScript를 활성화해야 한다는 메시지가 표시됩니다. 이는 사이트가 프런트엔드 렌더링 또는 대화형 기능에 JavaScript를 크게 의존하고 있음을 강력하게 시사합니다. 동적 콘텐츠, 애니메이션 또는 JavaScript가 제대로 작동하는 데 필요한 복잡한 대화형 인터페이스를 사용하고 있을 가능성이 높습니다. 이는 웹사이트 디자인 선택과 JavaScript 의존도에 대한 질문을 제기합니다.

AI 코딩 어시스턴트: 제 '맙소사' 순간

2025-01-13
AI 코딩 어시스턴트: 제 '맙소사' 순간

크리스마스 휴가 기간 동안 저자는 AI 코딩 어시스턴트를 사용하여 Rust 라이브러리를 Haskell 라이브러리로 변환하는 실험을 했습니다. 결과는 놀라웠습니다. 어시스턴트는 변환뿐만 아니라 포괄적인 테스트 스위트, C 바인딩, CoreAudio 인터페이스도 생성했습니다. 이것은 단순한 지식 재탕이 아니라 AI에 의한 새로운 창작이었습니다. 저자는 미래의 소프트웨어 엔지니어는 AI 어시스턴트를 받아들여야 한다고 생각하며, 현재 업계에서는 그 채택에 대한 의견이 분분합니다.

개발 AI 코딩

Werk: 간편한 크로스 플랫폼 빌드 시스템

2025-01-13

Make의 복잡성에 지치셨나요? Simon Ask Ulsnes는 Make와 Just의 단점을 해결하도록 설계된 간편한 빌드 시스템이자 명령어 실행기인 Werk를 만들었습니다. Werk는 크로스 플랫폼 빌드를 지원하며, 복잡한 종속성을 처리하고, 사용자 친화적인 경험을 제공합니다. Rust로 작성되었으며, 비동기 처리를 효율적으로 관리하는 async/await를 활용하여 일반적인 동기화 오류를 방지합니다. 이 글에서는 Werk의 설계 철학, 사용 방법, 다른 빌드 도구와의 비교에 대해 자세히 설명하고, 저자의 Werk 개발 경험과 통찰력을 공유합니다.

개발

리터럴 프로그래밍 재고: Knuth의 접근 방식은 구식인가?

2025-01-13

이 글은 Donald Knuth의 리터럴 프로그래밍 접근 방식에 대한 비판적인 검토를 제공합니다. 저자는 Knuth의 방법이 코드 구성이라는 중요한 측면을 간과하면서, typesetting에 지나치게 중점을 두기 때문에, 정적이고 상호 작용이 적은 문서가 생성된다고 주장합니다. 저자는 코드 구성과 상호 작용 피드백을 우선시하는 리터럴 프로그래밍 스타일을 옹호하며, 자신이 만든 간단한 인터프리터를 사용하여 그 장점을 보여줍니다. 핵심은 효과적인 리터럴 프로그래밍은 개발자가 정적인 문서를 수동적으로 읽는 것이 아니라, 프로그래밍 환경에서 직접 코드를 수정하고 실행할 수 있도록 해야 한다는 것입니다.

15년간 운영된 런던 지하철 실시간 지도 서비스 종료

2025-01-13

2010년부터 한 개발자가 TfL의 공개 데이터를 사용하여 런던 지하철과 버스 노선을 실시간으로 보여주는 웹사이트를 구축 및 유지 관리해 왔습니다. BBC와 가디언에 소개되면서 인기를 얻었지만, 2025년 1월 7일 지하철 노선도에 대한 TfL의 중단 명령을 받았습니다. 수정 의사가 있었음에도 불구하고 TfL의 강경한 대응을 이유로 웹사이트를 종료했습니다. 이 사례는 대기업과 개인 개발자 간의 갈등과 공개 데이터 활용의 복잡성을 보여줍니다.

JUring: io_uring을 사용한 Java의 초고속 파일 I/O

2025-01-13
JUring: io_uring을 사용한 Java의 초고속 파일 I/O

JUring은 Java의 외래 함수 및 메모리 API를 사용하여 Linux의 io_uring 비동기 I/O 인터페이스를 활용한 고성능 실험적 Java 라이브러리입니다. 놀라울 정도로 빠른 데이터 읽기를 제공합니다. 벤치마크 테스트에서 로컬 파일 읽기 속도는 Java NIO보다 33% 향상되었고, 원격 파일에서는 78%나 향상되었습니다. 파일 읽기 및 쓰기에 대해 블로킹 및 논블로킹 API를 모두 제공하며, 현재 개발 중입니다. 인스턴스 생성 비용, 메모리 사용량, 소켓 지원 등의 기능 개선이 계획되어 있습니다.

개발 고성능 I/O

디버깅 바이블: 9가지 필수 규칙

2025-01-13

David J. Agans의 "디버깅: 가장 찾기 어려운 소프트웨어 및 하드웨어 문제를 찾기 위한 9가지 필수 규칙"은 소프트웨어 및 하드웨어 개발자들에게 고전으로 칭송받고 있습니다. 이 책은 특정 기술에 초점을 맞추는 대신 버그를 찾고 수정하는 기본적인 방법에 초점을 맞춥니다. 9가지 규칙을 통해 시스템 이해, 오류 발생, 데이터 수집, 분할 정복, 한 번에 하나씩 변경, 감사 추적 유지, 가정 확인, 도움 요청, 수정 확인 방법을 설명합니다. 경험이 풍부한 프로그래머도 유용한 알림을 찾을 수 있으며, 초보자에게는 매우 귀중한 자료가 될 것입니다.

개발

Raycast, 차세대 멀티플랫폼 생산성을 위한 풀스택 소프트웨어 엔지니어 모집

2025-01-13
Raycast, 차세대 멀티플랫폼 생산성을 위한 풀스택 소프트웨어 엔지니어 모집

간단하고 효율적인 도구 구축에 집중하는 Mac 앱 회사 Raycast는 풀스택 소프트웨어 엔지니어를 모집하고 있습니다. 웹 및 백엔드 인프라 유지 관리 및 개선을 담당하여 차세대 크로스 플랫폼 제품의 기반을 구축하게 됩니다. TypeScript 전문 지식, Ruby on Rails 또는 유사한 백엔드 프레임워크 경험, 고성능 웹 애플리케이션 구축 경험이 필요합니다. 아이디어 단계부터 유지 관리까지 전체 프로세스에 참여하고 소규모 정예 팀과 긴밀히 협력하여 제품 로드맵을 형성합니다. 사용자 경험에 대한 열정을 가지고 코드 품질을 중시하며 빠르게 성장하는 회사에서 큰 영향을 미치고 싶다면, 바로 이것이 이상적인 기회입니다.

개발

Oracle, JavaScript 상표권 포기 거부, Deno Land 맞서 싸워

2025-01-13
Oracle, JavaScript 상표권 포기 거부, Deno Land 맞서 싸워

Deno Land는 JavaScript 상표권 소유권을 둘러싸고 Oracle을 고소했다. Oracle은 2009년 Sun Microsystems 인수 당시 이 상표를 취득했다. Deno Land는 Oracle이 상표를 포기했으며 2019년 상표 갱신은 부정행위라고 주장한다. 2월 3일까지 양측이 답변을 제출하고 그 후 증거 수집 단계에 진입할 것으로 예상되며, 이 소송은 장기화될 것으로 예상된다.

개발 상표 분쟁

IRC Driven: IRC를 소셜 플랫폼으로 부활시키다

2025-01-13

IRC Driven은 IRC를 부활시켜 소셜 플랫폼으로 변모시키는 것을 목표로 하는 최신 IRC 색인 사이트이자 검색 엔진입니다. 네트워크 및 채널 색인, 사용자 프로필 생성, 네트워크 채널 목록을 기반으로 하는 채널 페이지 등의 기능을 제공합니다. 이 사이트는 여러 번 다시 작성되었으며, 최근 개선 사항에는 API 문제 해결 및 채널 봇 복구가 포함됩니다. 또한 개발을 지원할 자원봉사자도 모집하고 있습니다.

Chumby 8 커널 업그레이드: CPU 사용률 100% 미스터리 해결

2025-01-13

Chumby 8 기기의 Linux 커널을 6.x 버전으로 업그레이드하는 과정에서 저자는 CPU 사용률이 항상 100%를 유지하는 지속적인 문제에 직면했습니다. 시간 역추적 디버깅, 커널 프로파일링 및 `/proc/stat` 파일 심층 분석을 통해 문제의 근본 원인이 PXA168 하드웨어 타이머 레지스터를 읽는 커널 코드의 타이밍 문제임을 밝혀냈습니다. 이로 인해 유휴 시간 계산이 부정확해졌습니다. 저자는 이 문제를 해결하고 해결책을 메인라인 Linux 커널에 기여했습니다.

/etc/glob: 초기 Unix 쉘 글로빙의 숨겨진 이야기

2025-01-13

이 글은 초기 Unix 시스템에서 `/etc/glob`의 역사와 기능을 자세히 살펴봅니다. V7 Bourne Shell 이전에는 Unix 쉘의 와일드카드 확장(globbing)이 쉘 자체에서 처리되지 않고 외부 프로그램 `/etc/glob`에 위임되었습니다. `/etc/glob`는 명령어와 인수를 받아 와일드카드를 확장한 후 명령어를 실행했습니다. 이 글에서는 다양한 Unix 버전에서 `/etc/glob`의 작동 방식, 이스케이프 문자 처리, 외부 프로그램을 사용한 이유(초기 시스템의 리소스 제약 때문일 가능성이 높음) 등을 자세히 설명합니다.

DoxyPress 1.7.0 출시: 문서 생성 간소화

2025-01-13

DoxyPress 1.7.0이 출시되었습니다! CopperSpice 기반의 강력한 문서 생성 도구로, 문서 생성 프로세스를 간소화합니다. 설치, 빌드, 사용 방법, FAQ뿐 아니라 광범위한 사용자 지정 옵션도 제공합니다. 초보자부터 숙련된 개발자까지 쉽고 빠르게 고품질 문서를 생성할 수 있습니다.

개발 문서 생성

세련된 프로그래밍 언어의 역설: 단순함이 저주가 될 수 있는 이유

2025-01-13

일부 프로그래밍 언어는 알려지지 않았거나 지나치게 야심찬 설계 때문에 인기를 얻지 못합니다. 이 글에서는 BF와 Scheme처럼 간결하고 세련되게 설계된 언어들이 직면하는 과제를 탐구합니다. 이러한 언어에서는 개발자들이 기존 것을 사용하는 것보다 자체 구현에 중점을 두는 경우가 많습니다. 저자는 단순함과 실용성의 균형이 중요하다고 주장합니다. 여러 구현은 강력한 사용자 커뮤니티가 존재하고 다양한 구현에 대한 수요가 있을 때에만 유익합니다. Clojure와 Racket의 성공은 언어가 임계 질량에 도달하여 구현이 아닌 애플리케이션 개발에 중점을 두는 사용자를 끌어들여야 함을 시사합니다.

개발

Zig의 컴파일 타임 구성: httpz 및 ztl 라이브러리의 영리한 설계

2025-01-13

이 글에서는 Zig 프로그래밍 언어에서 컴파일 타임 메타 프로그래밍을 사용하여 구성하는 기법을 살펴봅니다. 저자는 자신의 httpz 및 ztl 라이브러리를 예로 들어 제네릭 형식 매개변수 `T`가 애플리케이션 컨텍스트와 구성의 역할을 동시에 수행하는 방법을 보여줍니다. `T` 형식 내에 정의된 함수는 라이브러리의 기본 동작을 재정의할 수 있으며, `T` 형식의 필드는 스칼라 값을 구성할 수 있습니다. 컴파일 타임 검사는 구성의 정확성을 보장하며, 컴파일 타임 최적화(예: 구성에 따른 가상 머신 스택 크기 조정)를 가능하게 합니다. 이 방법은 사용자가 컴파일 시에 구성을 제공해야 하지만, 상당한 성능 향상을 제공하며, 유연하고 효율적인 라이브러리를 구축하는 데 효과적인 전략입니다.

Qubes OS 템플릿: 안전하고 효율적인 가상 머신 관리

2025-01-13
Qubes OS 템플릿: 안전하고 효율적인 가상 머신 관리

Qubes OS는 템플릿 시스템을 사용하여 가상 머신을 관리하여 보안, 저장소 효율성 및 부팅 속도를 향상시킵니다. 각 템플릿은 루트 파일 시스템을 공유하며 애플리케이션은 qubes 내에서 실행되고 데이터를 저장합니다. 템플릿을 업데이트하면 해당 템플릿을 기반으로 하는 qubes는 다시 시작한 후 자동으로 업데이트됩니다. 소프트웨어는 app qubes가 아닌 템플릿에 설치해야 합니다. Qubes는 Fedora, Debian 등을 기반으로 하는 템플릿과 커뮤니티 템플릿을 제공합니다. 사용자는 명령줄 도구 또는 GUI 도구를 사용하여 템플릿을 설치, 업데이트, 제거 또는 전환할 수 있습니다. 제거 경고는 정상입니다. 템플릿을 전환하려면 이전 템플릿을 기반으로 하는 모든 qubes를 업데이트해야 합니다. 템플릿 보안이 매우 중요합니다. 신뢰할 수 있는 소스에서만 소프트웨어를 설치하십시오.

Whonix: 궁극의 개인 정보 보호 OS

2025-01-12
Whonix: 궁극의 개인 정보 보호 OS

Whonix는 최대한의 인터넷 개인 정보 보호 및 익명성을 제공하도록 설계된 Linux 기반 가상 머신 운영 체제입니다. 모든 인터넷 트래픽을 Tor 네트워크를 통해 라우팅하고 브라우저 지문 방지, 키 입력 위장, 엄격한 액세스 제어 등 다층 보안 조치를 구현하여 추적 및 맬웨어로부터 사용자를 보호합니다. Whonix의 설계 철학은 "모든 것이 Tor"이며, 익명 웹 서버 호스팅 및 라이브 모드와 같은 기능을 제공하여 온라인 사용자의 보안 및 익명성을 보장합니다.

개발

wonderful.dev: 개발자 포트폴리오 플랫폼

2025-01-12

wonderful.dev는 개발자가 자신의 기술을 보여주고, 업계 동향을 추적하며, 이상적인 직업이나 프로젝트를 찾을 수 있도록 설계된 개발자 중심의 온라인 포트폴리오 플랫폼입니다. 이 플랫폼은 기술 검증을 지원하며 WakaTime 데이터와 통합되어 개발자는 데이터 기반의 신뢰성으로 자신의 능력을 보여주고 구직 시장에서 경쟁력을 높일 수 있습니다. 개발자는 프로필을 만들고, 검증된 기술과 업적을 강조하고, 최신 기술 동향을 파악하며, 자신의 전문 지식에 완벽하게 맞는 기회를 발견할 수 있습니다.

uv: 알아야 할 핵심 기능

2025-01-12

uv는 단순히 빠른 Python 패키지 관리자에 그치지 않습니다. 핵심 기능인 간소화된 종속성 관리를 제공합니다. Python REPL에서 Pandas가 필요하십니까? `uv run --python 3.12 --with pandas python` 하나의 명령어만으로 가상 환경 생성이나 Python 버전 전환 없이도 사용 가능합니다. 이를 통해 임시 스크립트 작성 및 다양한 Python 버전을 사용한 실험이 매우 원활해집니다.

개발

세계 최고 수준의 제품 엔지니어링 조직 구축: 6가지 핵심 요소

2025-01-12

이 글은 Regional Scrum Gathering Tokyo 컨퍼런스에서 James Shore가 발표한 기조연설의 내용을 담고 있으며, 세계 최고 수준의 제품 엔지니어링 조직을 구축하는 방법을 탐구합니다. 그는 핵심 요소로 인재, 내부 품질, 고객 만족도, 가시성, 민첩성, 수익성을 제시합니다. 이 글에서는 개선된 채용 전략, 향상된 코드 품질, 신속한 피드백 루프, 애자일 방법론, 다른 부서와의 협업을 통해 이러한 목표를 달성하는 방법을 자세히 설명하고, 지속적인 개선의 중요성을 강조합니다. 사례 연구와 실무 경험을 통해 저자는 귀중한 통찰력을 공유하며, 효율적이고 뛰어난 제품 엔지니어링 팀을 구축하기 위한 지침을 제공합니다.

Tabby: 자체 호스팅 AI 코딩 어시스턴트

2025-01-12
Tabby: 자체 호스팅 AI 코딩 어시스턴트

Tabby는 GitHub Copilot의 로컬 대안을 제공하는 오픈소스 자체 호스팅 AI 코딩 어시스턴트입니다. 데이터베이스나 클라우드 서비스가 필요 없으며, OpenAPI 인터페이스를 통해 기존 인프라(예: 클라우드 IDE)와 쉽게 통합할 수 있습니다. 일반 소비자용 GPU를 지원합니다. 최근 업데이트에는 Llamafile 배포 통합, Answer Engine 사용자 경험 개선, Answer Engine에서 서로 다른 백엔드 채팅 모델 간 전환, 메인 페이지에 최근 공유된 스레드 표시 등이 포함됩니다. 또한 IDE 플러그인과 팀 관리, 보안 접근 등의 엔터프라이즈 기능도 갖추고 있습니다.

SemHash: 초고속 의미론적 텍스트 중복 제거

2025-01-12
SemHash: 초고속 의미론적 텍스트 중복 제거

SemHash는 의미론적 유사성을 사용하여 데이터셋의 중복을 제거하는 경량적이고 유연한 도구입니다. Model2Vec의 빠른 임베딩 생성과 Vicinity의 효율적인 ANN 기반 유사성 검색을 결합합니다. SemHash는 단일 데이터셋과 다중 데이터셋 중복 제거를 모두 지원하며, 텍스트 목록과 같은 간단한 데이터셋과 다중 열 QA 데이터셋과 같은 복잡한 데이터셋을 처리합니다. 중복 제거 결과를 검사하는 기능도 포함되어 있어 데이터 정리 프로세스를 쉽게 이해하고 개선할 수 있습니다. 벤치마크 테스트 결과 SemHash는 매우 빠르며 수백만 개의 레코드를 가진 대규모 데이터셋에도 확장 가능함을 보여줍니다.

Racket을 이용한 우아한 HTML5 생성 라이브러리

2025-01-12

Racket용 `html-printer` 라이브러리는 잘 정돈된 HTML5 코드를 생성하는 우아한 방법을 제공합니다. 핵심 함수인 `xexpr->html5`는 X 표현식을 자동 들여쓰기 및 줄 바꿈이 포함된 HTML5 문자열로 변환하며, 열 너비를 사용자 지정할 수 있습니다. 유니코드를 지원하며 문자 길이를 정확하게 처리하고, 필요에 따라 태그 사이에 줄 바꿈을 추가하여 가독성과 유지 관리성을 향상시킵니다. 의미적으로 깔끔하고 구조적으로 견고한 HTML5를 생성하는 데 적합합니다.

개발

지난주에 출시된 20개의 훌륭한 CPAN 모듈

2025-01-12

지난주에 CPAN(Comprehensive Perl Archive Network)에서 12개 이상의 좋아요를 받은 20개의 훌륭한 Perl 모듈이 출시되었습니다. 이러한 모듈은 데이터베이스 탐색, 데이터베이스 변경 관리, CGI 처리, 구성 관리, 보안 감사, 암호 관리, 날짜/시간 파싱, 데이터베이스 드라이버, 객체 모델, 코드 형식 지정, ORM 등 광범위한 기능을 지원합니다. DBD::mysql, DBI, Perl::Tidy와 같은 일반적인 모듈과 새로운 모듈이 포함되어 있습니다. 이 중요한 업데이트를 통해 Perl 개발자는 다양한 도구와 향상된 개발 효율성을 얻을 수 있습니다.

Rust의 매력은 성능만이 아니다: 프로그래머의 러브레터

2025-01-12

한 프로그래머가 Rust 프로그래밍 언어에 대한 애정을 표현하는 글입니다. 유명한 성능과 메모리 안전성 외에도 Rust의 매력적인 요소들을 강조합니다. 표현력이 풍부하고 안전한 타입 시스템, 이해하기 쉬운 컴파일러 에러 메시지, 함수형과 명령형 프로그래밍 스타일을 결합하는 유연성 등이 주요 내용입니다. 다소 가파른 학습 곡선을 인정하면서도, Go 등 다른 언어와 비교하여 Rust의 예측 가능성, 병렬 처리의 안전성, 그리고 개발의 즐거움을 강조합니다. 최고의 성능이 필수적이지 않은 경우에도 Rust는 고려해볼 만한 가치가 있는 언어로 소개됩니다.

개발

18년간의 리눅스 콘솔 사용기: 후회는 없다

2025-01-12
18년간의 리눅스 콘솔 사용기: 후회는 없다

한 프로그래머가 18년 동안 리눅스 명령줄만 사용한 경험을 이야기합니다. 2000년대 초 인터넷 접근이 제한적인 시골에서 리눅스를 배우기 시작하여 여러 배포판을 사용하며 밤샘 코딩을 통해 결국 자신만의 '깨달음'을 얻었다고 합니다. Systemd의 부상 등 현대 리눅스 트렌드에 대한 통찰력을 공유하고 Gentoo를 선택한 이유를 설명합니다. 향수 어린 이 글은 순수 기술에 대한 헌신으로 가득한 매력적인 이야기입니다.

개발 리눅스

Nextest: 왜 프로세스당 테스트를 실행하는가?

2025-01-12
Nextest: 왜 프로세스당 테스트를 실행하는가?

Rust 테스트 러너인 cargo-nextest는 각 테스트를 별도의 프로세스에서 실행하는 것으로 유명합니다. 이 글에서는 그 이유를 기술적인 이점뿐만 아니라 거대한 Rust 생태계 내에서의 조정 지점으로서의 역할에 초점을 맞춰 심층적으로 살펴봅니다. 프로세스 분리는 테스트 간의 간섭을 방지하고, 공유 리소스 경쟁이나 메모리 누수와 같은 문제를 해결하여 신뢰성을 높입니다. 프로세스 생성에는 약간의 오버헤드가 있지만, 특히 대규모 테스트 스위트의 경우 그 장점이 비용을 능가하며, Rust 테스트에서 안정적이고 신뢰할 수 있는 초점이 됩니다.

Vim에서 Bad Apple: 6500개의 정규 표현식과 마법

2025-01-12
Vim에서 Bad Apple: 6500개의 정규 표현식과 마법

이 게시글에서는 검색 쿼리만 사용하여 Vim에서 Bad Apple 뮤직 비디오를 렌더링한 방법을 설명합니다. 각 프레임은 이진 픽셀 배열로 변환되고, 직사각형으로 분할되고, Vim 정규 표현식으로 표현되었습니다. 결과는? 6500개가 넘는 정규 표현식을 포함하는 파일이며, Vim 매크로를 사용하여 순차적으로 재생하여 애니메이션을 만듭니다. 이 놀라운 업적은 Vim의 놀라운 기능과 저자의 뛰어난 프로그래밍 실력을 보여줍니다.

개발

키프레임 없이 애니메이션 실행: 새로운 CSS 기법

2025-01-12
키프레임 없이 애니메이션 실행: 새로운 CSS 기법

CSS의 새로운 기능인 `@starting-style`을 사용하면 `@keyframes` 없이 애니메이션을 만들 수 있습니다. 기존 애니메이션 방식을 대체하는 것은 아니지만, 특정 상황에서 유용한 CSS 기법입니다. 본문에서는 무한히 회전하는 사각형과 변수 `--i`를 애니메이션화하여 배경색, 변환, 회전을 제어하는 더 복잡한 애니메이션의 두 가지 예시를 보여줍니다. 항상 최선의 방법은 아니지만, 애니메이션을 표현하는 새로운 방법을 제공하며 CSS 애니메이션의 가능성을 확장합니다.

불변량: 올바른 코드를 작성하기 위한 강력한 도구

2025-01-12

이 글에서는 프로그래밍에서 '불변량'의 개념과 그 응용에 대해 탐구합니다. 삽입 지점을 계산하는 이진 검색 변형이라는 작은 예시부터 시작하여 불변량을 정의하고 유지하는 것이 올바른 코드로 이어지는 방법을 보여줍니다. 이 글에서는 불변량이 시스템의 동적 진화 과정 전반에 걸쳐 항상 참인 속성이며, 여러 실행 경로를 고려하는 것으로 인한 복잡성을 피함으로써 추론을 단순화한다고 설명합니다. Cargo, rust-analyzer, TigerBeetle과 같은 프로젝트의 예시는 유지 관리 향상이나 성능 향상 등 대규모 시스템에서 불변량을 사용하는 이점을 보여줍니다. 저자는 소규모와 대규모 프로그래밍 모두에서 불변량의 중요성을 요약하고 올바르고 효율적인 코드를 작성하는 데 있어서 그 가치를 강조하며 결론짓습니다.

1 2 186 187 188 190 192 193 194 214 215