-
데이터 마이닝 Data Mining2024.01.113
Data Mining 데이터 마이닝 (두산) 많은 데이터 가운데 숨겨져 있는 유용한 상관관계를 발견하여, 미래에 실행 가능한 정보를 추출해 내고 의사 결정에 이용하는 과정을 말한다. 데이터베이스로부터 과거에는 알지 못했지만 데이터 속에서 유도된 새로운 데이터 모델을 발견하여 미래에 실행 가능한 정보를 추출해 내고 의사 결정에 이용하는 과정을 말한다. 즉 데이터에 숨겨진 패턴과 관계를 찾아내어 광맥을 찾아내듯이 정보를 발견해 내는 것이다. 여기에서 정보 발견이란 데이터에 고급 통계 분석과 모델링 기법을 적용하여 유용한 패턴과 관계를 찾아내는 과정이다. 데이터베이스 마케팅의 핵심 기술이라고 할 수 있다. 예를 들어, 한 백화점에서 판매 데이터베이스의 데이터를 분석하여 금요일 오전에는 어떤 상품들이 잘 팔리는..
Python FastAPI Framework 참고2024.01.10구상하고 있는 홈피에 적용해볼까 싶음 https://fastapi.tiangolo.com/ko/ FastAPI FastAPI framework, high performance, easy to learn, fast to code, ready for production fastapi.tiangolo.com FastAPI 파이썬으로 간단하게 웹 API 만들기 FastAPI 파이썬으로 간단하게 웹 API 만들기 - 오픈소스컨설팅 테크블로그 % FastAPI는 Python을 기반으로 개발된 현대적이고 빠른 웹 프레임워크 입니다. FastAPI의 기본 개념과 특징, CRUD 예시를 통해 간단한 REST API 구현 까지 다뤄보았습니다. tech.osci.kr https://lsjsj92.tistory.com/648..
JavaScript 숫자 맞추기 게임2024.01.1021과 100 사이의 무작위 숫자를 생성하기. 플레이어의 현재 턴을 기록하기. 1부터 시작. 플레이어가 정답을 추측할 수 있는 방법을 제공. 플레이어가 자신의 추측 기록을 확인할 수 있도록, 제출하는 수를 먼저 어딘가에 기록하기. 그 후, 제출한 수가 정답인지 확인. 만약 정답이라면... 축하 메시지 보여주기. 이후에 플레이어가 다른 숫자를 제출하면 게임이 망가질 수 있으므로 제출을 막기. 게임을 다시 시작할 수 있는 컨트롤 보여주기. 만약 오답이고 아직 플레이어 턴이 남아있다면... 오답임을 알려주고 제출한 숫자가 너무 높았는지 아니면 너무 낮았는지 보여주기. 다른 숫자의 제출을 허용하기. 턴 숫자를 1 늘리기. 만약 오답인데 플레이어 턴이 남아있지 않다면... 플레이어에게 게임이 끝났음을 알려주기. 이..
React(React-Native, React.js, Next.js), Typescript, DOM2024.01.102안드로이드 개발이랑 DOM이나 자바스크립트 개념은 친숙해서 대체로 이해는 가지만, 라이브러리를 적용해서 프로젝트를 진행해봐야 실감이 날 듯. ※ 위키피디아 자바스크립트 라이브러리 목록 https://en.wikipedia.org/wiki/List_of_JavaScript_libraries List of JavaScript libraries - Wikipedia From Wikipedia, the free encyclopedia en.wikipedia.org React 사용자 인터페이스를 만들기 위한 JavaScript 라이브러리 https://ko.legacy.reactjs.org/ React – 사용자 인터페이스를 만들기 위한 JavaScript 라이브러리 A JavaScript library for ..
정보처리기사 기출 문제 확인 중2024.01.08출처 : 정보처리기사 필기 기출문제 및 CBT 2022년 04월 24일(2회)(해설집 포함) 1과목 : 소프트웨어 설계 UML 다이어그램 중 순차 다이어그램 1. 객체 간의 동적 상호작용을 시간 개념을 중심으로 모델링 하는 것이다. 2. 행위 다이어그램이므로 동적이고 순차적인 표현을 위한 다이어그램이다. 3. 일반적으로 다이어그램의 수직 방향이 시간의 흐름을 나타낸다. 4. 회귀 메시지(Self-Message), 제어블록(Statement block) 등으로 구성된다. 메시지 지향 미들웨어(Message-Oriented Middleware, MOM) - 메시지 기반의 비동기형 메시지를 전달하는 방식의 미들웨어 - 온라인 업무보다는 이기종 분산 데이터 시스템의 데이터 동기를 위해 많이 사용 1. 다소 느리..
UX 원칙 - UXer를 위한 101가지 원칙2023.10.113구판을 도서관에서 보고 뭐라고 했나 가볍게 보려고 빌렸는데 '원칙'답고 아는 이야기도 재미있어서 신기하다. 각 챕터 별 글이 길지 않지만 감탄스러울 정도로 쉽고 정확한 문장을 사용해서 뇌에서 사르르 녹는 기분이 든다. 글 쓰신 분과 번역하신 분들의 깊은 마음과 내공이 느껴짐 (감사합니다!) 아직 읽는 중인데, 개정판도 궁금하다. UX 원칙 - UXer를 위한 101가지 원칙 윌 그랜트 저자(글) · 심규대 번역 에이콘출판 #1 누구나 UX 전문가가 될 수 있다 #2 두 가지 이상의 서체를 사용하지 마라 #3 사용자의 컴퓨터에 설치된 폰트를 사용하라 #4 글자 크기를 사용해서 정보 체계를 표현하라 #5 본문에는 합리적인 기본 크기를 사용하라 #6 줄임표를 사용해서 다음 단계가 있다는 것을 알려라 #7 버튼..
텍스트를 입력할 때마다 그대로 출력해 주는 TextWatcher()2023.07.17TextWatcher() 메소드는 텍스트를 입력할 때마다 입력하는 글자가 그대로 출력되어 실시간으로 다른 곳에서 표시되는 기능을 구현해 준다. AndroidManifest.xml에서 android:theme="@style/Theme.TextWatcher"를 추가해 준다. MainActivity.java addTextChangedListener() 입력 후 new TextWatcher를 입력하면 자동완성된다. package com.bpdev.textwatcher; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher;..
에뮬레이터에서 네트워크 통신 되도록 설정하는 방법, JASON 테스트 데이터 사이트2023.07.14안드로이드 스튜디오에서 실제 폰등의 기기가 아니라 에뮬레이터를 사용해 네트워크 통신 테스트를 할 경우, 네트워크 통신이 가능하도록 몇 가지 설정을 해 주어야 한다. 1. res/xml폴더 안에 network_security_config.xml 생성 *.typicode.com typicode.com은 테스트 데이터를 제공해주는 사이트. 이 사이트로부터 오는 것은 다 허용해달라고 설정해 준다. JSONPlaceholder - Free Fake REST API (typicode.com) JSONPlaceholder - Free Fake REST API {JSON} Placeholder Free fake API for testing and prototyping. Powered by JSON Server + Lo..
Contacts App : 검색 추가 addTextChangedListener, TextWatcher2023.07.14app / res / layout / activity_main.xml app / java / com.bpdev.contacts / MainActivity.java package com.bpdev.contacts; import androidx.appcompat.app.AppCompatActivity; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import android.content.Intent; import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; imp..
Contacts App : SQLite3 DB, Adapter, DatabaseHandler2023.07.14app / res / layout / activity_main.xml app / res / layout / contact_row.xml app / res / layout / activity_add.xml app / res / layout / activity_update.xml app / java / com.bpdev.contacts / MainActivity.java app / java / com.bpdev.contacts / adapter / ContactAdapter.java app / java / com.bpdev.contacts / model / Contact.java app / java / com.bpdev.contacts / data / DatabaseHandler.java app / java..
Contact App : AlertDialog, RecyclerView, Adapter...2023.07.12app / res / layout / activity_main.xml app / res / layout / contact_row.xml app / java / com.bpdev.simplecontacts / MainActivity.java package com.bpdev.simplecontacts; import androidx.appcompat.app.AppCompatActivity; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import android.os.Bundle; import android.view.View; import android.widget...
SimpleMemo App : RecyclerView, Adapter, ViewHolder2023.07.12app / res / layout / activity_main.xml app / res / layout / memo_row.xml app / java / com.bpdev.simplememo / MainActivity.java app / java / com.bpdev.simplememo/ model / MemoAdapter.java app / java / com.bpdev.simplememo / adapter / Memo.java app / res / layout / activity_main.xml 빨간 전구 누르고 추천 선택하면 생성자 만들어줌. 자동생성 app / java / com.bpdev.simplememo / MainActivity.java package com.bpdev.simplememo;..
SharedPreferences class 앱 파일 저장소 사용하기2023.07.11마지막 페이지인 WelcomeActivity에서 e-mail 정보를 받아오는 방법 2번이다. 포인트는 SharedPreferences 클래스를 이용해서 파일을 생성하고 그곳에 데이터를 저장하여, 필요한 곳에서 저장소를 불러와서 데이터를 사용하는 것. 파일은 앱을 삭제하면 사라진다. MainActivity.java package com.bpdev.register; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.util.Log; import android.view.V..
Register : intent putExtra()/getExtra() 데이터 전달2023.07.11마지막 페이지인 WelcomeActivity에서 e-mail 정보를 받아오는 방법 1번이다. 포인트는 페이지들의 연결고리인 intent를 이용해서 데이터를 넘겨주고 넘겨주는 것. 징검다리 식. MainActivity.java package com.bpdev.register; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; import com.google.android..
Register2023.07.11MainActivity.java package com.bpdev.register; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import com.google.android.material.snackbar.Snackbar; public class MainActivity extends AppCompatActivity { EditText editEmail; EditText editPassword1; EditTe..
LifeCycle2023.07.11MainActivity.java package com.bpdev.lifecycle; import androidx.activity.result.ActivityResult; import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.os.Bundle; import android.util..
Activity Life Cycle, 1. 두 개의 Activity 연결과 실행2023.07.10하단의 링크를 보면 활동 수명 주기라고 번역이 되어 나오는데, 화면(xml)과 로직(java등)의 결합체인 Activity의 시작과 끝의 동작 과정을 Activity Life Cycle이라고 한다. 안드로이드 화면에서 앱을 실행시킨 후 back 버튼 누르면 앱이 사라진다. 이런 식의 과정에서 각 함수들이 작동하는 것이다. 안드로이드에서 앱의 실행 버튼을 누르면 가장 먼저 manifests/AndroidManifest.xml에서 설정한 android.intent.action.MAIN이 실행된다. 카카오톡의 경우 로고액션이 들어간 액티비티부터 실행된다고 할 수 있다. 그리고 실행된 앱은 홈버튼을 누르면 잠시 중지(일시중지)되어 있어야 한다. 그리고 다른 앱을 실행시키거나 다른 페이지로 이동했을 때도 잠시 일..
Alarm : CountDownTimer, MediaPlayer2023.07.10java / com.bpdev.alarm / MainActivity.java package com.bpdev.alarm; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; import android.content.DialogInterface; import android.media.MediaPlayer; import android.os.Bundle; import android.os.CountDownTimer; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.w..
Timer App : CountDownTimer, 동작 중 Tab 숫자 세기2023.07.09MainActivity.java package com.bpdev.timer; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; import android.content.DialogInterface; import android.os.Bundle; import android.os.CountDownTimer; import android.view.View; import android.widget.Button; import android.widget.TextView; public class MainActivity extends AppCompatActivity { TextView txtTimer; Te..
Quiz App : ArrayList, 동작 초기화와 AlertDialog, finish();2023.07.09qpp / com.bpdev.quizapp / MainActivity.java package com.bpdev.quizapp; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; import android.content.DialogInterface; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.ProgressBar; import android.widget.TextView; import com.bpdev.quiz..
나이 계산 Activity / import java.util.Calendar;2023.07.09MainActivity.java package com.bpdev.cat; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import com.google.android.material.snackbar.Snackbar; import java.util.Calendar; public class MainActivity extends AppCompatActivity { EditText editYear; Button b..
퍼센트를 구하는 Calculator activity2023.07.09MainActivity.java package com.bpdev.calculator_khy; import static com.bpdev.calculator_khy.R.id.enterPercent; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import com.google.android.material.snackbar.Snackbar; public class M..
UITest1 : 로그인 화면 Activity(xml+java) / Toast, Snackbar2023.07.06app / mainfests / AndroidManifest.xml app / java / com.bpdev.uitest1 / MainActivity.java package com.bpdev.uitest1; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import com.google.android.material.snackbar.Snackbar; public c..
DiceApp : 안드로이드 개발 기본 구성2023.07.06안드로이드 개발의 구성요소 화면개발(그림) + 로직개발(동작) 화면개발 : XML 개발 로직개발 : JAVA 개발 개발순서 : 화면개발(XML) - 로직개발(JAVA) : 단위별로 반복한다. 화면-로직 > 화면-로직 > 화면-로직 > ... 하나의 화면과 로직 묶음 => Activity 액티비티 activity를 생성하면 자동으로 xml과 java 두개도 자동으로 셋팅이 된다. 당연히 어느 작동을 하고 싶을 때 어떤 코드를 어느 위치에 넣어야 하는지를 정하고 시작한다. 안드로이드스튜디오는 클라이언트 개발 프로그램이다. 가상환경을 설치해서 돌아가기 때문에 헤비함, 디스크 메모리 cpu 좋은 거 써야 작업이 잘 진행된다. ♠ xml파일 초기 코드는 ConstraintLayout에 담아야 한다. http://..
SDK Software Development Kit (aws)2023.07.06SDK 소프트웨어 개발 키트(SDK)는 개발자를 위한 플랫폼별 구축 도구 세트입니다. 특정 플랫폼, 운영 체제 또는 프로그래밍 언어에서 실행되는 코드를 만들려면 디버거, 컴파일러 및 라이브러리와 같은 구성 요소가 필요합니다. SDK는 소프트웨어를 개발하고 실행하는 데 필요한 모든 것을 한 곳에서 제공합니다. 또한 SDK에는 문서, 튜토리얼 및 가이드와 같은 리소스와 더 빠른 애플리케이션 개발을 위한 API 및 프레임워크가 포함됩니다. SDK를 사용하는 이유 SDK는 개발 프로세스 전반에 걸쳐 개발자가 애플리케이션을 만드는 데 도움이 되는 여러 가지 이점을 제공합니다. 여기에는 다음이 포함됩니다. 효율적인 개발 SDK는 애플리케이션에 통합할 수 있는 사전 빌드된 구성 요소와 라이브러리를 제공하여 개발 효율..
에러 대비 Try catch (+finally), NullPointerException error2023.07.04try ~ catch 프로그램 실행 시 에러가 발생했을 때는 에러 메시지를 캐치해서 클라이언트나 개발자에게 알려줘야 하고, 프로그램이 종료되어도 안된다. 에러가 나도 정상 종료해야 한다. 그러기 위해서 사용하는 것이 Try / catch 구문이다. main/Main.java package main; // 여기 패키지 메인임. import model.Student; // 모델에 있는 스튜던트 데리고 온다. public class Main { public static void main(String[] args) { // cpu 시작 Student s1 = new Student(); // 메모리에 스튜던트 공간 확보한다. s1.name = "홍길동"; System.out.println(s1.name); s1...
import java.util.HashMap 해쉬맵 사용법2023.07.04HashMap HashMap은 파이썬의 딕셔너리와 비슷한 데이터 스트럭쳐로써, key, value 쌍으로 저장한다. 사용하기 위해 페이지 상단에 자바 유틸의 해쉬맵을 import 시킨다. import java.util.HashMap; 그리고 함수 안에 아래 해쉬맵 형식을 적어준다. HashMap phoneMap = new HashMap(); CRUD Create 데이터 저장 위에서 해쉬맵 타입은 String문자로 받기로 했기 때문에 문자로 엄격하게 다뤄줘야 한다. 자바에서는 데이터 타입 맞춰주는 것이 가장 중요한 것 중 하나다. phoneMap.put("model", "iPhone 12"); phoneMap.put("year", "2021"); phoneMap.put("color", "red"); Rea..
import java.util.ArrayList 어레이리스트 사용법2023.07.04Array Java의 기본 함수인 Array 배열은 생성할 때 무조건 갯수를 정해놓고 생성해야 한다. 숫자가 정해져 있는 데이터에만 사용할 수 있다. String[] nameArr = new String[5]; 위의 배열은 정해진 갯수 이상으로는 데이터 추가가 불가능하다. 따라서 갯수 제한없이 마음대로 데이터를 추가할 수 있고, 삭제할 수도 있는 ArrayList를 사용한다. ArrayList 먼저 함수 위에 ArrayList를 자바 유틸에서 불러와서 연결해야 한다. import java.util.ArrayList; 그리고 클래스 함수 안에서 아래 구문으로 빈 리스트를 생성할 수 있다. ArrayList nameList = new ArrayList(); CRUD Create 데이터 넣기. 위의 리스트 생..
JAVA Overriding 오버라이딩 @Override Annotation2023.07.04Overriding 부모 클래스로부터 상속받은 method나 생성자constructor의 내용을 재정의하여 사용하는 것. 자식클래스에서 추가하거나 변경해야 할 내용이 있을 경우, 부모 클래스의 method를 override 한다. 자식 클래스인 Child 클래스에서 Overriding 했다면 해당 부분에 '@Override'라고 표시하여 Annotation 주석처리한다. main/Main.java package main; import model.Child; import model.Parent; public class Main { public static void main(String[] args) { Parent p = new Parent(); // 클래스를 만들어 보자 new p.name = "봄동";..
객체 지향 프로그래밍 OOP 언어 "JAVA 자바"2023.07.04Java | Oracle Java | Oracle 데스크톱 애플리케이션용 Java 얻기 www.java.com 자바 Java 객체 지향 프로그래밍 언어로서 보안성이 뛰어나며 컴파일한 코드는 다른 운영 체제에서 사용할 수 있도록 클래스(class)로 제공된다. 객체 지향 언어인 C++ 언어의 객체 지향적인 장점을 살리면서 분산 환경을 지원하며 더욱 효율적이다. ① 자바는 간단하다 (simple) 하나의 소프트웨어가 제작될 때는 소프트웨어를 제작하는 비용도 많이 들지만 유지 보수하는 비용도 어마어마하다. 자바 언어는 이러한 점을 고려하여 디자인되었다. 자바 언어는 C++를 기반으로 개발되었음에도 C++에서 혼란을 일으키는 부분을 제거했다. 예를 들면 연산자 오버로딩, 다중 상속 같은 것들이다. 그리고 C++..