여니의 프로그래밍 study 225

2-7 형변환 (Javascript)

형변환(type conversion)이란? : 함수와 연산자에 전달되는 값은 대부분 적절한 자료형으로 자동 변환 되는데 이 과정을 의미한다. 형변환 예시 alert가 전달받은 값의 자료형과 관계없이, 이를 문자형으로 자동 변환하는 것 - 명시적 형변환 >> 코드에 직접 변환 될 자료형을 입력해야 하는 것 EX) long a=1 int b= (int) a >> (int)를 붙여줌으로써 int형으로 변환이 된다. 만약 a의 값이 int 타입의 범위를 벗어나게 되면, 오버플로우가 발생한다. 암시적 형변환 >> 변환 될 자료형을 입력하지 않아도 되는 형변환이다. 작은 범위의 자료형에서 넓은 범위의 자료형으로 변환할 때 일어난다. int 타입이 -> long 타입으로 변환 1. 문자형으로 변환 : 문자형의 값이 ..

2-6 alert, prompt,confirm을 이용한 상호작용 (Javascript)

alert 함수 > 사용자가 확인 버튼을 누를때까지 메세지를 보여주게끔 하는 함수 - 모달 창 : 메세지가 있는 작은 창을 의미한다. 모달이라는 단어엔 페이지의 나머지 부분과 상호 작용이 불가능하다는 의미가 내포되어 있다. 즉, 확인 버튼을 누르기 전까진 모달 창 밖에 있는 버튼을 누를 수 없다. prompt 함수 > 함수가 실행되면 텍스트 메세지와 입력 필드, 확인 및 취소 버튼이 있는 모달창을 띄워준다. result = prompt(title,[default]); title : 사용자에게 보여줄 문자열 default : 입력 필드의 초깃값(선택값) ※ IE 에서는 항상 기본값을 넣어줘야 한다. let test= prompt("Test",''); confirm 함수 (컨펌 대화상자) result = c..

2-5 자료형 (Javascript)

동적 타입 언어 : 자료의 타입은 있지만 변수에 저장되는 값의 타입은 언제든지 바꿀 수 있는 언어이다. EX) let apple='hello' apple=123 >> 주의할 점 : 변수의 선언은 한 번만 할 수 있음 1. 숫자형 (Number Type) : 정수 및 부동 소수점 숫자를 나타낸다. - Infinity : 무한대를 나타낸다. 어떤 숫자든 0으로 나누면 무한대를 얻을 수 있다. alert(1/0) or alert(Infinity) - NaN : 계산 중에 에러가 발생했다는 것을 알려준다. 부정확한 수학 연산을 사용했다는 뜻이다. 예를 들면 문자열을 숫자로 나누려고 했다던가 그런 말도 안되는 연산들! - BigInt형 : 길이에 상관 없이 나타낼 수 있는 자료형으로, 표준으로 채택된 지 얼마 안..

2-4 변수와 상수, 함수형 프로그래밍 (Javascript)

변수 Variable : 데이터를 저장할 때 쓰이는 '이름이 붙은 저장소' 자바 스크립트에서는 let 키워드를 이용해서 변수를 생성한다. let apple; apple='Hello' (let apple='Hello') >> 문자열 'Hello'를 변수 apple에 저장한다. let apple='Hello',age=25,message='World!' >> 이런식으로 한 줄에 입력할 수도 있지만, 가독성 떨어짐 var : let과 거의 동일하게 동작함 let의 구버전이라고 할 수 있음 함수형 프로그래밍 : 불변성을 지향하는 프로그래밍 언어 패러다임으로, 변경 가능한 상태를 최대한 제거하기 위해 노력하는 언어이다. 순수 함수를 지향한다. 순수함수를 통해 부수 효과를 줄이면서 프로그래밍 하는 것을 의미함 스칼라..

2-2 코드 구조

세미콜론으로 서로 다른 문을 구분한다. alert('hello'); alert('world!'); OR alert('hello') alert('world!') >> 이런식으로 줄 바꿈이 있다면 세미콜론 생략도 가능! 하지만 예외상황이 발생할 수 있어서 세미콜론을 써주기! 대괄호 [] 앞에서는 세미콜론이 있다고 가정하지 않아서,, 이런 경우에는 오류가 발생한다. 주석 1. 한 줄 주석 // 2. 여러 줄 주석 /* */ 주석 처리 단축키 한 줄 주석 : Ctrl + / 여러 줄 주석 : Ctrl + Shift + / ※ 주의사항 ※ 중첩 주석은 지원하지 않음!!

