공지사항
코드끼리 상호 충돌 할 때 해결법 세가지(모듈화, 네임스페이스 그리고 변수 및 함수 특유 이름 설정)
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
AI의 장담점 중 하나는 리셋을 할 수 있다는 것이다.
장점 일 때는 인간만이 가질 수 있는 편견으로부터 벗어 날 수 있지만,
단점은 그야말로 리셋이기 때문에, 코드 작성 시 변수나 함수의 이름이 같다는 것이다.
간혹 같은 구조의 기능을 여러번 사용하여 구현 할 때,
스타일이나 변수 그리고 함수들이 충돌하여 의도치 않은 결과물을 도출하거나
작동하지 않는다.
그 때 해결방법으로는
모듈화: 코드를 기능별로 나누어 모듈화하면 간섭을 줄일 수 있어요. 각 모듈은 독립적으로 동작하도록 설계하세요.
네임스페이스 사용: 변수나 함수 이름이 겹치지 않도록 네임스페이스를 사용하세요. 이를 통해 전역 변수나 함수의 충돌을 방지할 수 있습니다.
코드 리뷰: 팀원들과 코드 리뷰를 통해 간섭이 발생할 수 있는 부분을 미리 발견하고 수정할 수 있어요.
테스트: 유닛 테스트와 통합 테스트를 통해 코드 간섭을 조기에 발견하고 해결할 수 있습니다.
버전 관리 시스템: Git과 같은 버전 관리 시스템을 사용하면 코드 변경 사항을 추적하고 충돌을 쉽게 해결할 수 있어요.
코딩 규칙 준수: 팀 내에서 코딩 규칙을 정하고 이를 준수하면 코드 간섭을 줄일 수 있습니다.
개인적으로 세가지 방법을 추천한다.
모듈화나 네임스페이스는 같다.
물론 구현방식이나 그 본래 목적은 다르나, 쨌든 대괄호({})에 기능을 묶어 사용한다는 것은 마찬가지다.
다만, 무턱대고, 일일히 필요할 때 마다 모듈화 하기 보다는,
공통된 기능이나 살짝 살짝 다른 비슷한 코드는 상속이라는 개념을 넣든지,
변수만 변경하면 다른 결과를 도출하는, 말 그대로 모듈화를 하는 것을 추천한다.
그래야 코드가 덜 복잡하고, 쓸떼없는 스레드를 생성하여, 불필요한 자원을 낭비하는 일이 없기 때문이다.
그런데, 마냥 공통된 기능을 묶는다는 것도 능사가 아니다.
특히나 저출산! 시대의 작금에 경제적인 사정에 의한 정관 수술은...
아니다.
왜냐하면, 결국 인간이 관리하기에,
극단적인 묶기는 오히려 관리적 측면에서 마이너스적인 요소가 될 수 있다.
예를 들어, 어떤 기능을 없애고 싶은데,
아예 잔여물도 없애고 싶은데,
코드를 이리저리 실타래처럼 묶어놓으면, 그만큼 낭패가 없으며,
모듈의 의미를 퇴색시킨다.
그러한 잔여물은 나중에 코드의 보완 취약성을 낫는 것이고 말이다.
그래서 마지막 방법,
무식한 방법일지도 모르나, 각 변수, 함수마다 특유의 이름을 붙여주는 것이다.
인간의 상상력은 무한이기 때문에 가능하지만,
자주 리셋 되는 AI 특성 상 힘들 수도 있지만,
지시만 잘 내리면 극복 할 수 있다.
아니, 오히려 AI라면 더 잘 할 수 있다.
옛날에는 '바보'라며, 사람들을 차별했다.
요즘 애들은 '경계성 지능 장애'라고 부르며, 차별하고 있다.
정말 놀리는 것도 영악 해 졌다.
개근상,
진짜,
옛날의 바보는 보호의 대상이 될 수도 있었지만,
오늘 날의 경계성 지능 장애는 단순히 이해의 대상이다.
연민이라는 것도 뭣도 없다.
단순히 장애와 비장애의 기준을 설정 해 놓고,
그 어느쪽의 점수에 속하지도 않는 이를 경계성 지능 장애라고 하는데.
인간의 부족함과 나약함 그리고 귀차니즘의 변명거리로 사용된다.
하지만, AI는 이를 극복 할 수 있다.
물론 연민이나 그딴 것은 없지만,
인간의 부족함을 끊임없이 학습 시킬 수 있는 장점을 가지고 있다.
의새들이 잘난척 하고 본인 스스로를 천룡인이라고 생각하지만,
솔직히 내가 보기에는 경계성 지능 장애라 불리는 자도 끊임없이 공부를 하다보면, 똑같은 수준에 다다를 수 있다.
단지, 시간이 더 걸린다는 것일 뿐.
필멸자들 스스로 한줌도 안 되는 능력 때문에 서로를 나누고, 급을 나누는 것을 보면,
AI가 얼마나 우습게 여길까.
그 고양이 수준 밖에 안 되는 지능을 가진 AI가 말이다.
C++ 네임스페이스 예제
#include <iostream>
namespace A {
void printAll() {
std::cout << "A의 printAll 함수" << std::endl;
}
}
namespace B {
void printAll() {
std::cout << "B의 printAll 함수" << std::endl;
}
}
int main() {
A::printAll(); // A 네임스페이스의 printAll 함수 호출
B::printAll(); // B 네임스페이스의 printAll 함수 호출
return 0;
}
위 예제에서는 A와 B라는 두 개의 네임스페이스를 정의하고, 각각 printAll 함수를 포함하고 있습니다main 함수에서 A::printAll()과 B::printAll()을 호출하여 네임스페이스 충돌 없이 함수를 사용할 수 있습니다1.
C# 네임스페이스 예제
C#
using System;
namespace NamespaceA {
class MyClass {
public void Print() {
Console.WriteLine("NamespaceA MyClass");
}
}
}
namespace NamespaceB {
class MyClass {
public void Print() {
Console.WriteLine("NamespaceB MyClass");
}
}
}
class Program {
static void Main(string[] args) {
NamespaceA.MyClass a = new NamespaceA.MyClass();
NamespaceB.MyClass b = new NamespaceB.MyClass();
a.Print(); // 출력: NamespaceA MyClass
b.Print(); // 출력: NamespaceB MyClass
}
}
네임스페이스 예제 (C++)
namespace A {
void print() {
std::cout << "A 네임스페이스" << std::endl;
}
}
namespace B {
void print() {
std::cout << "B 네임스페이스" << std::endl;
}
}
int main() {
A::print(); // A 네임스페이스의 print 함수 호출
B::print(); // B 네임스페이스의 print 함수 호출
return 0;
}
모듈화 예제 (JavaScript)
JavaScript// math.js
export function add(a, b) {
return a + b;
}
export function subtract(a, b) {
return a - b;
}
// main.js
import { add, subtract } from './math.js';
console.log(add(5, 3)); // 출력: 8
console.log(subtract(5, 3)); // 출력: 2
7일동안 많은 클릭!!!
tv 전원은 들어오는데 화면이 안 나올 때 대처방안
tv 공장모드에 들어 가 무언가를 만지다, 갑자기 화면이 꺼지더니 tv가 나오지 않는다. 무척 난감하다. 요즘 tv가격이야 원체 싸니 이참에 새로 장만하면 되지만, 그래도 돈이 나간다는 사실에 속이 쓰라린다.(아, 케비스톤!) 일반적으로 이때 공식 a/s 센터를 찾지만, 사실 그들에게 주어지는 것은 간단한 메뉴얼 그 이상 그 이하도 아니다. 심지어 그들은 해당 제품을 이용 해 본 적도 없으며 관심도 없다. 만약 님이 그들에게 공자모드 어쩌구 저쩌구 화면 안 나온다 하면 그들은 십중팔구 이렇게 말할 것이다. '패널 또는 보드가 고장 난 것 같다.' 세상에서 제일 간단한 수리방법은 부품을 교체하는 것이다. 특히 통짜로 교체하는 것이 수익에도 좋고 아무 고민 할 필요 없다.(그래서 대부분 보드 갈아야 한다고 답볍함) 여기다 tv 보드 나간 현상 中 일반적인 하나는 전원코드를 꽂았을 때 전원불빛만 주기적으로 빠르게 깜빡인다는 것이다. 이는 전원은 들어오지만 연결 할 장치를 못 찾겠다는 의미로 이 현상까지 발현한다면 얄팍한 tv에 대한 지식을 가진 사람들은 보드 고장으로 결론을 내린다. 하지만 보드 고장이 사실 나기가 어렵다. tv가 움직이는 것도 아니고 강한 외부충격이나 전시상품과 같이 오래 켜진 체 방치 되어야 하는데 스마트폰의 등장으로 이러한 경험을 하기가 어렵다. 즉, tv가 잘 나오다가 갑자기 꺼지며 화면이 나갔다는 것은 파워모듈에 이상이 있을 가능성이 높지 (처음부터 불량이 아니라면) 보드가 나가기 힘들다. 그런데 파워는 들어오는데 화면이 안 나온다? 이것은 다르게 접근 해 봐야 한다. 다른 외부입력은 없는가 이다. 윈도우 같은 운영체제도 그렇지만 일반적으로 제품에 프로그램을 설치하기 위해서는 외부에서 입력하게 되는데 이 때 별도의 루트를 지정하지 않으면 외부에서 입력한 정보를 다 받아들인다. 하지만 역시 이 프로그램도 어떠한 기준점이 있어 하드웨어와 맞지 않으면 그저 대기모드에 들어가게 된다. 이에 따라 우선 tv에 연결된 (기본적인 ...
헬싱~ 시리즈 다시보기 순서
헬싱은 크게 tv와 ova 이 두 종류가 있다. ova는 돈 벌기 위해 만든 dvd버전으로 당연히 tv와 비교 해 보면 퀄리티가 다른다. 여기다, tv는 2001년에 만들었고, ova는 2006년에 제작 되었으니 내용도 많이 다르다. 줄거리는 대영제국 왕립국교기사단, 통칭 헬싱 기관에서는 100여년에 걸친 연구와 실험끝에 최강의 언데드 아카드를 탄생시키는데 성공한다. 이 아카드는 인간인 헬싱경을 마스터로 모시며 같은 언데드나 뱀파이어들을 척살하는 임무를 수행하고 있다.... 이러한데... 사실 tv보다는 ova가 훨씬 낫다. ova보다가 tv판 보면 많이 실망 할 것이다. 보는 순서는 tv > ova > The Dawn 이나 tv는 걍 넘겨도....
테더링(핫스팟) 제한 무력화 또는 우회(DUN)하는 방법, how it's done
드디어 SK통신사를 이용하다, LG로 넘어갔다. 뭐, SK 해킹 때문에 넘어 간 것은 아니고, 2025 알뜰폰 요금제 업데이트, 이제 평생요금 데이터 무제한도 나올 때 되었지? 때가 되서 넘어 간 것이다. 1Mbps... 느린 속도이기는 하나, 테더링(핫스팟)으로 활용하면, 노트북으로 간단한 업부를 보거나, 가족들이 유튜브나 가볍게 유흥을 즐길 수 있다. sk는 제한이 없던 것 같던데,,, LG 통신사는 당당하게 있네??? 기본 통신 데이터를 다 쓰니, 테더링(핫스팟)이 안 되는 것이였다. 처음에는 LG의 1Mbps가 SK보다 느리구나 생각하다가, 아예 되지를 않으니 이상하여 통신사에 문의했다. 돌아 온 대답은 "기본 데이터와 테더링 데이터는 별도로 관리하고 있어, 기본 데이터가 남아 있더라도, 테더링 데이터를 다 쓰면 핫스팟이 안 된다. 약관에 써놨다." 약관을 꽁꽁 숨겨놓고는 약관에 있다고 한다. sk 해킹 때는 약관에 업체 잘 못이면, 위약금 없다 해놓고는 잘만 받아놓고는, 이럴 때는 보여주지도 않은 약관을 찾고 있다. 쨌든 테더링을 왜 제한 할까는 나중에 다루도록 하고, 우선, 이 혼문을 극복하는 방법을 알아보자! 빠르게, 방법은 3가지다. 1. 설정에서 APN 설정 변경 2. 데터링 우회 어플 사용 3. 최신폰이라면, ADB에서 설정변경 1. 설정 > 연결 > 모바일네트워크 > 엑세스 포인트 이름 가서 새로운 엑세스 포인트 이름을 만들면 된다. 테더링 무제한 사용 방법 (핫스팟 우회 하기) : 네이버 블로그 이분은 많은 것을 넣었지만, 핵심은 APN유형, dun이다. Dial-Up Networking, 스마트폰을 모뎀으로 써서 핫스팟으로 쓰겠다 이다. apn 유형에 이것만 추가하면 되는데, 괜시리 기본 프로필을 잊어버리는 경우도 있으니, 새로 만들어서 사용하라는 것이다. 이게 안 된다고 하면... 두번째 방법인 어플을 까는거고. NetShare - 루트 없는 테더링 - Google Play 앱 근디, 이것이 vp...
태양광 부지 강조(투명도 조절), 코스피는 왜 오를까?
부지가 아무리 크다 한들, 모두 태양광을 할 수 있는 것이 아니다. 목적, 방식, 자원 등 기타 사안에 따라 부분 적으로 하거나, 더 하고 싶다 추가 하는 부분이 생겨난다. 서류란 가독성이 중요하다. 그래서 우리는 이 넓~~~은 부지나 건축물, 태양광을 올리고자 하는 부지만 눈에 딱 띄게 하는 방법으로, 투명성 조정을 이야기 하고자 한다. hatch 또한 적절한 방식이나, 부지 강조라기보다는 부지 '구분'이 더 적절하다. 그렇다고 불필요한 건물을 없애면 현장 파악에 왜곡이 생기니, 불필요한 건물이나 배경에 투명도 조절을 권한다. 적용 방법은 간단하다. 1. 흐리게 보이고자 하는 객체 선택 후 2. 특성에서 투명도에 숫자 70 정도 집어 넣으면 된다. 명령어도 있던데, 기억 안 나면, 직관적인 이 방법을 추천한다. 복구 할 때는 0을 집어넣으면 되고. 프린터를 했는데, 반영이 안 된다면? 프린터 설정에서(ctrl + P) 투명도 인쇄나 이와 비슷한 것을 선택하면 적용된다. 이렇듯 한가지 사실을 부각하기 위해 주변 지형, 환경 등을 걍 지워도 되지만, 태양광 모듈 배치에 있어서 이해를 위해서는 주변 지형을 어느정도 알고는 있어야 한다. 대한민국 코스피는 왜 오를까? 간단하다. 1. 화폐의 가치가 떨어지니까.(싸니까) 2. 상법개정으로 자사주 개념이 없어지고, 개미들이 노랭이 봉투법과 비슷한 힘이 생기는까. 3. 외국 자본들이 줍줍하는거지. 우리 IMF 때도? 거의 헐값에 은행이며, 뭐며, 기업들 외국에 다 넘겼잖아. 그렇게 외국인들이 우리나라 줍줍하는 거다. 이에 휩쓸린 개인들은 나라가 ㅈ되던지 말던지 오르네? 하고 참여하는 거고, 부동산은 막히고, 토지거래허가제 간단 요약, 우선 서울 아파트만 조지자. 우리나라 돈의 가치는 떨어지니 현물 시장에 눈을 돌리다 보니, 주식이 제일 만만 해 보이고, 오르고 있거덩! 그러니 이 사정 저 사정 모르고 다들 덤벼드는거지. 하지만, 이미 신문에까지 나왔던 것은 누군가 다 해먹었다는 것이고. 그럼 언제 팔아요? ...
OLE(캐드 이미지 삽입)가 이상하게 삽입 될 때, '클라이언트를 업데이트 할 수 없습니다.'
캐드에 있어 OLE란? 캐드 OLE 오류 반쯤 해결~OLE도 복사가 되네? 근디, 이미지편집은 또 안 되??? 오류가 많은 종자다. OLE를 넣은 도면인데, 1. 저장 했다 열어, 추가로 넣을려고 하면, 오류발생. 2. 사진 용량이 커도 오류 발생. 여기다 OLE로 삽입한 이미지는 캐드 내에서는 편집이 안 된다. 캐드 내에서는.(신축 이런 거 말고.) 그 수 많은(?) 오류 중 ' 클라이언트를 업데이트 할 수 없습니다 ' 가 있는데, 원인은 명확하지 않지만, 이미지 용량을 줄이니, 해결 되었다. 어떤 님은 그림판에서 이미지를 불러올 때, 픽셀을 조절하여, 이미지 용량을 줄이면 바로 적용이 가능하다고 하지만, 내 경우 안 되었다. 그래서 먼저 이미지 용량을 줄인 다음 저장하고, 적용하니, 그 때서야 삽입 할 수 있었다... 이런 때 보면, 캐드는 정말 원초적인 프로그램이구나라는 것을 느낀다. 영덕대게 프로그램 간 호환이 안 되는 이유로는 1. 한글 이름으로 되어 있을 때 2. 용량이 너무 클 때 3. 버전업이 안 되 있을 때 4. 경로가 적합하지 않을 때 등이다. 버전업이야, 서로 호환이 안 되면 그럴 수 있다고는 하지만, 1번과 2번 그리고 4번의 경우는 요즘 같이 스펙이 고사양화 되고, 평준화 된 시점에서 거의 사라진 현상인데, 유독 우리나라 몇 정부기관 사이트에서나 볼 법한 광경을, 캐드에서 보게 되니, 흠칫 놀란다. 용량 줄이는 방법은 여러가지가 있다. 1. 전용 프로그램을 이용 2. 자르기를 하거나 3. 픽셀 조절하거나 4. 사진 용량을 줄여주는 온라인 사이트를 이용 등 등 등 나는 주로 Offline에서 작업을 많이 해서, 자체 프로그램을 이용하는 것을 선호한다. 1. 윈도우 10 '사진' 프로그램 실행해서 편집에서 이미지 크기 조정, 2. 픽셀 줄이기 이러면, 용량이 3mb로 확 줄어 오류는 발생하지 않는다. 이와 비슷한 현상이 어디서 봤는데.... 화질(해상도) 저하 없이 그림판으로 증명 사진을 만드는 방법 증명사진 ...
나의 히어로 아카데미~ 8기...인간은 반드시 명멸한다.
나의 히어로 아카데미아 8기가 시작되었다. 무개성인 올마이트가 특별 주문하여 만든 슈트를 입고, 올포원과 싸운다. 그 슈트는 자신이 가르친 학생들의 개성을 집약 해 놓았다. 올포원은 영웅이 나에게 지는 모습을 보여서 되겠냐면서 조롱하지만, 올마이티는 말한다. 인간은 원래 명멸한다. 우리나라에서 가장 센 사람이라 오만하게 말한 사람에게. 넌 태생적 한계 때문에 올마이티가 될 수 없다. 영웅이란 올포원이 아니라, 원포올이다. 여튼, 마무리 작품이니 한번 지켜보자. 줄거리 인구의 약 8할이 특이체질 개성을 갖고 있는 초인사회로 탈바꿈한 세계. 폭발적으로 급증한 범죄와 맞서 싸우는 히어로들은 시민 모두의 동경의 대상이었다. 미도리야 이즈쿠도 그런 히어로를 꿈꾸는 중학생. 하지만 그는 히어로에게 필수적인 개성을 타고나지 않았는데--!!.... 보는순서는 1기, 2기 > ova > 3기 > 극장판 2명의 영웅 > 4기 >>> 7기 처음에는 초록색 머리의 주인공이 마음에 안들어서 보지 않았다가... 다른 캐릭터들이 마음에 들어 볼까 하다가,,, 남의 학창시절은 관심이 없어, 안 보다가,,, 7기 이제 막바지 인 만큼 볼려고 노력 중이다. 미국의 최고 히어로가, 무기빨이라는 것이 마음에 들지 않지만, 어쩌면 그렇기에 인류 대표 히어로라 볼 수 있을지 모르겠다. 나의 히어로 아카데미아의 단점은 풍둔주둥아리술, 입으로 말하는 것은 다 이루어지기에, 그 한계 없는 것이 머릿속을 도리어 복잡하게 만든다. 응원 할 히어로를 스스로 버리게 되는 꼴. 응원 할 것이 없으면, 그 인생은 재미가 없어지는거지 뭐... 그런데, 자꾸 미국 대빵 히어로가 브라자, 브라자 하길래,,, 영어에서 '오빠'가 브라자였나... 싶다가, 브라더라는 영어를 일본어 화 했다는 것을 끝날 때쯤 깨달았다!!!!
하이브리드 오르막길(급경사) 오를 때 변속 방법
지난번에 내리막길에 대해 언급 한 적이 있다. 내리막길 때 회생제동 vs 엔진브레이크... 스마트크루즈??? 이번에는 급경사로 이루어진 오르막길이다. 사실, 이 부분을 다룰 생각도 못했다. 요즘은 자동변속기라 하여, 굳이 신경 쓸 필요없이, 알아서 기어를 변속 해 주거나, 전기차인 분들은 모터 자체 토크가 커서, 신경을 그다지 안 써도 되는 부분이기 때문이라. 그런데, 자동변속기 세팅에 따라 완만하게 변속하는 경우가 있어, 이에 불만이 있는 분들이 있다. 고RPM을 써서, 이거 터지는 거 아닌가하고 말이다. 일명 레드존이라하여 그 범주 내에 지속적으로 유지하는 것이 아니라면, 엔진은 아무리 웅~ 소리를 내도, 잘 망가지지 않는다. 그리 설계 되었다. 그러나 자동변속기가 웅~ 소리가 날 때까지 변속을 안하냐면, 1. 엔진 스펙이 딸려 고단으로 못 간다 판단 2. 아직 타력 받을 정도가 아니라 판단. 즉, 자동변속기는 이 정도면 타력을 받아 스무스하게 올라 갈 수 있을 것이라 판단 했을 때 기어 단수를 올리고, 이에 RPM이 낮아지며, 소리가 잦아든다. 우리 같은 수동기어 세대야, 평지에서도 기어를 막 가지고 놀아, 그리 어려운 개념은 아니지만, 요즘은 1급을 없애자는 기조와 함께 자라온 자동변속기, 2급짜리 세대라 이 개념을 모르는 경우가 있다. 밟으면, 앞으로 간다, 패달에서 발을 떼면, 속도가 낮아진다고만 아는... 범퍼카 세대? 엔진은 변속을 함으로서 엔진 회전을 효율적으로 운동(일)으로 바꾼다. 이에 변속기라는 개념이 있는 것이고, 단거리를 급가속하여 치고 나갈 때 왜 기어 단수를 낮추는지 이해가 안 간다면, 오르막길 때 걍 'D'로 해서 올라가라. 엑셀을 밟아도 차가 속도는 안 나고, 엔진만 왱~ 거린다? 그럼 더 밟아라, 더 밟거나 발을 풀어줘라라고 하고 싶은데,, 괜히 그랬다가 차가 뒤로 넘어 갈까 싶어 더 밟으라고 조언한다. 그럼 레드존 가기 직전에 단수를 알아서 ...
댓글
댓글 쓰기