변수, 객체, 배열을 구문해서 코딩하는 헝가리안 표기법 > 개발관련
개발관련

변수, 객체, 배열을 구문해서 코딩하는 헝가리안 표기법

조회 341회 댓글 0건
  • 현재 페이지 주소 복사
  • 페이스북으로 공유
  • X 로  공유
  • 트위터로  공유
  • 네이버 블로그로 공유
  • 네이버 카페 공유하기
  • 네이버 라인 공유하기
  • 네이버 밴드 공유하기
  • 링크드인으로 공유하기
  • 핀터레스트에 공유하기

변수가 특정 용도로만 쓰이면 헝가리안 표기법이 딱 맞는데 현실은 그렇지 않기 때문에 오히려 혼동이 생길 수 있습니다.

그렇기 때문에 확실하게 타입이 정해진 경우만 사용하는 편입니다.

보통 저 같은 경우는 배열과 객체 정도는 구분을 하기 위해서 사용하는 편이라고 볼 수 있습니다.



 

● 시스템 헝가리안 표기법

  - i, s, a, b 등의 접두사가 붙어 변수의 자료형을 명확히 보여주는 형태로 표현 하는것


    // 정수 (i)
    $iUserId = 1001;
    // 문자열 (s)
    $sProductName = "무선 키보드";
    // 배열 (a)
    $aProductList = ['Item A', 'Item B'];
    // 불리언 (b)
    $bIsActive = true;
    // 실수 (f)
    $fTaxRate = 0.15;

    if ($bIsActive) {
        $iTotalItems = count($aProductList) * $iUserId;
        echo "제품명: {$sProductName}, 세금율: {$fTaxRate}\n";
    }
 


● 앱스 헝가리안 표기법

  - id, cnt, max, url 등의 논리적 목적을 나타내도록 하는것


    // 식별자 (id) - 정수형이든 문자열이든 '식별자'라는 논리적 역할을 강조
    $idTransaction = "TX987654";
    // 개수 (cnt) - 변수가 '개수'를 의미함을 강조
    $cntRecords = 50;
    // 최대값 (max) - 변수가 '최대 한계'임을 강조
    $maxPageSize = 20;
    // URL (url) - 변수가 'URL 주소'임을 강조
    $urlRedirect = "/dashboard/index.php";

    if ($cntRecords > $maxPageSize) {
        echo "총 {$cntRecords}개의 레코드가 있으며, 최대 페이지 크기는 {$maxPageSize}입니다.\n";
        header("Location: " . $urlRedirect);
    }
 


요즘은 변수명을 뭔지 명학하게 알 수 있도록 주석이 필요 없을 정도로 변수명을 짓습니다.

코볼 사용하는것도 아닌데 변수나 함수명만 봐도 뭐하는지 알 수 있도록 만든것이 좋겠습니다.


* 장점

  - 코드 읽을 때 변수의 타입이나 역할을 빠르게 알 수 있음.

  - 팀 코딩 시 일정 규칙을 유지할 수 있음.


* 단점

  - PHP 같은 동적 언어에선 타입이 언제든 바뀔 수 있어 접두어와 실제 값이 불일치할 수 있음.

  - IDE와 타입 힌트, 주석, 네이밍 규칙이 발전하면서 꼭 필요하지는 않음.

  - 오히려 변수명이 길어지고 가독성이 떨어질 수 있음.


  • 현재 페이지 주소 복사
  • 페이스북으로 공유
  • X 로  공유
  • 트위터로  공유
  • 네이버 블로그로 공유
  • 네이버 카페 공유하기
  • 네이버 라인 공유하기
  • 네이버 밴드 공유하기
  • 링크드인으로 공유하기
  • 핀터레스트에 공유하기