2-1 Hello World! // script 태그

자바스크립트 코드는 >> src 속성이 지정되어 있으면, 태그 내부의 코드는 싸그리 무시! HTML 안에 직접 스크립트를 작성하는 방식은, 스크립트가 아주 간단할 때만 사용한다. 스크립트가 길어지면 별도의 파일로 만들어 저장하는 것이 좋다. 별도의 파일에 작성하면 이점은? >> 브라우저가 스크립트를 다운 받아서 캐시에 저장하기 때문에, 성능상의 이점이 있다. 캐싱 : 컴퓨터의 처리 성능을 높이기 위한 기법이다. 캐시 메모리 : CPU와 메모리의 속도 차이로 인한 병목 현상을 완화하기 위해 사용한다. 자주 사용하는 데이터를 CPU와 가까운 위치에 저장해 필요할 때 마다 빠르게 꺼내쓸 수 있다. 캐시 메모리를 사용하게 되면, CPU가 메모리에 접근하는 횟수를 줄여 성능 향상 효과를 볼 수 있다. CPU가 데..

1-3 개발자 콘솔

개발자 도구를 이용하면 에러를 확인할 수 있다. 스크립트에 대한 쓸만한 정보도 얻을 수 다. 개발자 도구에서 지원하는 기능을 잘 활용하면, 개발 효율이 상당히 올라간다. bug.html은 해당 에러가 발생한 파일, 12는 에러가 발생한 줄 > 이거는 자바 스크립트 명령어를 입력할 수 있다. 이를 커맨드 라인이라고 부른다. 명령어를 여러 줄에 걸쳐 작성하고 싶다면 Shift + Enter를 누르면 된다. 그러면 명령어 실행하지 않고 줄바꿈만 할 수 있다.

1-2 매뉴얼과 명세서 (Javascript)

www.ecma-international.org/publications-and-standards/standards/ecma-262/ ECMA-262 - Ecma International ECMAScript® 2020 language specification, 11th edition - ECMAScript is a programming language based on several technologies like JavaScript and JScript. www.ecma-international.org >> 자바스크립트와 관련된 상세한 정보를 담고 있는 공식 문서 검색 방법 구글 검색엔진에다가 MDN [원하는 용어] 라고 검색 EX) MDN + parseInt EX) ‘RegExp MSDN’, ‘RegEx..

1- 1 자바 스크립트(JavaScript)란?

JavaScript 자바스크립트는 웹페이지에 동적인 효과를 주기 위해 만들어진 프로그램이다. 자바스크립트로 작성한 프로그램이 스크립트이다. 웹사이트가 로딩된 이후에 CSS와 HTML 구성 요소들을 변경할 수 있게 해주고, 이를 통해 웹 페이지를 인터랙티브 하게 만들고, 사용자의 참여도도 높일 수 있다. 자바 스크립트의 장점 - HTML/CSS와 완전히 통합할 수 있다. - 간단한 일은 간단하게 처리할 수 있게 해준다. - 모든 주요 브라우저에서 지원하고, 기본 언어로 사용된다. 이 세 가지를 모두 지원하는 브라우저 연관 기술은 JS뿐이다. 이를 이용해서 서버나 모바일 앱도 만들 수 있다. - 자바 스크립트 너머의 언어들 - 자바스크립트로 트랜스파일이 가능한 언어 1. Coffee Script : 짧은 문..

[파이썬] 여러 개의 버튼을 각자 작동하게 하는 법 (Qt designer로 UI 구현)

동기함수로 작성되어 있는 경우, 위에서부터 차례대로 함수를 수행한다. 예를 들어, 실행하기 버튼을 누르면 실행하기 버튼에 해당되어 있는 함수가 끝나기 전까진 어떠한 버튼도 눌리지 않는다. 그래서 나는 실행하기 버튼을 누른 상태에서 종료하기 버튼을 눌러 상태를 바꿔보려고 한다. 처음엔 비동기함수로 작성하려 했으나 Qt designer로 파이썬 ui를 구현해서,, 좀 어렵게 됐다.. (변명이라면 변명이겠지만,, 아직 방법을 잘 모름..) 1. def __init__ () 함수에 stop_button 변수 (bool 타입)를 선언해준다. 값은 False 2. 실행하기 메서드 (Thread 이용) 위 함수 execute1은 Thread를 정의해둔 함수! 즉 execute 함수가 진또배기라는 거! 위 함수는 그냥..