분류 전체보기 222

django를 이용하여 프로젝트 생성, app 생성, 서버 구동하기

코드를 작성하면서 참고한 사이트이다. https://docs.djangoproject.com/en/2.2/intro/tutorial01/ Django The web framework for perfectionists with deadlines. docs.djangoproject.com 아직 장고 튜토리얼을 하는 중이기 때문에 오늘은 장고를 이용해서 프로젝트를 생성, app 생성, 서버를 구동하는 방법을 공부하였다. 먼저 이전에 장고 라이브러리를 설치한 가상환경인 myenv로 접속하였다. 가상환경에 접손 후 장고가 잘 깔려있는지 확인하기 위해서는 py -m django --version 명령어를 이용하면 된다. 장고버전이 결과값으로 리턴이된다. 장고가 잘 설치되어있다는 것이기 때문에 이제 프로젝트를 생성 ..

Django 2023.04.20

REST API / RESTful API 차이점

REST(REpresentational State Transfer) 자원을 이름으로 구분해서 해당 자원의 상태를 주고 받는 것을 의미한다. 즉, resource(자원) 의 representation(표현) 에 의한 상태 전달이다. HTTP 프로토콜을 그대로 사용하여 웹의 장점을 활용할수 있는 아키텍쳐 스타일이며 client와 server사이의 통신 방식중 하나이다. 자원의CRUD(Create,Read,Update,Delete) 연산을 하기 위해 URI로 get,post,put,delete등의 메서드를 사용해서 요청을 보내고 특정 형태로 값을 돌려 받는다. REST의 구성요소는 URI와 메서드와 반환되는 형태 로 나뉜다. URI 모든 자원에는 고유 id가 존재하고 이 자원은 server내에도 존재한다. H..

Flask 2023.04.19

Django 시작하기 (django 설치, 가상환경 세팅)

Django와 Flask는 python을 기반으로 한 Web Framework라고 한다. 이제는 Flask를 잘 다룰 줄 아니 Django를 공부해보려고 한다. 공부하기 전에 같은 Web Framework 인데 뭐가 다를까?에 대한 궁금증에 간단한 서치를 해보았다. django는 Python의 full stack web framework인 반면 Flask는 가볍고 확장 가능한 web framework이다. 즉, django는 기능이 훨씬 뛰어나지만 복잡하고, Flask는 매우 단순하고 가볍다는 차이라고 한다. 장고를 시작하기 전에 가상환경 셋팅을 먼저 해준다 https://docs.djangoproject.com/en/2.2/intro/install/#quick-install-guide Django Th..

Django 2023.04.18

Openai의 gpt api를 이용한 간단한 챗봇 구현

요즘 OpenAI가 개발한 GPT의 3세대 모델이 굉장히 핫하다. gpt3를 이용하여 간단한 챗봇을 구현해볼 것이다. API Key를 등록하기 위하여 OpenAi의 사이트로 이동을 한다 https://openai.com/product Product Our API platform offers our latest models and guides for safety best practices. openai.com Get Started를 선택한다. 간단한 챗봇 기능을 구현할 것이기 때문에 아래에서 Chat을 선택한다 API키를 발급받기 위하여 오른쪽 상단에서 View API keys를 선택한다. 새로운 시크릿키를 생성한다. 이제 openai에서 제공하는 text-davinci-003 모델을 이용하여 자연스러운 ..

Python 2023.04.18

Glide 라이브러리 이용할 때 GlideException 오류 해결 방법

Glide라이브러리를 이용하여 imageView 에 이미지를 나타내려하는데 GlideException 오류가 발생하였다. 기본적으로 설정해줘야하는 매니페스트, network_security_config.xml 파일을 생성하였을 때도 오류가 해결되지 않는다면, 이때는 호출하려는 imgUrl을 확인해보아야한다. Glide 라이브러리 이용시 이미지 url 에서 프로토콜을 Http 를 사용하는 경우 HttpException 오류가 발생하기 때문에, replace 함수를 이용하여 http 를 https로 replace 하여 문제를 해결할 수 있다. replace 함수를 이용하여 http를 https로 변경해주었더니 이미지가 잘 load 되었다. 이런 사소한 부분에서도 오류가 발생하니 로그를 잘 확인해보자!