전체 231건 1 페이지
  • profile_image 코드자동완성 테스트한 vscode용 확장 프로그램 continue 다운로드 사용자가 엄청나게 많은데 ... 결론 부터 말하면 실패입니다. 아래 설정이 약간 잘못 되었을수 있겠지만.채팅은 잘 되는데 코드 자동완성이 잘 안됩니다.하지만 테스트 하고 싶은분 그리고 제가 나중에 다시 테스트 해볼 경우 필요할 수 있어 올리는 글입니다. 위 이미지에서 Main Config 라고 마우스 올리면 그 옆에 톱니가 나오는데 그걸 클릭해야 합니다.잘못 만들어져서 화면이 겹치는 문제가 있습니다.제 설정은 위 이미지에 대한것은 아래와 같습니다.name: lmstudioversion: 1.0.0schema: v1models:&…
  • profile_image 내가 준 먹이를 소화해서 다른 사용자에게 주면 곤란한 문제가 생길것 같아 직접 이용해 보기로 했습니다.결론 부터 말하면 잘하는 인공두뇌에 먹이 주면서 사용하는것이 낳으니 테스트 해보고 싶으신 분들을 위해서 남기는 글 입니다.사용한 확장 프로그램    twinny - AI Code Completion and Chat    Identifier: rjmacarthy.twinny 위처럼 설정하고 자신에 맞게 모델이나 IP주소 같은것만 변경해주면 됩니다.전 UI가 좋은 LM스튜디오 사용.이걸 빠르게 사용하려면 애플 실리콘 M5 Max 노트북 16인치 추천합니다.램은 최소 64G 가능하…
  • profile_image 무슨일인지 업그레이드 실패까지 생겼는데.... 왠지 모르지만 안되는게 참 많습니다.이런 경우 다시 설치하면 되긴 합니다.아마도 추측은 초기 설치 할 때 전체 사용자 선택을 해서 설치 했는데 업그레이드는 현재 유저 기준으로 해서 그런것이 아닌가 싶습니다. old 라고 된것 삭제 삭제하고new_ 이렇게된것 new_ 삭제하고 다시 실행하고 vscode에서 Help > Check for Updates 해주고 다시 시작하면 됩니다.이때 작업표시줄에 고정한게 있으면 그것 클릭하지 말고(삭제하고) 새로 설치된 아이콘 클릭해서 실행 하면됩니다.
  • profile_image vscode 사용하면 안되는것이 참 많지요.잘 되던것도 안되고 무료가 이런게 문제인데... 유료로 갈아 타려 했는데 매달 비용발생 때문에 ...어떤 것은 그것을 또 배워야 되서 할일도 못하는데 공부해야 되고 ...우선 그때 그때 수정해서 사용합니다.▷ 파일이 열리지 않는 원인은?natizyskunk SFTP 확장(1.16.3)에 내장된 구버전 ssh2 라이브러리가 Node.js의 util 모듈에서 isDate 함수를 가져다 쓰는데최신 VS Code 1.123.0이 이전에 제공되던 'isDate' 함수를 제거하면서 잘 작동하던 프로그램에 문제가 발생그래서 SFTP 연결(목록 조회)은 되지만 실제로 파일을 열거나 다운로드할…
  • profile_image 기본적인 특징은 아래와 같으며 사용 가능한지 어떤지 테스트 하면서 정리(테스트) 한것을 다음에 필요 할 수 있어 기록해 둡니다.이 파일 디비는 동시 처리하는데 문제가 있어 동시 처리 사용하고 싶으면 MySQL 같은 것 사용해야 됩니다.이게 MySQL과 명령이 비슷한것인가요? ANSI SQL 이라서 그런가요? 후자 인데요.SQL 문법은 ANSI SQL 나머지 CLI 도구 명령들은 각 DBMS에 따라 다른 경우라고 보면 됨.  - 파일 하나가 곧 데이터베이스 (.db, .sqlite). 그렇기 때문에 DBMS서버 필요 없는 경우 유용함.- 서버 없이 동작하는 경량 임베디드 RDBMS- Android, iO…
  • profile_image 하네스 엔지니어링 결론부터 말하면 개발 기획자는 별도로 할것 없이 기존에 하던데로 그냥 하면 됩니다.이것, 저것, 문제가많네~ 이런식으로 특정하지 않는 형태로 이쁘게 만들어줘 하는 방식이 문제가 있는것으로 이렇게 언급하는 방식은 현재 사람도 의도 파악을 정확히 모르기 때문에 원하는 결과가 나오지 않습니다.문제가 많아 - 어떤 문제가 많은지 구첵적으로 알려 줘야 해결 가능.이렇게 해석해도 큰 무리가 없는것으로 어떤 문제가 있는지 명확하게 알려줘야 개선이 되고 같은 문제가 생기지 않습니다. 예를 들면.1) 상태값 기록을 위해서 테이블에 시간과 현재 상태 기록해서 체크하는것을 만들어 달라고 했더니 만들긴 잘 만들었습…
  • profile_image 이건 백엔드는 데이터베이스등 서버개발이 유용한 측면들이 많죠.테스트 서버에서 작업하고 git으로 올리는 방법도 있고 git은 백업용도로만 사용하고 다중서버에 직접 올리는 방법도 있습니다.로컬의 편리한 UI + 서버의 강력한 자원 및 환경이 두 가지 토끼를 모두 잡을 수 있는 기능으로 저사양 노트북을 사용하더라도 강력한 클라우드 서버에 연결만 되어 있다면 그 서버의 성능을 내 것처럼 활용할 수 있게 됩니다.사용해 보시면 이런 좋은것을 이제 알았다니 할것입니다. 1. 로컬 환경과의 완벽한 분리 (Clean Local Machine)가장 큰 장점은 내 컴퓨터에 아무것도 설치할 필요가 없다는 것입니다.- 의존성 관리:…

상업적 이용 금지. 컨텐츠는 개인 용도로만 사용이 가능 합니다.