북마크 입니당 >
코드끼리 상호 충돌 할 때 해결법 세가지(모듈화, 네임스페이스 그리고 변수 및 함수 특유 이름 설정)
- 공유 링크 만들기
- 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일동안 많은 클릭!!!
이 곳에 소개 된 것들은 모두 여기에서 볼 수 있습니다. click!
무선 미라캐스트 끊김 현상을 극복하기 위해서는
윈도우에서는 widi 안드로이드에서는 미라캐스트 그 이외 장치에서는 dlna 부르는 명칭도 다양하고 방법도 다양하지만 결국 이들은 wifi를 주로 기반으로 한다. 출처 : https://aldkzm.tistory.com/473 tv나 스마트폰 그리고 동글(무선 스마트미러캐스트)의 성능도 중요하지만 이를 바꾸지 못 할 경우 사용 간 끊기는 현상을 완화하기 위해서는 다음과 같은 조치를 취하면 된다. 5GHz 주파수를 지원하는 동글을 사용한다. 2.4GHz라도 채널을 바꿔주면 혼선을 막을 수 있다. 블루투스는 기본 혼선이 될 만한 무선 통신을 off시키도록 한다. 라우터 같이 무선 환경을 제공하는 출력을 가까이하는 등으로 강화시킨다. 사실 전파는 어둡고 으스스한 밤에 더 멀리 그리고 강하게 작용한다. 등 등 위 사항 중 가장 간단한 방법이 혼선을 줄 수 있는 블루투스 같은 다른 무선통신을 끄는 것이다. 블루투스가 최신버전이라면 혼선을 주는 현상이 개선 되었겠지만 그렇지 않을 경우 적용 해 볼만한 방법이다. 아니면, 걍 선연결이 제일 편하기는 하다. 삼성 dex, C type usb허브 2,000원이면 구현 가능
참교육~부정선거 재선거 당일투표 수개표, 진짜 웅장하다.(잠실닷컴 주소)
요즘 애니든 드라마든 영화든 볼만 한 것이 없다. 현실과 괴리가 크기 때문이다. 하지만 어느 날 트럼프가 베네수엘라에 특공대를 투입한다. 명작 <절대적 결의 작전>, 감독 및 주연 트럼프, 베네수엘라는 현재 축제 중 | 영덕대게태양광 그때는 지루한 일상을 깨워주는 흥분을 안겨 주었다. 그럼 후속작은 또 없을까? 트럼프가 열실히 제작 중이지만, 원래 명작은 시간이 걸리는 법. 그러던 중 우리나라에 명작이 탄생하니, 바로 야인시대 4.19혁명 후속작 <6.3 부정선거 재선거 당일투표 수개표> 미국의 <절대적 결의 작전>에 맞먹는 깊은 감동이 있는 명작이다. 현재 잠실은 유튜브 여러 각도로 라이브 중이다. 잠실 라이브 멀티뷰 현재 시간만 나면, 보고 있다. 그 어떤 유튜브 쇼츠보다 재미있으며, 그 어떤 드라마나 영화보다 뜻 깊고 감동스럽다. 사람들이 그저 태극기를 흔들며 '부정선거 재선거, 당일투표 수개표'만을 외치는데, 중독성이 강하며 뭔가 가슴이 웅장 해 진다. 사실, 만약 전쟁이 일어나면 독고다이로 싸워야지 생각했었는데, 오늘날 6.3부정선거에 모인 대한민국 국민들을 보니, 함께 싸워도 그 누구도 이길 수 있겠구나 생각이 든다. 가식적인 영화는 가라! 이것이 바로 진정한 역사이자 흐름이다. 이 역사에 편승 할 수 있다는 것만 해도 현 세대 사람들은 축복 받은 것이다. 이제 올림픽이 열리면 완전 축제지~~ 계몽령이 씨앗이 되어 사람들을 깨우고, 국민의 가장 기본권인 참정권을 부르짖고 있다. 그렇다. 나는 현재 이 6.3 부정선거 항쟁을 헌법 정신에 넣으라면 찬성한다. 장동혁이나 이진숙, 주진우, 김은혜, 전한길, 황교안 등 이 열사들을 제외한 더불어민주당을 대두한 기득권 층은 현장에 코빼기도 안 보인다. (이준석도 현장에 보이기는 한다만,,, 걍 좀 전향해라... 정말 아까운 인재다.) 이재명을 비롯한 기득권은 말한다. - 그 몇표나 된다고... - 판례도 있고 불가능해요... 얼마 전 본인들 공소취소하려 각...
랜덤함수의 한계, AI가 답하는 것은 레거시 자료 뿐이다.
자바스크립트나 파이썬 등 프로그램에는 랜덤함수가 있다. 그런데 이것이 말이 랜덤함수이지, 직접 써 보면, 거의 같은 결과를 낸다. 특히나 제한 된 시간 안에 딸랑 랜덤함수 내면 그 확률은 더 높아진다. 그도 그럴 것이 애초에 컴퓨터는 설정 된 입력값이나 제한 된 자원에 의해 움직이기 때문이다. 실제로 나는 랜덤박스를 제작하면서, 코드 다양하게 하기 싫어, 하나의 함수로 랜덤을 돌린다. 그러다 보면, 3개가 다 같은 카드가 나오는 경우를 종종 본다. 물론 이를 극복하기 위하여 이중으로 랜덤함수를 돌리거나, (랜덤함수 안에 랜덤으로 난수 집어넣기) 다른 랜덤 함수 등을 병행해서 넣거나 하기는 하지만, 결국 나오는 결과는 비슷하다. 아무리 빠르게 숫자를 시작하더라도 난수 돌리는 숫자 시작점은 같으니까. 카테고리 랜덤박스 (이 박스들도 새로고침 몇 번 하다보면 같은 카드가 나오는 것을 금방 알 수 있다.) 그래서 이번에 송도 1·2동, 똑같은 사전투표 득표수…유정복 인천시장 “나오기 힘든 결과” - 매일경제 송도 1,2동이 같은 사전투표 득표수가 나왔다는데, 컴퓨터의 개입이 있었다는 킹리적 갓심을 느끼고 있다. 랜덤에 대한 검색결과 | 영덕대게태양광 예전에 기억 할 것이다. 넥슨의 확률 조작사건. 넥슨 또 확률 조작 논란…대표 사과에도 이용자 반응은 싸늘 프로그래밍 랜덤 자체도 한계가 있지만, 인간의 의지가 개입되면 랜덤 확률은 쉬이 조작된다. 우연? 통계학상으로 잭팟이 나올 확률인데, 보통 이런 것을 조작 되었다 보는 것이 타당하다. 프로그래밍 하다보면, 컴퓨터도 일종의 습관이라는 것이 있다는 것을 알 수 있다. 그래서 숫자를 분석 해 보면 조작 된 것을 쉬...
코드가 망가지는 요인, html 셀프클로징
내용없이 그저 html 태그 혼자서 닫히는 것을 셀프클로징 이라 한다. 26.6.3 부정선거 날 그 말 많던 MBC가 스스로 한 것이다. 마치 도망 가듯 아무런 클로징 멘트를 하지 않았었지... 평소에는 더불어 물고 빨아 아주 헐 지경으로 정치 개입을 했지만 이 날 만큼은 화난 궁중들을 피해 성급히 close! 그들에게는 아직 5.18의 공포가 몸 속에 박힌 듯 하다. 여튼, html 규격 식에서는 이런 셀프클로징은 지양 해야 한다. 아무 내용이 없어, 필요 없는 갑다 해서 html에서도 의미를 두지 않거나 오류를 일으키기 때문이다. 하지만 주로 이러한 태그 코드는 자바스크립트에서 기능과 역할을 부여한다. 그러니 불필요한 구문이 아닌데, 이럴 경우 우리는 <div/>보다는 귀찮더라도 <div></div>의 형태로 클로징을 해야 오류가 발생하지 않는다. 그런데 구글 테마 부분에 코드를 넣다보면, 정석으로 클로징을 넣어도 멋대로 셀프클로징 처리를 해 버린다. 왜냐하면, 탬플릿 형태의 XML이 마음대로 최적화 해 버리기 때문이다. HTML에서는 코드를 있는 그대로 받아들이지만, XML은 현 탬플릿에 맞춰 형태를 능동적으로 바꾼다. 기본 골조가 깨지지 않으니, xml이 안전하다고 생각 될 수 있지만, 우회하여 무조건 코드를 강제 적용하는 방법이 있고, 빡친 개발자는 그렇게 적용 해 버리기에 오히려 오류가 나버리면, 찾기가 어려워진다. 강제로 적용했으니 오류 표시가 없기 때문이다. 이 셀프클로징 또한 마찬가지다. 오류기는 하나, 일반 HTML에서는 오류로 표기 안 한다. HTML은 걍 받아들일 뿐인데, xml에서 html로 코드를 그대로 옮긴다면, 제대로 작동하지 않는 불상사가 발생하는데, 이때 괜시리 콘솔에다 엘레먼트가 있는지 확인하는 코드 날리지 말고, 혹 셀프클로징 부분이 있는지 체크 할 필요가 있다. 정 귀찮으면, xml에서 코드 작성 시 빈태그, 셀프클로징을 만들지 않으면 된다. <div><span...
타노스 컨틀릿 예제
상가 태양광 폐업 할 때 어쩔?(일반 상업용 전기 태양광)
주택 3kw 태양광이야, 최소 설치 용량이고, 여기다 주택은 폐업(?) 할 일이 없으니 걱정이 덜 하지만, 일반 태양광 상계거래의 경우 상점을 하지 않으면 고민이 발생한다. 왜? 그대로 쓰면 되잖아요. 1. 태양광 발전이 아무리 잘 되도, 기본요금은 나온다. 상가나 상점 일 경우 전기계약은 일반으로 이뤄졌을 것이고, 주택용 전력거래보다 기본 요금이 훨 비싸다.(기본요금 910원 vs 6160원 * 계약용량) 태양광 발전이 아무리 잘 된다고 한들, 기본요금은 내야 하기에 그저 언제 쓸지 모르는 잉여 전력에 기대어 5, 6만원 하는 기본 요금을 날리긴 싫다. 2. 내 태양광 설치 한 업체가 없어졌다. 그렇지 않아도 머리가 복잡한데, 그나마 내 태양광에 대해 좀 아는 시공업체가 사라졌다. 난감하다. 앞으로 정책이 어떻게 바뀔지 모르겠지만, 지금 기준으로는 고민 할 문제는 아니다. 다만, 고민 하시는 분이 그 상점을 주택으로 걍 쓴다는 전제하에 상담을 하자면, 특정 용량 이하라면, 계약 전력을 바꾸고, 그 초과라면, 한전과의 태양광 계약을 바꾸는 것을 추천한다. 물론 태양광 용량이 크다면, 일부는 주택용으로 나머지는 현금화가 가능하다. 특정용량 이하면 왜 계약전력을 바꾸는 것이 좋을까? 전기자동차, 공기열 히트펌프 등 앞으로 가정에서도 전기를 쓸 일이 많아진다. 공기열에 대한 검색결과 | 영덕대게태양광 어설프게 현금화 하기 위해 공사비용이나 각종 인허가에 투자하는 것보다는 미리 전기를 축적 해 놓는 것도 나쁜 전략은 아니다. 용량이 특정용량 이상이라면, 잉여전력이 너무 남고, 높은 기본요금만 주구장창 내게 됨으로 일부를 주택으로 돌리고, 수익을 바라든지, 아니면 전부 수익화(현금화)로 돌리면 된다. 근디, 그 특정용량이 얼만디요? 안 알랴줌. 님 공사 한 시공업체에게 물어보셈. 한 가지 주의 할 것은 어설프게 진행 하여, 그렇지 않아도 부족한 계통, 다른 이에게 빼앗길 수 있다는 점이다. 3kw 상계거래 태양광도 변압기 용량 등 확인 해야 합니다. | 영덕대...
댓글
댓글 쓰기