Android 2023.04.17

DB 데이터베이스 인덱스(Index)

1. 인덱스(Index)란? Index는 RDBMS(관계형 데이터베이스 관리 시스템)에서 테이블에 대한 검색 속도를 높여주는 자료 구조를 말하며, 테이블 내에 1개의 컬럼 혹은 여러 개의 컬럼을 이용하여 생성한다. 특정 테이블의 컬럼을 인덱싱(Indexing)하면 검색을 할 때 테이블의 레코드를 전부 다 확인하는 것이 아니라 인덱싱 되어있는 자료 구조를 통해서 검색되기 때문에 검색 속도가 빨라지는 것입니다. Index는 빠른 검색 속도뿐만 아니라 레코드 접근에 대한 효율적인 순서 매김 동작에 대한 기초를 제공 데이터베이스의 인덱스는 데이터베이스에서 메모리에 일정 공간을 사용해서 저장하게 된다. *** 인덱스에는 여러 가지 유형이 있지만 그중에서도 많이 사용되는 인덱스 구조는 B+TREE 구조이다 (B+T..

Database 2023.03.31

firebase 의 Authentication 기능을 이용하기 위한 안드로이드 환경셋팅하기

파이어베이스 회원가입 인증을 하기 위해 1. project 수준의 build.gradle 파일에 코드를 작성한다. 기본적으로 작성돼있는 plugins 코드 위에 작성해야 오류가 발생하지 않는다. buildscript { dependencies { classpath 'com.android.tools.build:gradle:7.2.2' // The google-services plugin is required to parse the google-services.json file classpath 'com.google.gms:google-services:4.3.13' } } 2. module 수준의 build.gradle 파일에 아래 코드를 작성한 후 sync now 한다. plugins 부분에 작성할 코드 ..

Android 2023.02.24

firebase 의 realtime database 를 이용하기 위한 안드로이드 환경설정

1. firebase 의 공식 사이트로 이동한다. https://firebase.google.com/?hl=ko Firebase Firebase는 고품질 앱을 빠르게 개발하고 비즈니스를 성장시키는 데 도움이 되는 Google의 모바일 플랫폼입니다. firebase.google.com 2. firebase 에 android 앱을 등록한다. 3. 구글 서비스 플로그인에서 제공하는 json 파일 다운로드 후 안드로이드 프로젝트에 추가한다. 4. project 수준의 build.gradle 파일에 소스코드 추가 기본적으로 작성돼있는 plugins 코드 위에 작성 해주어야 오류가 발생하지 않는다. buildscript { dependencies { classpath 'com.android.tools.build:g..

Android 2023.02.24

Retrofit2 라이브러리 사용을 위한 설정 방법

1. Retrofit을 사용하기 위한 Gradle 추가 Gradle 에 코드를 추가해준다. implementation 'com.squareup.retrofit2:retrofit:2.9.0' implementation 'com.squareup.retrofit2:converter-gson:2.9.0' implementation("com.squareup.okhttp3:logging-interceptor:4.9.0") 2. AndroidManifest.xml 파일로 이동하여서 인터넷 권한을 설정해준다. 3. network_security_config 파일을 xml 에 추가해준다. *.amazonaws.com 4. AndroidManifest.xml 파일로 돌아와서 코드를 추가해준다. an..

Android 2023.02.09

recyclerView - 리사이클러뷰 페이징 처리

리사이클러뷰 페이징 처리를 하기 위해서는 addOnScrollListener 코드를 이용하여야 한다. 오바라이딩 해야하는 함수가 onScrollStateChanged, onScrolled 두개가 나타난다. onScrollStateChanged 코드는 건드리지 않고, onScrolled 함수에만 추가적으로 코드를 작성해주면 된다. 맨 마지막 데이터가 화면에 보이면 네트워크 통해서 데이터를 추가로 받아오기 위해서 int lastPosition = ((LinearLayoutManager)recyclerView.getLayoutManager()).findLastCompletelyVisibleItemPosition(); int totalCount = recyclerView.getAdapter().getItemCo..

Android 2023.02.08