별의 공부 블로그 🧑🏻‍💻

🗒️ Programming (298)

728x90
  1. 2022.03.19 [Python] global

    global 개요 함수 안에서 지역 변수(Local Variable) 대신 전역 변수(Global Variable)로 변수를 사용하고 싶을 때, global 예약어를 사용한다. global 예약어를 사용하여 전역 변수를 지정하면, 함수 안의 지역 변수는 더 이상 존재하지 않게 된다. 파이썬의 global 예약어는 다른 프로그래밍 언어와 형식이 다르다. 사용 예 ## 함수 선언 부분 ## def func1(): global a a = 10 # 이 함수 안에서 a는 전역 변수 print("func1()에서 a 값 %d" % a) def func2(): print("func2()에서 a 값 %d" % a) ## 전역 변수 선언 부분 ## a = 20 # 전역 변수 ## 메인 코드 부분 ## func1() fu..

  2. 2022.03.19 [Python] 파이썬에서의 main() 함수

    파이썬에서의 main() 함수 개요 C, C++, C#, Java 등은 main() 함수가 필수로 있어 프로그램 시작 위치가 명확하지만, 파이썬은 필수가 아니다. 하지만, 필요하다면 비슷한 효과를 다음과 같이 표현할 수 있다. if __name__ == "__main__": hap = plus(100, 200) print("100과 200의 plus() 함수 결과는 %d" % hap) 사용 예제 # 함수 선언 def plus(v1, v2): result = 0 result = v1 + v2 return result # 전역 변수 hap = 0 # 메인 함수 if __name__ == "__main__": hap = plus(100, 200) print("100과 200의 plus() 함수 결과는 %d" ..

  3. 2022.03.19 [Python] 파이썬에서 넘파이(NumPy) 설치하기

    파이썬에서 넘파이(NumPy) 설치하기 개요 파이썬에 간단하게 넘파이(NumPy)를 설치하는 방법을 알아보자. 방법 윈도우 터미널에 "python -m pip install numpy" 명령을 입력하면 된다. 테스트

  4. 2022.03.19 아나콘다(Anaconda) 환경 변수 설정 방법 (Windows)

    아나콘다(Anaconda) 환경 변수 설정 방법 (Windows) 개요 윈도우(Windows) 터미널에서 "conda" 명령어를 입력하면, 아나콘다 프롬프트가 실행되게 해보자. 보통 아나콘다 설치 시, PATH를 자동으로 등록하는 옵션이 있는데, 선택하지 않았을 경우 수동으로 PATH 등록을 해주어야 한다. 방법 윈도우 [검색] → "환경 변수" → [시스템 환경 변수 편집] [환경 변수(N)] 버튼 클릭 [사용자 변수(U)] 항목에서 변수 선택 후, [편집(E)] 버튼 클릭 [새로 만들기(N)] 버튼을 클릭 후, Anaconda가 설치된 경로, 그리고 내부의 Library, Scripts 디렉터리를 추가 테스트 윈도우 터미널에 conda 명령어를 입력하여 설정이 되었는지 확인한다.

  5. 2022.03.12 IPython

    IPython Interactive Python 파이썬에서 빅데이터 프로그래밍 작업을 할 수 있도록 지원하는 소프트웨어 도구 코딩 편집기 기능 뿐만 아니라 대화형 컴퓨팅 기능을 제공한다. 제공 기능 강력한 대화형 쉘(Shell) 주피터 노트북에서 파이썬 코드를 작업하기 위한 커널 IPython + DashBoard = Jupyter Notebook 대화형 데이터 시각화와 GUI 도구 세트(Tooklit)들을 지원 병렬 컴퓨팅을 쉽게 사용할 수 있도록 하는 고성능 도구 파이썬 환경에서 작업 중인 작업 중인 프로젝트에서 다른 프로그래밍 기능의 처리 IPython 설치 www.ipython.org Anaconda 내에 Jupyter Notebook CLI 환경에서 ipython 사용 주요 명령어 도움 찾기 명..

  6. 2022.03.12 주피터 노트북(Jupyter Notebook)

    주피터 노트북(Jupyter Notebook) 아나콘다(Anaconda) 데이터 과학과 머신 러닝에 대한 작업을 하기 위한 오픈 소스 가장 많이 사용되는 데이터 과학 플랫폼 Anaconda Distribution과 기업용인 Anaconda Enterprise로 구분 파이썬 및 R에 대한 1,400개 이상의 패키지 제공 노트북 코드 및 풍부한 텍스트 요소를 포함하는 문서 실시간 데이터 분석 및 설명 결과를 가져오는 장소 쥬피터 노트북에 의해 문서가 생산됨. 주요 기능 코드, 방정식, 시각화 및 설명문의 텍스트를 포함하는 문서를 생성하고 공유하도록 하는 오픈 소스의 웹 어플리케이션 email, Dropbox, GitHub 및 Jupyter Notebook Viewer 를 이용하여 공유 PDF, HTML, i..

  7. 2021.10.31 [C++] 공백을 기준으로 문자열 나누기 (substr() 사용)

    [C++] 공백을 기준으로 문자열 나누기 (substr() 사용) substr() 함수를 사용하여 공백(스페이스)을 기준으로 문자열 나눌 수 있다. 또한 atoi() 함수를 사용하여 string형 숫자를 int형으로 바꿀 수 있다. #include #include using namespace std; int main() { string cmd, cmd1, cmd2; int input; getline(cin, cmd);// getline() 함수를 사용하여 공백을 포함한 문자열 입력 받기 cmd1 = cmd.substr(0, cmd.find(" "));// 공백의 앞에 있는 단어를 cmd1 변수에 저장 cmd2 = cmd.substr(cmd.find(" ") + 1, cmd.length());// 공백의 ..

  8. 2021.07.20 [Python] 에러 메시지

    [Python] 에러 메시지 파이썬의 에러 메시지는 대략 9가지 정도가 있다. 에러 설명 SyntaxError 잘못된 문법을 사용할 경우 발생하는 에러 Code 02a = 23 # 잘못된 변수명 사용 print(02a) Debug a = 23 print(a) Code if a == 3 # ‘:’ 생략 print("Hello, World!") Debug if a == 3: print("Hello, World!") ValueError 참조값이 없을 때 발생하는 에러 Code a = [1, 2, 3] a.remove(4) # 존재하지 않는 값 제거 print(a) Debug a = [1, 2, 3] a.remove(3) print(a) Code int('Python') # 영문자의 문자열을 정수로 변환 Deb..

  9. 2021.06.14 [안드로이드] 크기를 표시하는 단위 (px, dp, sp, in, mm, em)

    크기를 표시하는 단위 뷰의 폭과 높이는 일반적으로 match_parent와 wrap_content 값을 지정하는 방식으로 사용함. 단말마다 해상도나 화면의 크기가 달라도 전체 화면을 기준으로 뷰를 배치할 수 있기 때문 뷰의 크기를 픽셀 값으로 지정하면 해상도에 따라 그 크기가 다르게 보이지만, match_parent와 wrap_content를 사용하면 아주 쉽게 여러 단말의 해상도를 지원할 수 있음. 뷰의 폭과 높이를 정수 값으로 지정하면서도, 픽셀 단위인 px가 아니라 dp나 sp와 같은 단위를 사용할 경우 해상도가 다른 단말에서도 뷰의 크기를 비슷하게 보이도록 만들 수 있음. 단위 단위 표현 설명 px 픽셀 화면 픽셀의 수 dp 또는 dip 밀도 독립적 픽셀(Density Independent Pix..

  10. 2021.06.02 [안드로이드] 코드가 입력되었을 때 필요한 import 구문을 자동으로 넣을 수 있도록 설정하기 (안드로이드 스튜디오)

    코드가 입력되었을 때 필요한 import 구문을 자동으로 넣을 수 있도록 설정하기 (안드로이드 스튜디오) 안드로이드 스튜디오 상단의 메뉴 중, [File] -> [Settings] [Settings] 대화 상자 왼쪽 창에서 [Editor] 항목 클릭 후 [General] -> [Auto Import] 선택 다음의 항목 체크 후 [OK] 버튼 클릭 Add unambiguous imports on the fly Optimize imports on the fly (for current project) 이 기능을 사용하지 않을 경우, [Alt] + [Enter] 버튼을 누르면 수동으로 import 구문을 넣을 수 있음.

  11. 2021.05.28 [C++] std::unordered_map 에서 [] 연산자

    std::unordered_map 에서 [] 연산자 키와 값의 쌍을 저장한 후, [] 연산자와 키를 이용하여 값을 받아올 수 있음. [] 연산자는 참조 를 반환하므로 이를 이용하여 저장된 값을 변경 할 수도 있음. 만약 해당 키가 없다면 해당 위치에 기본값을 추가하여 반환함. 예제 코드 #include #include void print(const std::unordered_map& container) { for (const auto& element : container) { std::cout

  12. 2021.05.08 배열의 유형 및 선언 방법

    배열의 유형 배열의 유형 정적 배열(Static Array) 선언된 블록이 끝나면 소멸됨. 스택(Stack) 메모리 영역에 할당됨. 함수를 벗어날 때, 자동으로 해제됨. 동적 배열(Dynamic Array) 프로그래머가 생성할 시점과 해제할 시점을 자유롭게 설정할 수 있음. 힙(Heap) 영역에 할당됨. 사용자가 직접 해제하기 전까지 유지됨. 두 가지 유형 중에서 필요에 따라 적절한 배열을 선택하여 사용하면 됨. 두 가지 유형 모두 다양한 연산에서 동일한 성능 을 나타냄. 이러한 배열은 C 언어에서 도입되었기 때문에 C 스타일 배열(C Style Array) 라고도 함. 배열의 선언 방법 정적 배열 int arr[size]; // C, C++ 동적 배열 int* arr = (int*)malloc(size..

  13. 2021.04.20 [CSS] 서리낀 글래스(Frosted Glass, Aero Glass) 효과 내는 방법

    서리낀 글래스(Frosted Glass, Aero Glass) 효과 내는 방법 1. 서론 서리낀 글래스(Frosted Glass) 효과 를 다음과 같이 간단하게 CSS 를 사용하여 구현할 수 있다. 이 방법으로 Windows의 Aero Glass 효과를 구현할 수 있다. 2. 구현 방법 방법 1 이 방법은 다양한 웹 브라우저에서 지원되는 방법이다. 하지만 방법 2 보다 구현하기 더 복잡하다. 서리낀 글래스 효과를 적용시킬 객체를 다음과 같이 생성한다. 다음과 같이 태그에 원하는 이미지를 적용시킨 후, 다음과 같이 CSS 스타일을 적용시켜 준다. body { background-attachment: fixed; } 다음과 같이 box-shadow 스타일을 사용하여 몇가지 색상을 추가해 준다. .contai..

  14. 2021.04.19 [textarea] 영역 크기 조절 방지

    [textarea] 영역 크기 조절 방지 태그를 사용할 경우, 기본적으로 영역의 크기를 변경할 수 있다. 이러한 기능을 없애려면 다음과 같이 style 속성을 넣어주면 된다. ■ 테스트

  15. 2021.04.10 [안드로이드] 합성 프로퍼티(Synthetic Property)를 사용한 뷰 바인딩(View Binding)

    # 뷰 바인딩(View Binding) 안드로이드에서 UI 를 화면에 나타낼 때 레이아웃 파일인 xml 파일에 UI 의 요소를 태그 표기법으로 작성함. xml 파일을 코드에서 사용하려면 뷰(View) 로 불리는 UI 요소의 id를 코드에서 지정해야 함. 이 작업을 뷰의 바인딩(View Binding) 이라고 함. 뷰의 바인딩을 이용하려면 코틀린 안드로이드 확장이 build.gradle 파일에 지정되어야 함. 모듈 단위의 build.gradle(.app) 파일에 다음 플러그인이 명시되어 있는지 확인함. apply plugin: 'kotlin-android-extensions' # 합성 프로퍼티 사용하기 코틀린 확장 기능을 이용해 다음과 같이 합성 프로퍼티(Synthetic Property) 를 사용하여 U..

  16. 2021.04.09 [XML] widget.SwitchCompat

    구버전의 안드로이드 스튜디오에서 사용할 경우 1 2 3 4 5 6 신버전의 안드로이드 스튜디오에서 사용할 경우 : android.support.v7.widget.SwitchCompat 사용 불가, support library는 더 이상 쓰이지 않음. 1 2 3 4 5 6 ※ 참고 : link

  17. 2021.04.08 [안드로이드] kotlinx.android.synthetic.main.activity_main.* 를 불러올 수 없는 경우

    kotlinx.android.synthetic.main.activity_main.*를 불러올 수 없는 경우 MainActivity.kt 파일에서 kotlinx.android.synthetic.main.activity_main.* 패키지를 불러올 수 없는 경우가 있음. Android Studio 4.1 부터 kotlin-android-extensions 플러그인이 빠졌기 때문에 이러한 문제가 발생함. 해결 방법 build.gradle(.app)에 다음의 내용을 추가함. 상단의 Sync Now 클릭 1 2 3 4 plugins { ... id 'kotlin-android-extensions' }

  18. 2021.04.05 보일러플레이트(Boilerplate)

    보일러플레이트(Boilerplate) 보일러플레이트(Boilerplate)한 코드 반복되어 자주 쓰지만 매번 작성하기 번거롭고 읽기 어려운 많은 양의 코드 코틀린의 목표는 이러한 보일러플레이트한 코드를 제거해서 자주 사용되는 루틴을 간략화하는 것이다. 참고 : Wikipedia

  19. 2021.03.15 함수에서 다양한 인자의 개수를 전달받기 (vararg 키워드)

    함수에서 다양한 인자의 개수를 전달 받기 가변 인자(Variable Argument) 를 사용하여 여러 개의 인자를 받을 수 있음. 가변 인자(Variable Argument) '인자의 개수가 변한다.' 는 뜻 함수는 하나만 정의해 놓고, 여러 개의 인자를 받을 수 있음. 사용 방법 함수를 선언할 때, 매개변수 왼쪽에 vararg라는 키워드를 붙이면 됨. 사용 예 1 2 3 4 5 6 7 8 9 10 11 fun main() { normalVarargs(1, 2, 3, 4) // 4개의 인자값 구성 normalVarargs(4, 5, 6) // 3개의 인자값 구성 } fun normalVarargs(vararg counts: Int) { // vararg 키워드 사용 for (num in counts) ..

  20. 2021.03.13 프로그램의 메모리 영역

    프로그램의 메모리 영역 코드 영역 (Code) 데이터 영역 (Data) 힙 (Heap) ↓ 스택 영역 (Stack)) ↑ 프로그램이 사용되는 메모리 영역 ① 코드(Code) 영역 명령어가 들어가는 영역 ② 데이터(Data) 영역 프로그램이 컴파일되면 정적 변수 나 문자열 등이 들어가는 정적 메모리 영역 정해져 있어서 실행 중에 오류가 발생할 가능성이 적음. JVM 에서는 이 영역을 메서드 정적 영역(Method Static Area) 으로도 부름. ③ 힙(Heap) 영역 실행 중 생성되는 객체 가 만들어지는 동적 메모리 영역 프로그램이 동작하는 도중에 위쪽 그림의 화살표 방향으로 채워짐. (↓) 너무 많이 메모리를 할당하는 객체가 있을 경우 Out of Memory 오류가 발생할 수 있음. 함수 호출이 ..

  21. 2021.01.29 main(int argc, char* argv[])

    1 2 3 4 5 6#include using namespace std; int main(int argc, char* argv[]) { } main 함수는 프로그램에서 최초로 실행이 된다.main 함수의 매개변수로는 int형의 argc, char* 형의 argv[]가 있다. main 함수의 매개변수에 대한 설명은 각각 다음과 같다. int argc : main 함수에 전달되는 데이터의 개수char* argv[] : main 함수에 전달되는 실제적인 데이터, char형 포인터 배열로 구성됨. argv[0]에는 프로그램의 절대 경로가, argv[1] 부터는 입력받은 문자가 대입됨. > example.cpp 1 2 3 4 5 6 7 8 9 10 11#include using namespace std; int ..

  22. 2021.01.12 비교/관계 연산자 오버로딩 예

    123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114#include #include #include // using namespace std; class String { char* _chars;public: String(const char* chars) : _chars(new char[strlen(chars) + 1]) { strcpy(_cha..

  23. 2020.12.28 프로그램 실행 시간 측정 방법 (clock())

    12345678910#include // clock() : ms 단위로 시간 측정 void main() { clock_t start = clock(); // algorithm clock_t end = clock(); std::cout

  24. 2020.12.26 단축 평가 논리 계산법(Short-Circuit Evaluation)

    *단축 평가 논리 계산법(Short-Circuit Evaluation) AND 혹은 OR의 연산에 있어서 결과가 확실하게 예측이 되었을 때 뒤에 나머지 연산을 실행하지 않고 답을 내버리는 것AND 연산의 경우false가 우선 나와버리면 AND 뒤에 나오는 연산은 생략OR 연산의 경우true가 우선 나와버리면 OR 뒤에 나오는 연산은 생략#include using namespace std; int main() { bool result; // AND result = printf("") && printf("ABC"); result = printf("1") && printf("ABC"); cout

  25. 2020.12.11 Eclipse와 MySQL 연동하기 (JSP)

    Eclipse와 MySQL 연동하기 (JSP) ■ MySQL Connector/J 다운로드 받기 - 다운로드 링크 : https://dev.mysql.com/downloads/connector/j- Select Operation System : Platform Independent- ZIP 또는 TAR 파일 다운로드 후, 압축 해제 ■ Eclipse에서 JDBC Package 추가하기 - Project 클릭 후 마우스 우클릭 -> Properties- 좌측의 [Java Build Path] 탭 -> [Libraries] 탭 -> [Add External JARs...] 버튼 클릭- 다운로드 받은 mysql-connector-java-8.0.22.jar 선택- [Package Explorer] -> [프로..

  26. 2020.11.11 [Colab] 구글 드라이브 연동하기 & 디렉터리 접근하기

    구글의 코랩(Colab)에서 구글 드라이브(Google Drive)를 연동해서 구글 드라이브에 있는 디렉터리에 접근해보자. 1. 구글 드라이브 연동하기 코랩에서 노트북을 생성한 후, 다음의 명령어를 입력한다. from google.colab import drive drive.mount('/content/gdrive/') 그러면 사진 처럼 인증 코드를 입력하라는 메시지가 출력된다. 구글 드라이브를 연동하기 위해서는 인증 코드를 적어주어야 한다.해당 URL에 들어가서 인증 코드를 복사한 후 붙여 넣어준 후 엔터 버튼을 누른다. 기다리면 연동이 된다.그리고 다음과 같이 출력된다. Mounted at /content/gdrive/ 2. 코랩에서 구글 드라이브의 디렉터리에 접근하기 왼쪽 탭에 있는 폴더 모양(빨간..

  27. 2020.11.04 [Colab] GPU/TPU 사용하기

    구글의 Colab(Colaboratory)에서 GPU나 TPU를 사용할 수 있는 방법이 있다. 메뉴바의 [런타임] 탭 - [런타임 유형 변경]을 클릭하면 "노트 설정" 창이 뜬다.하드웨어 가속기를 GPU 혹은 TPU로 설정하면 된다. 이 방법으로 훈련 속도를 높일 수 있다.

  28. 2020.10.25 scanf() 입력 버퍼 비우는 방법

    *scanf() 입력 버퍼 비우는 방법 scanf()를 사용하다 보면, 입력을 정상적으로 받지 못할 경우가 생기게 된다.이러한 종류의 문제는 입력 버퍼(stdin Buffer)와 관련된 문제가 대부분이며, 이 문제를 해결하기 위해서는 입력 버퍼를 비워줘야 한다.입력 버퍼를 비우는 방법을 이 글에 총정리 해보았다. #pragma warning(disable: 4996) #include int main() { char ch; scanf("%c", &ch); printf("1, %c\n", ch); scanf("%c", &ch); printf("2, %c\n", ch); return 0; } a 1, a 2, ab 1, a 2, b 무슨 일이 일어났는지 확인해 보기 위하여 다음과 같이 코드를 수정해서 프로그램..

  29. 2020.06.18 qsort 함수 : 퀵 정렬 라이브러리 함수

    *qosrt 함수 : 퀵 정렬 라이브러리 함수 - C에서 제공하는 퀵 정렬 표준 라이브러리 함수- 사용하려면 헤더 파일을 불러와야 한다. void qsort(void *base, int num, int width, int (*compare)(const void *, const void *));base : 배열의 시작 주소num : 배열 요소의 개수width : 배열 요소 하나의 크기(바이트 단위)compare비교 함수포인터를 통하여 두 개의 요소를 비교하여 비교 결과를 정수로 반환사용자가 제공해야 함.반환값 0 : elem1이 elem2보다 크면- 사용 예 #include #include // qsort() int comp..

  30. 2020.03.24 람다 함수(Lambda Function)

    *람다 함수(Lambda Function) # Lambda 함수 add = lambda a, b: a + bresult = add(3, 4)print(result) # 7 avg = lambda a: sum(a) / len(a)result = avg([1, 2, 3])print(result) # 2 함수를 생성할 때 사용하는 예약어로 def와 동일한 역할을 하며, 함수를 한 줄로 간결하게 만들 때 사용한다. lambda 매개변수1, 매개변수2, ... : 매개변수를 이용한 표현식

728x90


📖 Contents 📖