동도리동동의 퇴근 후 코딩
Let's Coding
-
[Android Studio] 플러터(Flutter) SDK 설치 및 다운로드
1. 플러터(Flutter) 란? Flutter는 구글에서 개발한 크로스 플랫폼 GUI SDK 입니다. 쉽게말해, Flutter를 이용해서 APP 개발을 하게 되면, Android든, iOS든 상관없이 동작하게 할 수 있는 것이죠. 이전 글에서는 Android Studio에서 Flutter 플러그인을 설치하는 방법을 다루어보았는데요. 자세한 다운로드 방법은 아래의 이전 글을 참고해주세요 :) 플러터(Flutter) 설치 및 다운로드 [Android Studio] 플러터(Flutter) 설치 및 다운로드 1. 플러터(Flutter) 란? 삼성의 갤럭시와 애플의 iPhone은 운영체제가 다릅니다. 갤럭시는 Android 운영체제를 사용하고, iPhone은 iOS를 사용하고 있죠. 이러한 상황이다보니, 지금까..
2023.12.05
-
[Android Studio] 플러터(Flutter) 설치 및 다운로드
1. 플러터(Flutter) 란? 삼성의 갤럭시와 애플의 iPhone은 운영체제가 다릅니다. 갤럭시는 Android 운영체제를 사용하고, iPhone은 iOS를 사용하고 있죠. 이러한 상황이다보니, 지금까지 모바일 APP을 개발할 때,각각의 운영체제에 맞춰서 개발해야하는 번거로움이 있었습니다. 심지어는 각 운영체제가 개발 환경도 달라서, 모바일 APP 개발자 입장에서는 두 분야를 모두 공부하거나, 한쪽의 APP 수요는 포기해야했습니다. 이러한 번거로움을 없애기 위해서, Flutter가 등장하게 됩니다. Flutter는 구글에서 개발한 크로스 플랫폼 GUI SDK 입니다. 쉽게말해, Flutter를 이용해서 APP 개발을 하게 되면, Android든, iOS든 상관없이 동작하게 할 수 있는 것이죠. 하나의..
2023.11.10
-
[Android Studio] Java 개발도구(JDK) 환경 변수 설정
1. Android Studio의 Java 경로 찾기 Android Studio에는 Java 개발도구(JDK)가 포함되어 있는데요. 보통 설치할 때, 함께 설치가 되어서, 따로 설치할 필요는 없습니다. 다만, 이것을 편리하게 사용하기 위해서는 별도의 환경설정이 필요합니다. 이를 위해서는 우선 java.exe가 설치된 경로를 찾아야하는데요. 아래 두군데 중, 하나에 보통 설치가 되니, 자신의 컴퓨터에 맞는 경로를 찾아서 복사해줍시다. (제 경우에는 ② 경로에 설치가 되어있었습니다.) ① C:\Program Files\Android\Android Studio\jre\bin ② C:\Program Files\Android\Android Studio\jbr\bin 2. 환경 변수 설정 이제 환경 변수를 설정해줄..
2023.11.09
-
[Android Studio] 안드로이드 스튜디오 - 설치 및 다운로드
1. 안드로이드 스튜디오 설치파일 다운로드 아래 링크를 통해서, 안드로이드 스튜디오를 다운로드하기 위한 설치파일을 받으시면 됩니다. https://developer.android.com/studio Download Android Studio & App Tools - Android Developers Android Studio provides app builders with an integrated development environment (IDE) optimized for Android apps. Download Android Studio today. developer.android.com 링크를 통해 접속하면, 아래와 같은 화면이 나오는데, 표시해둔 것처럼, "Download Android Studi..
2023.11.05
-
[Pro][정올] 3115번 : 긴 자리 나눗셈
[Pro][정올] 3115번 : 긴 자리 나눗셈 JUNGOL www.jungol.co.kr [풀이 후기] 난이도 : ★★★☆ (Pro) 문제 종류 : 긴자리 연산 해결 방법 : Compression * 난이도 구분 ★☆☆☆ (Beginner) : 알고리즘 적용만으로 해결 가능 ★★☆☆ (Advanced) : 알고리즘을 활용하여 구현해야 해결 가능 ★★★☆ (Pro) : 알고리즘을 활용한 구현 + 최적화 아이디어로 해결 가능 ★★★★ (Expert) : Pro보다 발전된 최적화 아이디어로 해결 가능 문제 문제분석 1. 200자리 이하인 두 개의 양의 정수가 입력된다. 2. 두 정수 중, 큰 수에서 작은 수를 나눈 몫을 출력한다. 접근 방법 이 문제의 핵심은 "어떻게 200자리의 두 정수를 나눌 것인가?" ..
2023.05.08
-
[Pro][정올] 1262번 : 긴 자리 곱셈
[Pro][정올] 1262번 : 긴 자리 곱셈 JUNGOL www.jungol.co.kr [풀이 후기] 난이도 : ★★★☆ (Pro) 문제 종류 : 긴 자리 연산 해결 방법 : Compression * 난이도 구분 ★☆☆☆ (Beginner) : 알고리즘 적용만으로 해결 가능 ★★☆☆ (Advanced) : 알고리즘을 활용하여 구현해야 해결 가능 ★★★☆ (Pro) : 알고리즘을 활용한 구현 + 최적화 아이디어로 해결 가능 ★★★★ (Expert) : Pro보다 발전된 최적화 아이디어로 해결 가능 문제 문제분석 1. 100 자리 이하의 두 정수가 입력된다. 2. 두 수를 곱한 결과를 출력하면 된다. 3. 100 자리의 두 정수를 곱하면 최대 200자리까지 결과가 나올 수 있다. 접근 방법 이 문제의 핵심..
2023.05.07
-
[Pro][정올] 1374번 : 긴 자리 덧셈 뺄셈
[Pro][정올] 1374번 : 긴 자리 덧셈 뺄셈 JUNGOL www.jungol.co.kr [풀이 후기] 난이도 : ★★★☆ (Pro) 문제 종류 : 긴자리 연산 해결 방법 : Compression * 난이도 구분 ★☆☆☆ (Beginner) : 알고리즘 적용만으로 해결 가능 ★★☆☆ (Advanced) : 알고리즘을 활용하여 구현해야 해결 가능 ★★★☆ (Pro) : 알고리즘을 활용한 구현 + 최적화 아이디어로 해결 가능 ★★★★ (Expert) : Pro보다 발전된 최적화 아이디어로 해결 가능 문제 문제분석 1. 두 개의 200자리 이하의 0 이상의 정수가 입력된다. 2. 덧셈, 뺄셈 결과를 출력하면 된다. 접근 방법 이 문제의 핵심은 "어떻게 200자리의 두 수를 더하고 뺄 것인가?" 이다. i..
2023.05.01
-
[파이썬] 프로그래밍의 구조, 클래스 (객체, 생성자, 상속, 오버라이딩)
1. 클래스(Class)와 객체(Object) 클래스는 과자 틀과 비슷하다고 설명할 수 있습니다. 과자 틀을 이용해서, 같은 모양의 과자를 여러개 만들 수 있는 것처럼, 클래스를 활용해서, 동일한 속성의 객체를 여러 개 만들 수 있습니다. 이렇게 만들어진 객체에는 고유한 성격을 가지고 있어서, 서로 영향을 미치지 않습니다. 아래는 간단한 클래스를 만드는 코드 입니다. # 아무 기능도 하지 않는 Class 선언 class A: pass a = A() type(a)# 출력 2. 생성자(Constructor) 객체의 초기값을 설정해야할 필요가 있을 때 사용하는 메서드를 의미합니다. 생성자는 객체가 생성될 때, 자동으로 호출되고, 아래와 같이 만들 수 있습니다. # 두 수를 더해주는 기능을 가지는 클래스 선언 ..
2023.04.23
-
[파이썬] 프로그래밍의 기초, 자료형 - 3 (딕셔너리)
1. 딕셔너리 자료형 딕셔너리(Dictionary)는 대응 관계를 KEY와 VALUE로 나타내는 자료형 입니다. 예를 들어, '이름' = '홍길동'으로 대응할 수 있고, 'BASEBALL' = '야구' 이런식으로도 대응을 할 수 있습니다. KEY를 통해 VALUE를 확인할 수 있어서, 순차적으로 모든 값을 확인해보지 않아도 된다는 장점이 있습니다. 딕셔너리를 생성하는 여러가지 방법 # 딕셔너리 생성 a = {} a = {1:'hi'} a = {'a': [1,2,3]} a = {'name':'pey', 'phone':'01012345678', 'birth':'1225'} 딕셔너리 추가, 삭제 KEY값을 통해서 딕셔너리에 추가, 삭제가 가능합니다. # 딕셔너리에 추가 a = {1:'a'} a[2] = 'b'..
2023.03.10
-
[파이썬] 프로그래밍의 기초, 자료형 - 2 (리스트, 튜플, 불)
숫자형과 문자열 자료형은 아래의 이전 포스팅을 참고해주세요. [파이썬] 프로그래밍의 기초, 자료형 - 1 (숫자형, 문자열) [파이썬] 프로그래밍의 기초, 자료형 - 1 (숫자형, 문자열) '파이썬 프로그래밍'을 시작하며 AI 관련 포스팅을 많이 올리다보니 앞으로도 개발자로 살아가려면, AI를 배우지 않으면 안되겠다는 생각이 많이 들었습니다. 그동안은 회사에서도 AI에 관해 넘 dongdoridong.tistory.com 1. 리스트 자료형 리스트(List)는 숫자, 문자 또는 리스트 들을 하나의 변수로 관리하기 위한 자료형 입니다. 리스트를 생성하는 여러가지 방법 # 빈 리스트 생성 a = list() b = [] # 리스트 생성 c = [1, 2, 3] d = ['Life', 'is', 'too', ..
2023.03.08
-
[파이썬] 프로그래밍의 기초, 자료형 - 1 (숫자형, 문자열)
'파이썬 프로그래밍'을 시작하며 AI 관련 포스팅을 많이 올리다보니 앞으로도 개발자로 살아가려면, AI를 배우지 않으면 안되겠다는 생각이 많이 들었습니다. 그동안은 회사에서도 AI에 관해 넘겨들은 지식만으로도 살 수 있었는데, 점차 직접 AI 과제를 진행해야하는 일들이 생겼습니다. 그리고 기존의 과제 진행 방식만으로는 더이상 성과를 낼만한 일들을 찾기가 힘든 상황도 있어서, AI를 배워보자 결심을 하게되었습니다. 사내 AI 교육에 입과하기 위해서는 파이썬 시험이 치뤄지기에, 벼락치기 공부를 해보고자 합니다. 이 글을 보는 분들에게도 파이썬 벼락치기 공부가 도움이 되었으면 좋겠습니다. 자료형이란? 자료형이란 프로그래밍을 할 때 쓰이는 숫자, 문자열 등 자료 형태로 사용하는 모든 것을 뜻합니다. 소프트웨어 ..
2023.02.23
-
OpenAI 'chatGPT'와 구글 '바드'의 대결
chatGPT의 등장 '생성 AI'의 열풍을 불러일으킨 대화형 인공지능(AI) 서비스인 chatGPT의 인기는 식을 줄 모르는 상태입니다. 2022년 12월에 OpenAI가 출시한 뒤, 2달 만에 월간 활성 사용자 수(MAU) 1억 명을 달성하였는데요. 덕분에 23년 2월에는 나스닥 AI 테마주는 최고 61% 급등하는 일도 있었습니다. 이 때문에 암호화폐에서 인공지능으로 투자를 갈아타는 경향도 보이고 있습니다. 이뿐만 아니라, 최근에는 소림사에서 콘텐츠 개발을 위해서, chatGPT를 이용하기 위해 예약한 상태라고 합니다. 이쯤 되면, chatGPT에 세간의 관심이 쏟아지고 있다는 것을 알 수 있습니다. chatGPT는 OpenAI에서 개발한 AI 언어처리 모델로, 콘텐츠 생성, 언어 번역, 고객 서비스..
2023.02.21
-
Q-Learning, 모델 없이 학습하는 강화 학습
모델 없이 학습하는 방법 강화 학습(Reinforcement Learning)은 Dynamic environments에서 의사 결정에 사용되는 일종의 머신러닝입니다. 원하는 결과에 대한 명확한 방법이 없고, 에이전트가 시행착오를 통해 학습해야 하는 애플리케이션에 특히 유용하게 사용됩니다. 이러한 강화 학습에서 가장 널리 사용되는 알고리즘 중 하나는 Q-Learning입니다. 이번 포스팅에서는 강화 학습의 개념을 소개하고, Q-Learning의 작동 방식이 무엇인지 알아보겠습니다. 강화 학습(Reinforcement Learning) 이란? 강화학습은 현재 상태에서, 어떤 행동을 하는 것이 좋을지 방향을 찾는 학습 방법이라고 할 수 있습니다. 강화 학습에서 에이전트는 보상 개념을 최대화하는 결정을 내리는 ..
2023.02.20
-
XAI, 인공지능(AI)의 결과를 설명할 수 있을까?
결과를 설명해 주는 AI는 만들 수 없을까? 요즘 대화형 인공지능 chatGPT에 대한 사람들의 관심은 정말 뜨겁습니다. 출시 2달 만인, 23년 2월에는 월간 활성 사용자 수(MAU) 1억 명을 달성할 정도로 많은 사람이 이용하는 인공지능입니다. chatGPT는 OpenAI에서 개발한 AI 언어처리 모델로, 콘텐츠 생성, 언어 번역, 고객 서비스, 데이터 분석 등 다양한 분야에서 인간처럼 대답을 할 수 있기 때문에, 인기를 끌고 있습니다. 미국의 의사 면허 시험에도 합격할 정도로 그 능력은 대단합니다. 하지만, 대단한 능력의 AI인 만큼, 불완전한 부분도 존재하고 있습니다. 바로, 어떻게 이런 답변을 도출해 냈는지 설명할 방법이 없는 것입니다. chatGPT는 간단히 말하면, 5조 개 단위의 문서에서 ..
2023.02.18
-
인공지능(AI)의 등장과 일자리의 변화
미래 사회의 인공지능(AI) 가까운 미래 사회, 인간은 반복적인 일에서 벗어나게 하고, 삶을 더욱 가치 있게 만들어줄 로봇 개발에 몰두했고, 그 결과 안드로이드 개발에 성공했습니다. 인간보다 힘도 세고, 환경의 영향도 받지 않는 데다가, 낮이든 밤이든 명령대로 일할 수 있기 때문에, 안드로이드들은 거의 모든 분야에서 인간들의 일자리를 대체하기 시작했습니다. 집안일, 길거리 청소 등의 간단한 일부터, 도로 보수 공사와 같이 힘과 기술이 필요한 곳에 많이 사용되었습니다. 심지어는 안드로이드 형사와 같이, 범죄자의 심리를 파고들면서, 범죄 단서를 찾고, 법을 알아야 하는 역할도 잘 수행하게 됩니다. 한편, 안드로이드가 점차 인간들의 일자리를 대체하게 되면서, 생계를 빼앗긴 인간들의 안드로이드 혐오는 걷잡을 수..
2023.02.16
-
AI 로봇의 반란을 막는 방법이 있을까?
영화와 게임 속 AI의 반란 영화 에서는 로봇이 인간과 어울려 살아가는 미래 사회를 배경으로 하고 있습니다. 인간은 생활의 거의 모든 부분에서 AI 로봇의 도움을 받으면서 살고 있습니다. AI 로봇이 요리 하고, 아이를 돌보며, 집안일 등을 도와주는 것이 당연한 사회입니다. 그러던 어느 날, 모든 로봇이 사람들을 공격하고, 통제하기 시작하면서 이야기가 시작하게 됩니다. 게임 에서도 이와 비슷한 사건이 발생하게 됩니다. 기계가 인간보다 더 높은 지능을 가진 미래에서, AI 로봇은 어린아이를 인질로 잡으면서, 경찰들을 공격하기도 합니다. 인간의 명령에 복종해야 할 것만 같던 AI 로봇들이 자신의 존재를 위해 거짓말도 하고, 사람을 공격하며, 로봇의 권리를 위해 시위도 하게 됩니다. 이번 포스팅에서는 AI가 ..
2023.02.15
-
[Pro][삼성] 15942번 : 외계인 침공 - 2
삼성 SWEA 15942 : 외계인 침공 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 지난 포스팅 요약 지난 포스팅에서는 이 문제의 핵심인 "동원을 최소화하기 위해, 침략 순서를 어떻게 정할 것인가?"를 정하는 방법에 대해서 다뤘습니다. 아래 과정을 통해서 동원을 최소화할 수 있었고, 이는 Upper Bound 알고리즘을 활용하여 구현할 수 있었습니다. 1. 모든 행성 정복에 필요한 함선 수를 계산한다. (= 모든 행성의 인원 수를 더한다.) 2. "현재 함선 수 이하의 주민이 있는 행성 중, 가장 주민이 많은 행성"을 고른다. 3. "침략"을 진행한 뒤, 함선이 더 필요한 경우에 "동원" 한다. 3. 1번..
2023.02.14
-
신경망(Neural Network), AI 학습의 숨은 조력자
인공지능(AI)과 신경망(Neural Network) 인공 신경망(Artificial Neural Network)은 인공지능 분야에 혁명을 일으킨 일종의 머신러닝(Machine Learning) 알고리즘입니다. 인간 두뇌의 중, 신경회로의 구조와 기능을 모방함으로써, 인공지능은 방대한 양의 데이터를 기반으로 학습하고, 결정을 내릴 수 있습니다. 오늘은 AI가 어떻게 Neural Network를 통해 학습하게 되는지 그 과정에 대해서 알아보겠습니다. 신경망(Neural Networks)이란? 신경망(Neural Network)은 여러 Layer의 상호 연결된 노드 또는 인공 뉴런(Artificial Neuron)으로 구성된 일종의 인공 신경망(Artificial Neural Network) 입니다. 좀 더..
2023.02.13
-
10초 만에 감동을 만드는 AI 아티스트
인간만 할 수 있던 일들을 AI가 하기 시작했다. 아래 그림은 요하네스 페르메이르(Johannes Vermeer)의 '진주 귀걸이를 한 소녀'를 AI가 재해석하여, 배경을 확장해 그린 그림입니다. 기존에는 없던 배경을 원본 그림과 맞추어서, 정말로 소녀가 물건 가득한 집안 한가운데에 있는 것처럼 AI가 그려냈습니다. 이 그림은 Open AI에서 만든 AI 프로그램, DALL·E 2의 작품인데요. 원본 그림에 그려지지 않은 부분을 추가로 확장하여 완성하는 '아웃페인팅' 기능을 통해, 원본 작품 크기의 20배까지도 배경을 확장할 수 있다고 합니다. 이뿐만이 아닙니다. 제임슨 M.앨런이 "미드저니(Midjourney)"라는 AI 프로그램을 이용하여 만든 "스페이스 오페라극장" 작품도 놀라운데요. 실제로 이 작..
2023.02.11
-
[세미나 리뷰] From Model-centric To Data-centric AI (2)
지난 이야기 요약 지난 포스팅에서는 앤드류 응(Andrew Ng) 교수의 "A Chat with Andrew on MLOps : From Model-centric To Data-centric AI" 세미나에 대해서 소개하고, 세미나의 주제를 표현하는 개념에 대해서 알아보았습니다. 많은 사람이 AI System의 성능 개선을 위해서, Code 즉, Model과 Algorithm에 집중하고 있지만, 실질적으로 AI System의 성능을 높이는 것은 Code의 개선이 아니라 Data의 개선이라고 앤드류 응 교수는 주장했습니다. High Quality Data를 만드는 방법 중의 일부로, Labeling에서의 Consistency를 유지하는 것을 소개했습니다. 오늘은 앤드류 응 교수가 제안하는 MLOps의 개념..
2023.02.10