개발언어 11

[Python] GIL

1)GIL이란? GIL은 파이썬 인터프리터에 한 갱의 Thread가 하나의 바이트 코드를 실행할 수 있도록 걸어두는 Lock이다. 하나의 Thread는 파이썬 인터프리터의 모든 자원을 사용하나, 다른 사용할 수 없도록 Lock을 걸어둔다는 의미이다. 예시) import threading x = 0 def foo(): global x for _ in range(1000000): x += 1 def bar(): global x for _ in range(1000000): x += 1 thread1 = threading.Thread(target=foo) thread2 = threading.Thread(target=bar) thread1.start() thread2.start() thread1.join() th..

개발언어/Python 2023.09.20

[JavaScript] 이벤트 루프

자바스크립트 특징 ‘단일 스레드’ 기반언어 → 동시에 하나의 작업만을 처리 가능 동시에 여러가지 작업을 처리하기 위해서 → 이벤트 루프 사용 따라서, 이벤트 루프를 이용해 비동기 방식으로 동시성을 지원 ex) function delay() { for (var i = 0; i < 100000; i++); } function foo() { delay(); bar(); console.log('foo!');// (3) } function bar() { delay(); console.log('bar!');// (2) } function baz() { console.log('baz!');// (4) } setTimeout(baz, 10);// (1) foo(); → setTimeout함수 이벤트 요청 후 스택에서 ..

[JavaScript] var, let, const 차이점

1. 변수 선언 방식 javascript에서 변수 선언 방식을 크게 var, let, const로 나눌 수 있다. [var] ex) var name = 'type' console.log(name) // type var name = 'javascript' console.log(name) // javascript var는 다음과 같이 같은 변수를 한 번 더 선언했음에도 불구하고, 에러가 나오지 않고 다른 값이 출력되는 것을 확인 할 수 있다. 이는 유연한 변수선언에 유리하지만, 코드량이 많아진다면 어디에 어떻게 사용 될지도 파악하기 힘들뿐더러 값이 바뀔 우려가 있다. ES6이후, 이를 보완하기 위해 추가 된 변수 선언 방식이 let과 const이다. [let] ex) let name = 'type' cons..

[Java] 입출력 API

[InputStream/OutputStream] - 1Byte 단위로 읽고 쓴다. - 이미지, 동영상 등의 데이터에 주로 사용된다 *input은 파일 데이터를 "읽는다" output은 파일에 데이터를 "쓴다" 라고 생각하기 System.in 필드 System클래스의 in이라는 정적필드는 InputStream타입의 필드이다. System.out 필드 System클래스의 out이라는 정적필드는 PrintStream타입의 필드이다. 따라서 PrintStream이 제공하는 print(), println(), printf()메소드를 이용해 모니터로 출력 가능함 Scanner 클래스 java.util패키지에서 제공하는 클래스(입출력스트림, 보조스트림 x) Scanner는 간편히 라인단위 문자열을 읽을 수 있도록 n..

개발언어/Java 2021.07.04

[JavaScript] AJAX (fetch,axios,비동기처리)

1. 동기 vs 비동기 동기와 비동기를 나누는 가장 큰 차이점은 어떻게 실행 순서를 가지는 지에 있다. 동기적 방식은 발생하는 하나의 이벤트가 모두 끝나야 다음 이벤트를 처리할 수 있는, 실행 순서가 확실한 방식이고 비동기적 방식은 연속적으로 발생하는 이벤트를 담은 후, 완료되는 순서대로 일을 처리하는 실행 순서가 확실하지 않은 방식을 말한다. 2.AJAX란? JavaScript를 사용한 비동기 통신, 클라이언트와 서버간에 XML데이터를 주고받는 기술을 의미한다. XMLHttpRequest 객체를 이용해 전체 페이지를 리로드하지 않고 필요한 데이터만 로드할 수 있다. 3. Ajax 구현방식 - fetch javascript 내장 라이브러리로 imprt할 필요가 없다. return 값은 Promise 객체..

[JavaScript] 이벤트의 종류

