Programming Language
-
자바 - 인스턴스 멤버와 정적 멤버 우리가 보통 자바의 클래스에 대해 배울 때 클래스는 객체의 설계도라고 배웠다. 그리고 클래스 멤버(필드, 메서드)는 당연히 객체에 포함되어 있어야 한다. 하지만 생각해 보면 같은 클래스로부터 만들어진 객체에도 객체들끼리의 공통 클래스 멤버가 존재할 수 있는데 이 멤버들을 객체를 생성할 때마다 공통 멤버도 같이 생성하는 게 과연 효율적인가에 대해 질문해 볼 수 있다. 예를 들어보자면, 객체마다 필드 값이 달라야 한다면 해당 필드는 객체마다 따로 가지고 있는 게 맞다, 하지만 객체마다 필드의 값이 모두 같아야 한다면? 예를 들어, 원주율 같은 필드가 있다고 했을 때 원주율이 객체마다 다를 필요 없이 모두 같아야 한다. 만약 객체마다 원주율 필드를 따로 가지고 있다면 메모리..
[Java] 자바 - 인스턴스 맴버와 정적 맴버자바 - 인스턴스 멤버와 정적 멤버 우리가 보통 자바의 클래스에 대해 배울 때 클래스는 객체의 설계도라고 배웠다. 그리고 클래스 멤버(필드, 메서드)는 당연히 객체에 포함되어 있어야 한다. 하지만 생각해 보면 같은 클래스로부터 만들어진 객체에도 객체들끼리의 공통 클래스 멤버가 존재할 수 있는데 이 멤버들을 객체를 생성할 때마다 공통 멤버도 같이 생성하는 게 과연 효율적인가에 대해 질문해 볼 수 있다. 예를 들어보자면, 객체마다 필드 값이 달라야 한다면 해당 필드는 객체마다 따로 가지고 있는 게 맞다, 하지만 객체마다 필드의 값이 모두 같아야 한다면? 예를 들어, 원주율 같은 필드가 있다고 했을 때 원주율이 객체마다 다를 필요 없이 모두 같아야 한다. 만약 객체마다 원주율 필드를 따로 가지고 있다면 메모리..
2023.12.26 -
파이썬 데코레이터 파이썬 데코레이터는 함수나 메서드를 장식하거나 수정하는 데 사용되는 강력한 기능이다. 데코레이터는 기존 함수의 동작을 변경하거나 보완하기 위해 함수를 래핑 하고, 또는 새로운 동작을 추가할 수 있다. 이것은 함수형 프로그래밍의 개념 중 하나인 고차 함수(Higher-order functions)를 활용한 것이다. 데코레이터는 일반적으로 함수나 메서드 위에 @decorator 문법을 사용하여 적용된다. 따라서, 데코레이터는 코드 재사용성을 높이고, 가독성을 향상하며, 관심사를 분리하는 데 도움이 된다. 또한, 함수나 메서드를 수정하지 않고도 쉽게 새로운 동작을 추가할 수 있는 장점이 있다. 데코레이터 함수의 기본 사용법 def decorator(func): print('Initiate D..
[Python] 파이썬 데코레이터파이썬 데코레이터 파이썬 데코레이터는 함수나 메서드를 장식하거나 수정하는 데 사용되는 강력한 기능이다. 데코레이터는 기존 함수의 동작을 변경하거나 보완하기 위해 함수를 래핑 하고, 또는 새로운 동작을 추가할 수 있다. 이것은 함수형 프로그래밍의 개념 중 하나인 고차 함수(Higher-order functions)를 활용한 것이다. 데코레이터는 일반적으로 함수나 메서드 위에 @decorator 문법을 사용하여 적용된다. 따라서, 데코레이터는 코드 재사용성을 높이고, 가독성을 향상하며, 관심사를 분리하는 데 도움이 된다. 또한, 함수나 메서드를 수정하지 않고도 쉽게 새로운 동작을 추가할 수 있는 장점이 있다. 데코레이터 함수의 기본 사용법 def decorator(func): print('Initiate D..
2023.12.25 -
파이썬 dir() 함수 dir() 함수는 파이썬 내장 함수 중 하나로, 객체의 속성(메서드, 변수 등) 목록을 반환한다. 이 함수는 어떤 객체에 대해 호출되면 해당 객체의 속성들을 리스트로 반환하며, 인자로 전달하지 않으면 현재 스코프(네임스페이스)의 속성 목록을 반환한다. dir() 함수의 사용 목적 dir() 함수는 주로 아래와 같은 상황에서 사용하니 참고하기 바란다. 객체의 속성 및 메서드 확인 객체가 어떤 속성과 메서드를 가지고 있는지 확인할 때 사용된다. 특히, 외부 라이브러리나 모듈에서 가져온 객체의 구조를 이해하고자 할 때 유용하다. 디버깅 코드 디버깅 시에 객체의 내부를 살펴보는 데 활용될 수 있다. 특정 객체에 어떤 속성이 있는지 확인하고, 그 값을 확인하여 코드의 동작을 이해하는 데 도..
[Python] 파이썬 dir() 함수파이썬 dir() 함수 dir() 함수는 파이썬 내장 함수 중 하나로, 객체의 속성(메서드, 변수 등) 목록을 반환한다. 이 함수는 어떤 객체에 대해 호출되면 해당 객체의 속성들을 리스트로 반환하며, 인자로 전달하지 않으면 현재 스코프(네임스페이스)의 속성 목록을 반환한다. dir() 함수의 사용 목적 dir() 함수는 주로 아래와 같은 상황에서 사용하니 참고하기 바란다. 객체의 속성 및 메서드 확인 객체가 어떤 속성과 메서드를 가지고 있는지 확인할 때 사용된다. 특히, 외부 라이브러리나 모듈에서 가져온 객체의 구조를 이해하고자 할 때 유용하다. 디버깅 코드 디버깅 시에 객체의 내부를 살펴보는 데 활용될 수 있다. 특정 객체에 어떤 속성이 있는지 확인하고, 그 값을 확인하여 코드의 동작을 이해하는 데 도..
2023.12.24 -
자바 - 상속 자바에서 상속은 객체 지향 프로그래밍(OOP)의 핵심 개념 중 하나로, 클래스들 간에 코드를 재사용하고 확장하기 위한 메커니즘을 제공한다. 상속은 기존 클래스의 특성과 동작을 그대로 가져와 새로운 클래스를 만들 수 있게 해 준다. 이때, 기존 클래스는 부모 클래스(또는 상위 클래스)라고 하고, 새로운 클래스는 자식 클래스(또는 하위 클래스)라고 한다. 기본개념 핸드폰과 아이폰 클래스의 관계를 봤을 때 아이폰은 상위 개념으로 핸드폰이라고 할 수 있다. 따라서 위의 예시처럼 아이폰 클래스는 핸드폰 클래스를 상속받아 사용할 수 있다. 또한, 그림에는 없지만 핸드폰의 상위 개념으로 "기계"가 될 수 도 있겠다. 이처럼 현실 세계의 모든 객체는 객체와 객체끼리 부모와 자식 관계를 형성한다고 생각하면..
[Java] 자바 - 상속자바 - 상속 자바에서 상속은 객체 지향 프로그래밍(OOP)의 핵심 개념 중 하나로, 클래스들 간에 코드를 재사용하고 확장하기 위한 메커니즘을 제공한다. 상속은 기존 클래스의 특성과 동작을 그대로 가져와 새로운 클래스를 만들 수 있게 해 준다. 이때, 기존 클래스는 부모 클래스(또는 상위 클래스)라고 하고, 새로운 클래스는 자식 클래스(또는 하위 클래스)라고 한다. 기본개념 핸드폰과 아이폰 클래스의 관계를 봤을 때 아이폰은 상위 개념으로 핸드폰이라고 할 수 있다. 따라서 위의 예시처럼 아이폰 클래스는 핸드폰 클래스를 상속받아 사용할 수 있다. 또한, 그림에는 없지만 핸드폰의 상위 개념으로 "기계"가 될 수 도 있겠다. 이처럼 현실 세계의 모든 객체는 객체와 객체끼리 부모와 자식 관계를 형성한다고 생각하면..
2023.12.23 -
자바 - 클래스 자바(Java)에서 객체(Object)는 클래스(Class)의 인스턴스(Instance)이다. 객체는 데이터와 그 데이터를 처리하는 메서드(Method)의 조합으로 이루어져 있다. 자바는 객체 지향 프로그래밍(Object-Oriented Programming, OOP) 언어로, 객체 지향 프로그래밍은 현실 세계의 개념을 모델링하고 문제를 해결하기 위해 객체를 사용한다. 현실 세계의 개념을 소프트웨어 객체로 추상화하여 설계하는 프로세스를 객체 모델링(Object Modeling)이라고 한다. 이는 객체 지향 프로그래밍의 기반이다. 또한, 객체 모델링은 현실 세계의 복잡한 시스템을 이해하고 문제를 해결하기 위해 객체, 클래스, 그리고 이들 간의 관계를 정의하는 과정을 포함한다. 객체 모델링은..
[Java] 자바 - 클래스자바 - 클래스 자바(Java)에서 객체(Object)는 클래스(Class)의 인스턴스(Instance)이다. 객체는 데이터와 그 데이터를 처리하는 메서드(Method)의 조합으로 이루어져 있다. 자바는 객체 지향 프로그래밍(Object-Oriented Programming, OOP) 언어로, 객체 지향 프로그래밍은 현실 세계의 개념을 모델링하고 문제를 해결하기 위해 객체를 사용한다. 현실 세계의 개념을 소프트웨어 객체로 추상화하여 설계하는 프로세스를 객체 모델링(Object Modeling)이라고 한다. 이는 객체 지향 프로그래밍의 기반이다. 또한, 객체 모델링은 현실 세계의 복잡한 시스템을 이해하고 문제를 해결하기 위해 객체, 클래스, 그리고 이들 간의 관계를 정의하는 과정을 포함한다. 객체 모델링은..
2023.12.21 -
geolocation API 사용하기 geolocation API는 웹 브라우저에서 사용자의 위치 정보를 얻기 위한 JavaScript API이다. 이 API를 사용하면 웹 애플리케이션에서 사용자의 위치를 파악하여 지리적인 정보를 활용할 수 있다. 📢 geolocation API는 어떻게 가져올까? geolocation API는 웹 브라우저에서 제공하는 내장 API 중 하나로, 사용자의 위치 정보를 얻을 수 있도록 설계되어 있다. 이 API는 웹 브라우저에 기본적으로 내장되어 있어 별도로 외부 라이브러리를 가져오지 않고도 JavaScript에서 직접 사용할 수 있다. 웹 브라우저는 보안 및 개인정보 보호를 위해 사용자의 위치 정보에 대한 접근 권한을 요청하고, 사용자가 권한을 부여하면 JavaScript..
[JavaScript] geolocation API 기본 사용법(위치 정보 가져오기)geolocation API 사용하기 geolocation API는 웹 브라우저에서 사용자의 위치 정보를 얻기 위한 JavaScript API이다. 이 API를 사용하면 웹 애플리케이션에서 사용자의 위치를 파악하여 지리적인 정보를 활용할 수 있다. 📢 geolocation API는 어떻게 가져올까? geolocation API는 웹 브라우저에서 제공하는 내장 API 중 하나로, 사용자의 위치 정보를 얻을 수 있도록 설계되어 있다. 이 API는 웹 브라우저에 기본적으로 내장되어 있어 별도로 외부 라이브러리를 가져오지 않고도 JavaScript에서 직접 사용할 수 있다. 웹 브라우저는 보안 및 개인정보 보호를 위해 사용자의 위치 정보에 대한 접근 권한을 요청하고, 사용자가 권한을 부여하면 JavaScript..
2023.12.11 -
자바 EOF(End Of File) 처리 EOF는 End of File의 약어로, 파일의 끝을 나타내는 특수한 마커이다. 파일에서 더 이상 읽을 내용이 없거나 쓸 내용이 없을 때, EOF 마커가 나타나며, 이는 파일의 끝을 나타내어 프로그램에게 파일의 끝을 인식할 수 있게 한다. EOF는 주로 파일 읽기나 입력 소스에서 데이터를 읽을 때 사용된다. 예를 들어, 파일의 끝에 도달했을 때 반복문을 종료하는 데 사용할 수 있다. 파일에서 데이터를 읽을 때 EOF를 확인하여 계속해서 읽을지, 아니면 종료할지 결정할 수 있다. 파일의 끝은 파일의 끝 부분이 아닌, 파일에서 더 이상 읽을 데이터가 없는 지점을 나타낸다. 파일에서 EOF를 확인하는 방법은 프로그래밍 언어나 도구에 따라 다를 수 있다. 대표적으로 파일..
[Java] 자바 EOF(End Of File) 처리자바 EOF(End Of File) 처리 EOF는 End of File의 약어로, 파일의 끝을 나타내는 특수한 마커이다. 파일에서 더 이상 읽을 내용이 없거나 쓸 내용이 없을 때, EOF 마커가 나타나며, 이는 파일의 끝을 나타내어 프로그램에게 파일의 끝을 인식할 수 있게 한다. EOF는 주로 파일 읽기나 입력 소스에서 데이터를 읽을 때 사용된다. 예를 들어, 파일의 끝에 도달했을 때 반복문을 종료하는 데 사용할 수 있다. 파일에서 데이터를 읽을 때 EOF를 확인하여 계속해서 읽을지, 아니면 종료할지 결정할 수 있다. 파일의 끝은 파일의 끝 부분이 아닌, 파일에서 더 이상 읽을 데이터가 없는 지점을 나타낸다. 파일에서 EOF를 확인하는 방법은 프로그래밍 언어나 도구에 따라 다를 수 있다. 대표적으로 파일..
2023.12.10 -
자바스크립트 window.open(), window.opener() window.open() window.open() 함수는 새 창(팝업)을 열기 위해 사용되는 JavaScript의 함수이다. 이 함수는 다양한 옵션을 사용하여 새 창을 열 수 있다. 기본적인 사용법은 다음과 같다. // 기본 사용 방법 window.open("URL", "창 이름", "옵션"); URL - 열고자 하는 새 창의 URL을 지정한다.(JSP나 HTML파일의 경로 될 수 있음) 창 이름 - 새 창에 부여할 이름을 지정한다. 이 이름을 통해 같은 이름을 가진 창이 이미 열려있는지 여부를 확인하고 해당 창에 새로운 내용을 로드할 수 있다. 옵션 - 열리는 창의 속성을 나타내는 문자열이다. 옵션 문자열은 각 속성을 세미콜론(;)으로..
[JavaScript] 자바스크립트 window.open(), window.opener()자바스크립트 window.open(), window.opener() window.open() window.open() 함수는 새 창(팝업)을 열기 위해 사용되는 JavaScript의 함수이다. 이 함수는 다양한 옵션을 사용하여 새 창을 열 수 있다. 기본적인 사용법은 다음과 같다. // 기본 사용 방법 window.open("URL", "창 이름", "옵션"); URL - 열고자 하는 새 창의 URL을 지정한다.(JSP나 HTML파일의 경로 될 수 있음) 창 이름 - 새 창에 부여할 이름을 지정한다. 이 이름을 통해 같은 이름을 가진 창이 이미 열려있는지 여부를 확인하고 해당 창에 새로운 내용을 로드할 수 있다. 옵션 - 열리는 창의 속성을 나타내는 문자열이다. 옵션 문자열은 각 속성을 세미콜론(;)으로..
2023.12.02 -
자바스크립트 onclick onclick은 JavaScript에서 HTML 요소에 사용되는 이벤트 속성 중 하나이다. 이 속성은 사용자가 해당 HTML 요소를 클릭할 때 실행되는 JavaScript 코드를 지정하는 데 사용된다. onclick 함수를 사용하는 방법은 크게 3가지가 있다. 직접 함수 호출 익명 함수 사용 이벤트 핸들러 함수 등록 위의 3가지 방법에 대해 자세히 알아보는 시간을 가져보자. 직접 함수 호출 onclick을 사용하여 직접 함수를 호출하는 방법은 매우 간단하다. 아래의 해당 예제 코드를 살펴보자. Click me 요소에 onclick 속성을 추가하고, 속성 값으로 클릭 시 호출될 함수인 sayHello()를 지정한다. JavaScript 코드에서 sayHello() 함수를 정의하고..
[JavaScript] 자바스크립트 onclick자바스크립트 onclick onclick은 JavaScript에서 HTML 요소에 사용되는 이벤트 속성 중 하나이다. 이 속성은 사용자가 해당 HTML 요소를 클릭할 때 실행되는 JavaScript 코드를 지정하는 데 사용된다. onclick 함수를 사용하는 방법은 크게 3가지가 있다. 직접 함수 호출 익명 함수 사용 이벤트 핸들러 함수 등록 위의 3가지 방법에 대해 자세히 알아보는 시간을 가져보자. 직접 함수 호출 onclick을 사용하여 직접 함수를 호출하는 방법은 매우 간단하다. 아래의 해당 예제 코드를 살펴보자. Click me 요소에 onclick 속성을 추가하고, 속성 값으로 클릭 시 호출될 함수인 sayHello()를 지정한다. JavaScript 코드에서 sayHello() 함수를 정의하고..
2023.11.20 -
자바스크립트 addEventListeneraddEventListener는 JavaScript에서 이벤트 리스너를 HTML 요소에 추가하는 메서드이다. 이벤트 리스너는 특정 이벤트(예 : 클릭, 마우스 오버, 키보드 입력 등)가 발생했을 때 실행할 JavaScript 함수를 지정하는 데 사용된다. 다음은 addEventListener 메서드의 기본 사용법이다.element.addEventListener(event, listener, useCapture);element - 이벤트 리스너를 추가하려는 HTML 요소(또는 DOM 요소)를 가리키는 변수 또는 선택자이다.event - 리스너가 연결될 이벤트의 이름(문자열)이다. 예를 들어, "click", "mouseover", "keydown", "change"..
[JavaScript] 자바스크립트 addEventListener자바스크립트 addEventListeneraddEventListener는 JavaScript에서 이벤트 리스너를 HTML 요소에 추가하는 메서드이다. 이벤트 리스너는 특정 이벤트(예 : 클릭, 마우스 오버, 키보드 입력 등)가 발생했을 때 실행할 JavaScript 함수를 지정하는 데 사용된다. 다음은 addEventListener 메서드의 기본 사용법이다.element.addEventListener(event, listener, useCapture);element - 이벤트 리스너를 추가하려는 HTML 요소(또는 DOM 요소)를 가리키는 변수 또는 선택자이다.event - 리스너가 연결될 이벤트의 이름(문자열)이다. 예를 들어, "click", "mouseover", "keydown", "change"..
2023.11.17 -
재귀 함수 재귀 함수(Recursive Function)는 함수가 자신을 직접 또는 간접적으로 호출하는 함수를 의미한다. 재귀 함수는 일반적인 함수와 유사하게 동작하지만, 자신을 호출하여 같은 작업을 반복하는 데 사용된다. 재귀 함수는 주로 반복적인 작업을 해결하기 위해 사용되며, 특히 작업이 동일한 패턴으로 반복되는 경우 유용하다. 재귀 함수의 주요 특징은 다음과 같다. 자기 호출(Self-Call) - 재귀 함수는 자신을 호출한다. 이것이 재귀 함수의 핵심 특징이며, 자기 자신을 호출함으로써 동일한 작업을 반복 수행한다. 종료 조건(Base Case) - 재귀 함수는 종료 조건을 가져야 한다. 종료 조건은 함수가 자신을 계속 호출하는 것을 멈추게 하는 조건이다. 종료 조건이 없으면 함수 호출이 무한히..
[Python] 재귀 함수(Recursive Function)재귀 함수 재귀 함수(Recursive Function)는 함수가 자신을 직접 또는 간접적으로 호출하는 함수를 의미한다. 재귀 함수는 일반적인 함수와 유사하게 동작하지만, 자신을 호출하여 같은 작업을 반복하는 데 사용된다. 재귀 함수는 주로 반복적인 작업을 해결하기 위해 사용되며, 특히 작업이 동일한 패턴으로 반복되는 경우 유용하다. 재귀 함수의 주요 특징은 다음과 같다. 자기 호출(Self-Call) - 재귀 함수는 자신을 호출한다. 이것이 재귀 함수의 핵심 특징이며, 자기 자신을 호출함으로써 동일한 작업을 반복 수행한다. 종료 조건(Base Case) - 재귀 함수는 종료 조건을 가져야 한다. 종료 조건은 함수가 자신을 계속 호출하는 것을 멈추게 하는 조건이다. 종료 조건이 없으면 함수 호출이 무한히..
2023.11.16 -
파이썬 텍스트를 오디오로 변환하기 gTTS(Google Text-to-Speech)는 파이썬에서 사용할 수 있는 라이브러리다. 구체적으로 말하면 gTTS는 파이썬에서 사용할 수 있는 외부 라이브러리이다. 이 라이브러리를 사용하면 텍스트를 음성으로 변환하고 이를 오디오 파일로 저장할 수 있고. gTTS 라이브러리는 Google TTS 엔진에 액세스 하여 텍스트를 음성으로 변환한다. 만약 gTTS가 설치되어 있지 않다면 현재 사용하고 있는 IDE에서 터미널창에 아래와 같은 명령어를 입력하여 설치한다. pip install gTTS gTTS 사용법 gTTS를 사용하는 방법은 생각보다 무척 간단하다. 아래의 예제를 살펴보며 어떻게 사용하는지 한 번 배워보자. from gtts import gTTS import ..
[Python] 파이썬 텍스트를 오디오로 변환하기(gTTS)파이썬 텍스트를 오디오로 변환하기 gTTS(Google Text-to-Speech)는 파이썬에서 사용할 수 있는 라이브러리다. 구체적으로 말하면 gTTS는 파이썬에서 사용할 수 있는 외부 라이브러리이다. 이 라이브러리를 사용하면 텍스트를 음성으로 변환하고 이를 오디오 파일로 저장할 수 있고. gTTS 라이브러리는 Google TTS 엔진에 액세스 하여 텍스트를 음성으로 변환한다. 만약 gTTS가 설치되어 있지 않다면 현재 사용하고 있는 IDE에서 터미널창에 아래와 같은 명령어를 입력하여 설치한다. pip install gTTS gTTS 사용법 gTTS를 사용하는 방법은 생각보다 무척 간단하다. 아래의 예제를 살펴보며 어떻게 사용하는지 한 번 배워보자. from gtts import gTTS import ..
2023.11.14