◯ 혜 택 : AI 플랫폼 개발자 양성 과정의 뉴딜일자리 사업은 기업에 필요한 맞춤형 교육(교육비 0원)으로 인재를 양성하고 3개월 교육 후 3개월의 인턴으로 실전 직무수행 경험을 쌓으면서 서울시에서 지원하는 지원금으로 인턴 수행기간 중 급여를 제공. 교육기간 중 인턴‧취업‧창업에 대한 다양한 교육과 컨설팅을 지원하며 인턴 기간 중 취업‧창업에 대한 멘토를 통해 적극적인 포트폴리오 등 지원
◯ 과 정 명 : AI 플랫폼 개발자 양성 과정
◯ 교육내용 : AI 기술의 개발 능력을 갖춘 인재의 양성을 통해 서울시 소재 AI 및 IT 중소(벤처)기업들의 AI 개발 기반을 지원하고 청년의 취업‧창업 역량을 강화하기 위한 목적의 교육을 진행
◯ 대 상 : 만 18세~39세 이하의 서울시민 (주민등록상 서울 거주자만 가능)대학 졸업(예정)자
◯ 모집기간 : 2023. 04. 03.(화) ~ 05. 12.(금)
◯ 교육기간 : 2023. 05. 15.(월) ~ 08. 10.(목)
◯ 교육위치 : 서울시
◯ 모집인원 : 20명
◯ 인턴기간 : 2023. 08. 01.(화) ~ 10. 31.(금) (약 3개월)
◯ 인턴급여 : 인턴기간 월 2,331,000원 지급
◯ 요청사항 : 과정 참여자(연수생) 모집 협조
◯ 기대효과 : 대학교 – 취업률 제고 / 전공 미적용자에 대한 취업‧창업 연계 해결참여자 – 일자리 경험과 실질적인 취업‧창업 도모 – AI 플랫폼 개발 능력 향상 및 기업 인턴 제공
이번에는 @표시가 붙은 파이썬 소스를 공부 하다가 궁굼해서 검색을 해보니 데코레이터가는 개념이 있어서 chatGPT의 도움을 받아서 정리 한다.
파이썬 문장에 @의미
파이썬에서 '@' 기호는 주로 데코레이터(Decorator)라는 개념과 함께 사용됩니다. 데코레이터는 파이썬에서 함수나 클래스를 수정하지 않고 기능을 추가하거나 수정할 수 있는 기능을 제공합니다.
데코레이터는 기존 함수나 클래스를 래핑하며, '@' 기호를 사용하여 함수나 클래스 위에 위치시킵니다. 예를 들어, '@classmethod'는 클래스 메소드를 정의할 때 사용되며, '@property'는 클래스 속성을 호출하는 메소드를 정의할 때 사용됩니다.
또한, '@' 기호는 데코레이터 외에도 다른 용도로 사용될 수 있습니다. 예를 들어, '@' 기호를 사용하여 데코레이터 없이도 함수나 클래스를 동적으로 호출하거나 참조할 수 있습니다. 이러한 용도로 '@' 기호를 사용하는 경우는 비교적 드물지만, 파이썬에서 많이 사용되는 기능 중 하나입니다.
파이썬에서 데코레이터(Decorator)라는 개념
파이썬에서 데코레이터(Decorator)는 기존 함수나 클래스를 수정하지 않고 기능을 추가하거나 수정할 수 있는 기능을 제공하는 문법적인 요소입니다.
데코레이터는 함수나 클래스의 정의 위에 '@' 기호와 함께 선언됩니다. 데코레이터는 함수나 클래스를 래핑하며, 래핑된 함수나 클래스를 호출할 때 데코레이터가 추가한 기능을 실행합니다.
데코레이터는 주로 코드의 재사용성과 가독성을 높이는 데에 활용됩니다. 또한, 파이썬에서 많이 사용되는 라이브러리들도 데코레이터를 많이 활용하고 있습니다. 예를 들어, Flask 웹 프레임워크에서는 데코레이터를 사용하여 URL 경로와 뷰 함수를 연결하고, Django 웹 프레임워크에서는 데코레이터를 사용하여 로그인 여부나 권한을 검사하는 등의 기능을 추가합니다.
데코레이터를 만드는 방법은 간단합니다. 일반적으로 데코레이터 함수를 작성하고, 이 함수 내부에서 래핑된 함수나 클래스를 받아 기능을 추가한 뒤, 새로운 함수나 클래스를 반환합니다. 이렇게 만들어진 데코레이터는 기존 함수나 클래스 위에 '@' 기호를 붙여 적용할 수 있습니다.
예제 프로그램
import time
def time_it(func):
def wrapper(*args, **kwargs):
start = time.time()
result = func(*args, **kwargs)
end = time.time()
print(f"실행 시간: {end - start:.5f}초")
return result
return wrapper
@time_it
def my_function():
time.sleep(1)
my_function()
-----------
실행 시간: 1.00009초
[뉴패러다임 챗(chat)GPT 시대, AI 기반 디지털 맞춤형 교육 학습관리시스템(LMS) 초 개인화]
- 챗(chat)GPT 시대에 학습자(학생 등) 교육 디지털 전환 가속화에 따른 개별 맞춤형 학습 시스템에 AI 활용 교수·학습법, AI 튜터링 기능, 디지털 문해력 등 챗(chat)GPT 시대 학습자(학생 등)의 효과적인 교수학습을 위하여 교육과정에 대한 운영계획을 수립하고, 학습자와 교·강사의 활동을 촉진하며, 학습콘텐츠 및 시스템의 운영을 지원하는 직무영역이 필요하다.
그리고
- 초기화 AI 지능화혁명 시대 필수 생존기술의 'AI 문해력(AI Literacy) 키우기'
- 특히, 2025년부터 수학·영어·정보 교과에 'AI 디지털교과서'를 학교에 도입된다.
'AI 디지털교과서'는 2025년에부터 초등학교 3·4학년, 중학교 1학년, 고등학교공통·일반선택 과목부터 적용이 된다.
ID가 중복되는 문제는 일반적으로 개발 중에 발생하는 일입니다. 이 문제를 해결하는 방법 중 하나는 생성된 각 요소에 고유한 ID를 할당하는 것입니다. 이를 위해 JavaScript에서는 UUID (Universally Unique Identifier)를 생성하는 함수를 제공합니다.
예를 들어, 새로운 <DIV> 요소를 생성할 때마다 UUID를 생성하여 해당 <DIV> 요소의 ID로 할당할 수 있습니다. 다음은 JavaScript에서 UUID를 생성하는 방법입니다.
function generateUUID() {
var d = new Date().getTime();
if (typeof performance !== 'undefined' && typeof performance.now === 'function'){
d += performance.now();
}
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
var r = (d + Math.random() * 16) % 16 | 0;
d = Math.floor(d / 16);
return (c == 'x' ? r : (r & 0x3 | 0x8)).toString(16);
});
}
이제 각 <DIV> 요소를 생성할 때마다 위의 함수를 사용하여 고유한 ID를 생성하고 할당할 수 있습니다.
var newDiv = document.createElement("div");
newDiv.id = generateUUID();
전화번호 입력시 "-"를 추가하는 방법은 다양하게 있지만, 가장 간단한 방법은 문자열을 자르고 다시 합치는 것입니다. 아래는 예시 코드입니다.
function formatPhoneNumber(number) {
// 문자열에서 숫자만 추출합니다.
const cleaned = ('' + number).replace(/\D/g, '');
// 숫자를 하이픈으로 구분합니다.
const match = cleaned.match(/^(\d{3})(\d{3})(\d{4})$/);
if (match) {
return match[1] + '-' + match[2] + '-' + match[3];
}
// 형식에 맞지 않는 경우 원본 값을 그대로 반환합니다.
return number;
}
// 사용 예시
const phoneNumber = '1234567890';
const formattedPhoneNumber = formatPhoneNumber(phoneNumber);
console.log(formattedPhoneNumber); // 출력 결과: "123-456-7890"
위 코드에서 formatPhoneNumber 함수는 전화번호를 입력받아 하이픈을 추가한 형식으로 반환합니다. cleaned 변수는 문자열에서 숫자만 추출한 결과를 담고, match 변수는 추출한 숫자를 하이픈으로 구분한 결과를 담습니다. 만약 전화번호가 형식에 맞지 않는 경우에는 원본 값을 그대로 반환합니다
위 코드에서 input 요소에 onchange 이벤트를 추가하고, formatPhoneNumber 함수를 호출하도록 설정했습니다. formatPhoneNumber 함수는 입력된 전화번호를 가져와 문자열에서 숫자만 추출한 후, 하이픈을 추가한 형식으로 다시 input 요소에 설정합니다.
위 방법은 사용자가 입력을 마치고 포커스가 이동한 후에만 하이픈을 추가하게 됩니다. 만약 입력 중에도 실시간으로 하이픈을 추가하고 싶다면 oninput 이벤트를 사용할 수 있습니다.