북마크 입니당 >
코드끼리 상호 충돌 할 때 해결법 세가지(모듈화, 네임스페이스 그리고 변수 및 함수 특유 이름 설정)
- 공유 링크 만들기
- 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일동안 많은 클릭!!!
강제 css(스타일) 적용, !important;
구글 브로거의 의도는, 차피 유튜브가 주메인이고 브로거는 사이드메뉴이니, 블로거는 최대한 서버 무리 안 가게 최소한으로 운영하자는 것이다. 그래서 다른 타사 블로그와는 달리 테마(html) 편집기가 있음에도, 초보자는 꾸미기 어렵게 텅 텅 비어 놓거나 비 상용 코드를 사용하여 기능이나 스타일을 꼬아났다. ㅋ 구글 블로거인데, 정작 구글보다도 네이버에서 검색 유입이 많다면 걍 말 다한거지. html이든 기타 다른 언어든 적용 우선순위는 다음과 같다. 1. !important; 2. 태그 안 직접적인 inline 코드 3. 별도 <style> 적용 4. 읽히는 순서에서 뒤에 읽혀지는 코드 등 구글은 <b로 시작 되는, html과 자바를 섞은 xml를 쓰고, 주소 엮기 식으로 많이 사용하여 일일히 스타일을 찾아 변경하는데, 시간이 걸린다. 위 우선 순위에 따라, 뒤에 style을 만들어 적용하면 되는 것도 있고, 결국 안 되는 것이 태반이다. (로딩 간 스타일이 늦게 적용 되는 이질감도 그렇고.) 그렇다면, inline을 쓰자니, 가독성이 떨어진다. 더군다나 css를... 그래서 한 가지 방안으로 !important;를 추천한다. css를 별도로 만들 되, 옆에 !important;를 넣으면 최우선 스타일로 적용된다. z-index가 만능키는 아니다. 유튜브 iframe에 메뉴버튼이 가려지면, 클릭 영역을 없애야... 어쩌면 z-index와 원리가 비슷하다. 구글 블로거에서 가장 많이 적용 할 수 있는 부분은 위로 스크롤 할 때마다 뜨는 헤더 위젯 이다. 화면도 많이 차지 할 뿐더러 별다른 기능을 넣지 않으면, 메뉴나 검색 버튼 밖에 달리지 않는다. 심지어 배경에 색깔도 들어 가 가독성도 떨어뜨린다. 그런 것을 !important를 이용하여, 이렇게 마음 껏 고칠 수가 있다. 만약 저 스틱키한 헤더위젯을 아예 없애고 싶다? 해당 css를 지정하고 { display : none; !important; } 라고 치면 된다. 다만, !...
이 곳에 소개 된 것들은 모두 여기에서 볼 수 있습니다. click!
태양광발전소를 운영하고 있는데, 공무원에 합격하면???(겸직 허가 심사 기준, 주기)
공무원은 일반적으로 수익성 사업에 있어서는 겸직이 안 된다. 당연히 사업자가 나오는, 발전사업인 태양광 발전소는 겸직이 가능하다! ???? 공무원이 태양광 발전소 운영 가능한가?(겸직금지) 왜냐하면, 공무원 본래의 업무에 지장을 주지 않기 때문이다. 하지만, 아래 사항에 저촉이 되면, 불가 하다. ( 겸직 허가 심사 기준 ) 1. 현재 직무와 관련성 2. 불법성 3. 직무에 영향 등 예를 들어 한전 직원인데, 태양광을 영위한다? 논란이 발생한다. 누구보다 계통에 대한 정보라든지, 전기 판매 단가라든지 접근 할 수 있는 분들이 직무를 통해 얻은 정보를 활용 해 개인적인 이득을 취한다? LH공사 직원 같은 천룡인이 아니라면, 안 된다. 공무원 또한 직무와 관련이 있다면, 형평성 등의 문제나 집행에 있어 편향성이 예상 되어 겸직 불가다. 불법성에는 여러가지가 있다. 명의 도용 같은 일반 신의성실을 위반 할 때, 그리고 겸직 허가 신고를 늦게 했을 때, 오히려 허가 대상이라 할 지라도 이미 불법을 저질렀기에 허가가 나오지 않거나 승진 같은 인사에 불이익이 받는 것이 맞다. 태양광은 거의 불로소득이다. 그렇기에 왠만하면, 직무에 영향을 줄 수가 없다. 하지만, 만약 전력 판매를 업무시간 중에 한다든지, 실시간 측정량을 보고 베실베실 웃으면 그 때는 문제가 발생할 수 있다. 위 겸직허가기준에 저촉이 안 된다고 하면, 사업자등록증 나오기 전에 미리 겸직 허가 신청을 해야 한다. 사업자 나오고 나서, 멍 때리다 늦게 신고 했을 시 이미 신의성실에 위배 된다 판단, 불허 사유가 된다. (신고는 선택이 아니라, 의무다.) 어??? 나 태양광 운영하고 있다가, 이번에 공무원 되는데 어떡함요? 왠만하면, 겸직허가가 되니, 신청하고, 만약에 기준에 부적합하여 떨어질라 하면, 결국 지자체장의 허락만 받으면 되니, 코도 좀 풀어주고, 으이! 농담이고, 다른 이에게 판매를 하던, 가족이나 친인척에게 양도양수를 하면 된다. 태양광발전소도 탈세 또는 절세가 가능한가요?_가업상속공제제...
전기공사 실적신고 방법 및 유의 할 점(동영상 첨)
우리나라에는 수많은 전기공사가 발생한다. 이 것을 총괄로 관리 하는 협회가 바로 '전기공사협회'다. 우리는 실적신고라는 것을 행해야 한다. 전기공사 실적 신고를 해야 하는 이유는 단순한 관료적 절차가 아니라, 업계의 안전성과 신뢰성을 지키기 위한 핵심적인 과정이에요. 1) 안전 확보: 전기공사는 작은 실수 하나로도 큰 사고로 이어질 수 있는 분야죠. 실적 신고를 통해 어떤 업체가 어떤 공사를 수행했고, 그 결과가 어땠는지 명확하게 기록하면, 잠재적인 위험 요소를 미리 파악하고 예방할 수 있어요. 이는 결국 현장에서 일하는 모든 사람들과 일반 대중의 안전을 지키는 데 큰 역할을 해요. 2) 업계의 신뢰성 증진: 투명한 실적 관리는 고객들에게 신뢰를 줄 수 있는 중요한 요소예요. 어떤 업체가 얼마나 많은 경험과 성과를 갖고 있는지 공개됨으로써, 고객들은 더욱 안심하고 서비스를 이용할 수 있죠. 이는 업계 전체의 이미지 개선과도 연결되고요. 3) 공정한 경쟁 환경 조성: 정확한 실적 신고는 업체 간의 공정한 경쟁을 촉진해요. 실적이 우수한 업체는 그만큼 인정받고, 그렇지 않은 업체는 개선의 기회를 찾게 되죠. 이는 전기공사 업계의 전체적인 수준을 끌어올리는 데 도움이 될 거예요. 4) 정책 수립과 지원: 정부나 지방자치단체에서는 이 데이터를 기반으로 업계의 현황을 파악하고, 필요한 지원이나 정책을 마련할 수 있어요. 예를 들어, 특정 지역에 전문 인력이 부족하다는 것이 파악되면 교육 프로그램을 마련하는 식이죠. 라고 하는데... 음... 걍 많이 해 두면 언젠가 쓸 때가 있다. 관급이라든지, 보증보험이라든지 등 각 종 증명 할 때? 주의 할 것은 1. 표준과세보다 실적을 더 넣으면 안 된다는 것 2. 원도급이든 하도급이든 관급이든 사전에 협의 후 금액 입력 등이다. 별거 없다. 차피 스크랩 돌리면, 금액 다 나오는거. 틀리기도 힘들기는 한데,,, 이상하게 기성액 입력을 수동으로 해야 한다는 것이, 오입 확률을 높인다는 것이지.... 차피 계산서 선...
스마트크루즈는 최소 하이브리드에서 사용하자, 자율주행은 왜 내연기관에 적용하기 어려운가
스마트 크루즈 컨트롤이 있다. 이 속도에서는 스마트크루즈 연비 많이 깍아 먹습니다. 주의! 요즘 고속도로에서 사고 많이 낸다고 하는데, 이는 기술적 문제이기보다는 사용자의 부주의가 크다. 자율주행과 스마트 크루즈 컨트롤은 다르다. 아틀라스보면, 현대나 국내 기업이 기술력이 없는 것이 아니다. 내연기관에 넣기 부적합하기 때문이다. 전기차의 모터 시스템의 경우 전기적 신호로 인해 세밀한 컨트롤이 가능하여, 눈 길 위에서 카운터 핸들링도 가능하고는 하지만, 내연기관은 엔진의 기계적 그리고 연료 폭발로 컨트롤 해서 미세한 컨트롤이 힘들다. 여기서는 10km/h 속도로 회전하자고 해도, 연료 폭발을 무슨 수로 딱 맞춘단 말이더냐. 하이브리드도 가끔 운행 간 연료 개입을 느끼는 이유는 소프트웨어적으로 아무리 모터 속도에 엔진 속도를 맞춘다고 한들, 외기 온도, 기계적 컨트롤에 따라 미세한 차이와 개입을 느낄 수 밖에 없다. 그래서 내연기관과 전기차를 동시에 찍어내는 정책과 플랫폼을 가진 국내기업에서는 아무래도, FSD의 도입에 뒷쳐 질 수 밖에 없다. 국내 생산 전기차들 보면, 하부 세팅에 아직 내연기관의 잔재가 남아 있는 것을 보면 쉬이 알 수 있다. (그래도 먹튀 한 포티투닷은 괘씸하다) 그럼에도 스마트 크루즈는 최소 하이브리드에서 사용하라는 것은 모터에 의한 스마트 회생제동이 있기 때문이다. 하이브리드, 원페달드라이빙은 안 되지만, 스마트회생제동 정말 재밌다. 비록 레이더나 보는 시각이나 분석 능력은 자율주행보다 떨어질지 모르나, 그 특유의 모터에 의한 제어는 가다 서다 제어에 특화 되어 있기 때문이다. 전기차든 내연기관이든 하이브리드든 최종적으로 급할 때 브레이크패드를 이용하는 것은 마찬가지다. 하지만, 하이브리드나 전기차는 완전 제동 전에는 모터를 이용하여 제동을 걸기에, 세밀한 제동이 가능하다. 급할 때 제동 하는 것보다, 가장 안전한 제동은 사전에 제동하는 것이다. 하이브리드 자동차 눈길 브레이크 잡는 법(펌핑브레이크? ABS 있잖아) 물론 안전하게...
태양광 인허가 불허 시 계약금은 돌려 받을 수 있을까?
xeHostel(영덕대게태양광) 태양광 인허가는 위와 같이 여러가지 고려 할 점이 있다. 누군가는 해당 장소에 사업성분석을 하면서, 가능 여부를 가늠한다. 그런데, 나 같이 많이 해 본 사람들은 인허가에 문제 없을 가능성이 있지만, 그렇지 않은 사람들은 사업 진행 과정에서 인허가자에게 ban 먹는 경우가 있다. 그럴 경우, 설계라든지 그간 검토 간 든 비용은 누가 감당 해야 할까? 대부분 사업주(민간인) 입장은 다음과 같다. - 태양광업자(또는 영업자) 너희가 가능하다매!!!! 그래서 먼저 옆구리 찌른 사람이 바로 너니, 내가 미리 줬던 계약금을 다시 토해내라고 주장한다. 틀린 말은 아니나, 태양광 업자 입장은 다음과 같다. - 너희가 한다매!!! 이미 들어 간 설계비용 및 각종 부대비용은 우짤긴데??? 지난 번에도 언급 했다 싶이, 이 것은 의무와 책임 비중에 따라 결과가 달라지나, 대부분 100%, 사업주(민간인)이 계약금을 돌려 받을 수 있 으며, 태양광업자는 사기죄가 성립 될 수 있다. 우선 그 조건 받아내는 절차를 나열하도록 하자. 조건, 1. 계약서에 독소 조항이나 절차 상 용역 비중과 그 금액이 없을 것. 일반적 태양광 계약서에는 인허가는 업자의 의무로 되어있다. 이럴 경우 당연히 업자가 인허가 실패 시 100% 뱉어 내야 한다. 다만, 독소조항을 넣거나 절차 상 용역 범위와 그 금액이 명시 되어 있을 경우, 업자가 그 것을 증명 할 수 있다면, 그 비용은 빼고 나머지 금액은 돌려줘야 한다. 2. 태양광업자나 영업자가 옆구리를 찔렀다는 증거가 있다면, 편하다. 일반적 계약에서도 마찬가지지만, 신의성실의 의무에 따라 태양광업자나 영업자는 전문가로서, 어느정도 인허가 나올지 안 나올지 검토 할 의무가 있다. 여기다 옆구리까지 찔렀다면, 먼저 가능하다 접근하였다면, 당연히 인허가 실패에 따른 책임은 업자에게 있음으로 100% 돌려줘야 한다. 3. 불허가 사유에 따라 사기죄가 성립 할 수 있다. 사업성 분석 시 인허가 불가가 눈에 뻔...
PV over current(과전류), 인버터 고장원인 및 대처방법
먼저 말 해 두지만, 내가 지은 태양광발전소에서 나타 난 증상은 아니다. 그저 지나가다, 질의에 눈에 띄길래 언급 해 본다. 물론 난 유지관리 part가 아니라서 딱히 신경 쓰지 않아도 되지만, 그래도 알면 좋은 거지 뭐. 나중에 설계 할 때도 보이는 것이 있을거고. pv over current는 인버터에 과전류가 흐른다는 경고문이다. 1. 그럼 예상 되는 원인이 무엇일까? 원인은 걍 인버터에 전류가 많이 흘러 들어 온다는 것이다. 하나의 스트링으로 인해 발생 할 수도 있고,(아니면 전체 스트링) 접속함 단위에서 문제 일 수도 있다.(절연, 저항 파괴, 습기) 것도 아니라면, 센서가 고장 났거나. 2. 그럼 이제 점검 해 봐야지. 측정기기 있으면, 예상 되는 부분에 찍어보면 되고, 현재 설계가 적절한가 판단 하기 위해서는 계산하면 되는 거고. 주변 환경과 상황을 살펴 보면 좋다. 간혹 편리성을 위해 열감지 카메라를 들이 밀던데, 100kw 급도 아니고, 가정용 3kw에서는 좀 치아라. 3. 사실, 육안으로도 해결은 가능하다. 우선적으로 접속 부위, 체결이 제대로 되있는지만 파악해도 간단한 문제라면 잡힌다. 4. 하나의 스트링 문제라면, 바꿔끼어, 테스트 해 보는 것도 괜찮은 방안이다. 5. 그럼에도 감을 못 잡겠다? 그럼 처음부터 시공사나, 인버터 회사를 불렀어야지!!!!! 농담이고, 설계 적절성 평가 후 육안 검사나 바꿔 끼워도 감이 안 잡히고, 측정해서도 안 잡히면, 인버터 문제 일 가능성이 높다. 퓨즈나 차단기, 배선 등 습기로 인해 절연이 파괴 되었거나, 접지선이 제 역할을 못하거나. 태양광 절연저항과 접지저항의 차이 with 미국 LA 시위(시위? 폭동? 테러?) 물론 모듈 자체에서도 바이패스 다이오드가 망가졌거나 절연파괴 등의 이유로 발생 할 수 있지만, 인버터와 모듈이 고장이 났는데, 일반인이 뭘 할 수 있겠는가? 그리고 단순히 고장 났다는 사실(원인)만 찾을 것이 아니라, 그게 발생한 원인도 찾아내야 끝나는 일 아닌가. 그러니...
댓글
댓글 쓰기