UI 이벤트 – 사용자가 웹페이지가 아닌 브라우저의 UI와 상호작용할 때 발생 load 웹 페이지의 로드가 완료되었을 때 unload 웹 페이지가 언로드 될 때(새로운 페이지를 요청한 경우 ) error 브라우저가 자바스크립트 오류를 만났거나 요청한 자원이 없는 경우 resize 브라우저의 창 크기를 조정했을 때 scroll 사용자가 페이지를 위아래로 스크롤 할 때 키보드 이벤트 - 사용자가 키보드를 이용할 때 발생 keydown 사용자가 키를 처음 눌렀을 때 keyup 키를 땔 때 keypress 사용자가 눌렀던 키의 문자가 입력되었을 때 마우스 이벤트 - 사용자가 마우스나 터치화면을 사용할 때 발생 click 사용자가 동일한 요소 위에서 마우스 버튼을 눌렀다 땔 때 dbclick 두 번 눌렀다 땔 때..

[Java] 객체지향프로그램 OOP란

OOP (Object Oirented Programming) 객체지향 프로그래밍 프로그래밍에서 필요한 데이터를 추상화시켜 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 만드는 프로그래밍 방법이다. 그렇다면 객체지향 프로그래밍은 뭘까? 기존의 절차지향 프로그래밍의 관점에서 벗어나 독립 단위의 객체 모임으로 파악하는 것이다. 즉, 각각의 객체들이 있으면 이를 잘 짜여지게 프로그래밍하는 것 객체들 사이에서는 서로 데이터를 주고받으며 처리하는 능력을 가진다. OOP의 특징 4가지 캡슐화 - 자료 표현을 실제 구현 내용이 보이지 않게 캡슐화 시키는 개념 (예)변수 앞private선언) 추상화 - 객체들의 공통 특징을 묶어 하나의 클래스로 다루는 것 다형성 - 하나의 객체가 여러가지 타입을 가질 수..

개발언어/Java 2020.12.26

[Java] 자바 개념 및 실행과정

자바란? 자바는 1991년 Sun Microsystems (썬 마이크로시스템즈)사에서 제임스 고슬링이 고안한 객체 지향 프로그래밍 언어입니다. 자바의 특징 1. 운영체제에 독립적 - 자바는 자바 실행환경(JRE)가 설치 되어 있는 모든 운영체제에서 실행이 가능합니다. 2. 사용하기 쉬운 언어 - 자바는 객체 지향 언어이기 때문입니다. (OOP, Object Oriented Programming) 3. 자동 메모리 관리 - C++같은 경우 메모리에 생성된 객체를 제거하기 위해 개발자가 직접 코드를 작성해야합니다. - 하지만 자바는 객체 생성시 자동으로 메모리 영역을 찾아서 할당하고, 사용완료 후 쓰레기 수집기(Garbage Collecor)를 실행시켜 자동으로 사용하지 않는 객체를 제거합니다. 4. 네트워..

개발언어/Java 2020.12.14

[Python] 파이썬의 기본문법

1. 화면출력 함수 - print 1) print함수의 ()괄호 안에 출력내용을 입력합니다. 2) 문자열을 인식하려면 문자열 밖에 '작은 따옴표' "큰따옴표" 로 감싸주어야 합니다. 3) 여러개의 변수 출력 시 , 콤마 로 구분합니다. 4) 숫자는 따옴표를 입력하지 않습니다. - 위와 같이 자바처럼 문자열과 다른 타입과의 + 연산으로 연이어서 출력 불가 - 출력하고자 하는 값들을 ,로 나열하면 연이어서 출력됨 (자료형 상관없이) - 게다가 사이에 공백이 구분자로 들어감 2. 변수 1) 변수명에 공백이 있으면 안됩니다. 2) 변수에 문자열을 넣을 시 문자열 밖에는 '작은따옴표' 혹은 "큰따옴표"를 입력하여야 됩니다. 3) 변수에 숫자를 넣을 시에 '작은따옴표' 혹은 "큰따옴표를 입력시 문자열로 인식하게 됩..

개발언어/Python 2020.12.10