본문 바로가기

전체보기138

[1인 앱 개발] 1인 개발자 Google Ads 광고 12000원써서 로또 어플 홍보 후기 로또 어플 사용자가 늘지 않아 고민이 늘어가던 때.... 블로그 홍보, 인스타그램 홍보도 해보았지만 제가 그렇게 바이럴이 쎈 사람도 아니여서 블로그, 인스타를 통한 홍보효과가 미미했습니다. 그렇게 저는 매일매일 사용자가 늘지 않아 고민이었습니다. Google Ads 광고나 해볼까?? 고민하던차 다른 1인 개발자 글을 보니 전단지라도 돌려라 라는 말을 듣고 호기심 삼아 Google Ads 광고로 제가 만든 로또 어플을 홍보해 보았습니다. 일단 16,000원 써보자 수동결제로 진행하였고, 최소 결제 단위는 16,000원이어서 일단 16,000원 결제해보았습니다. 그 결과... 나름 대 성공?!! 결과는 제 상상 이상이었습니다. 16,000원 중 약 12,000원 정도 쓴 결과 였습니다. 이것도 파고 들면 많.. 후기/내가 직접 경험한 후기 2022. 1. 2.
[플러터(flutter) 오류 해결] Class AMSupportURLConnectionDelegate is implemented 오류 해결법 플러터 iOS 빌드시 아래와 같은 오류가 발생하여 해결한 방법을 소개 하겠습니다. Class AMSupportURLConnectionDelegate is implemented in both /usr/lib/libauthinstall.dylib (0x1e6ff2b90) and /Library/Apple/System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice (0x103e242c8). One of the two will be used. Which one is undefined. Class AMSupportURLSession is implemented in both /usr/lib/libauthinstall.dylib (0.. 플러터관련 정보/플러터-안드로이드 개발 2022. 1. 1.
도커파일 사용법 - 도커를 이용한 FastAPI 서버 구축 방법 관련 정리 기본 컨셉 기본 FastAPI 서버 구성을 위해 우선 구글 클라우드 VM 인스턴스에 도커를 설치하고 VM 인스턴스 로컬저장소에 /code/app 폴더를 만들어서 컨테이너에 바인드 마운트하였습니다. 이렇게 하면 컨테이너에 접속하지 않고도 로컬 폴더(/code/app 폴더)에 있는 파이썬 코드만 수정하면 되어 코드 수정할때마다 컨테이너에 접속하지 않아되어 편리합니다. 기본 순서 1. 구글 클라우드 플래폼에 VM 인스턴스를 만든다. 2. VM 인스턴스에 도커를 설치한다. 3. 도커 파일을 만든다. 4. 도커 파일로 이미지를 생성한다. - 도커 명령어 sudo docker build -t myimage . 5. VM 인스턴스 로컬 저장소에 code/app/ 폴더를 생성하고 main.py 생성 후 폴더로 업로드 .. 프로그래밍사업/도커(docker) 2021. 11. 18.
[SQL] Postgres에서 중복도 제거하고 다른 컬럼 기준으로 정렬하기(DISTINCT, ORDER BY, subquery SQL(Postgres)로 해보기 //Postgres SELECT * FROM ( SELECT DISTINCT ON (중복을 제거할 컬럼명) * FROM 테이블명 WHERE name='a') as foo ORDER BY id DESC; // 정렬할 컬럼 python SQLAlchemy로 해보기 from sqlalchemy import desc // 중복을 제거한 서브커리를 생성한다. sub_images = db.query(테이블명).distinct(테이블명.컬럼명).filter(테이블명.컬럼명==컬럼에서찾을내용).subquery() // 서브커리를 ORDER BY로 정렬한다. tests = db.query(sub_images).order_by(desc("id")).all() SQLAlchemy에서 서브커.. 프로그래밍사업/사이드 프로젝트 2021. 11. 6.
장고(django)보다 쉽게 FastAPI로 간단한 CRUD 만들기 fastapi review 기본 설계 fastapi로 CRUD 구현 postgres를 사용할것임 orm은 SQLALCHEMY 사용할것임 순서 pip install fastapi[all] 패키지 설치 pip install sqlalchemy 패키지 설치 main.py 함수 생성 hello fastapi 구현 fastapi 서버와 postgres 서버 연결 pgAdmin으로 수동으로 DB 생성 postgres와 SQLALCHMY create_engine, sessionmaker 생성 from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker from sqlalchemy.ext.declarative import declarative.. 프로그래밍사업/사이드 프로젝트 2021. 10. 30.
[docker, PostgreSQL ] GCP에 Docker Postgresql 세팅하기 여러 인터넷 글에는 외부 접속을 위해서는 pg_hba.conf 과 postgresql.conf을 수정하라고 되있습니다. 하지만 저 파일을 수정해보아도 안되던 것이 구글 클라우드 플래폼 방화벽을 열어주니 바로 접속이 되네요 방화벽을 열고, 도커 설치하고, Postgres 이미지로 컨테이너를 실행시키면 끝입니다. 접속 준비는 끝입니다. 작업순서 1. GCP VM 인스턴스 생성 - 최근 프리티어가 f1-micro에서 더 좋은 e2-micro로 변경 되었다고 하네요 그래서 그런지 10월 초 f1-micro를 만든 서버에서 과금이 되었더군요 2. 구글 클라우드 플래폼 방화벽 설정 VPC 네트워크 - 방화벽 - 방화벽 규칙만들기 주의 하실점은 해당 인스턴스에 지금 만든 방화벽 규칙이 적용 되야 합니다. ip 범위:.. 프로그래밍사업/도커(docker) 2021. 10. 6.
[Flutter , Dart 언어] 코딩하다 생각 안날 때 잠깐씩 보는 Cheat Sheet -Provider 기본적인 사용법 상태 관리를 위한 Provider에 대한 자세한 설명보다는 이미 알고 있는데 잠깐씩 사용법이 생각 안날때 보는 치트시트입니다. 만든 예제는 BottomNavigationBar를 이용하여 화면을 바꾸는 예제입니다. 프로바이더를 사용하실려고 하는데 어떻게 시작하지 기억 안나실때 보시면 됩니다. 최종 결과물 만드는 순서 1. 프로바이더 설치 2. ChangeNotifier 상속 받는 클래스 생성 - 변화를 감지를 위해 notifyListeners(); 사용 해야 됨 3. 기본 UI 생성 4. Provider 사용할 상위 위젯에 MultiProvider로 감싼다 - MultiProvider( providers: [ ChangeNotifierProvider(create: (context) => btmNavProv.. 플러터관련 정보/플러터-안드로이드 개발 2021. 10. 2.
[Flutter, Dart 언어] 안드로이드 개발을 위한 첫걸음 Dart 문법 정리-2편class의 상속, final const의 차이점, 삼항연산자 오늘은 상속에 대해 공부한 내용을 공부하였습니다. 역시 "모두가 할 수 있는 플러터 UI 입문"을 보고 공부하였습니다. 플러터는 기본적으로 StatefulWidget, StatelessWidget를 상속을 받아 사용하고 있습니다. 1. 기본적인 상속에 사용 형태 void main(){ CheeseBerger cb = CheeseBerger(); } class Burger{ Burger(){ print("buger!!!"); } } // extends 를 사용하고 상속 받을 Burger를 사용하면 상속이 됩니다. class CheeseBerger extends Burger{ CheeseBerger(){ print("cheese burger!!!"); } } 결과 buger!!! cheese burger!!.. 플러터관련 정보/플러터-안드로이드 개발 2021. 9. 30.
[Flutter, Dart 언어] 안드로이드 개발을 위한 첫걸음 Dart 문법 정리-1편class 생성자(Constructor) 사용법 플러터 개발 공부를 시작하며 안드로이드 개발을 위해서는 선택지가 자바, 코틀린이 있고 구글에서 개발은 Dart라는 언어로 만들어진 flutter를 이용한 방법이 있습니다. 플러터는 크로스 플랫폼으로 안드로이드와 iOS를 동시에 개발할수 있는 장점이 있습니다. 아직 널리 퍼지지 않아 관련 책이나 자료를 찾을 수 없다는 단점은 있지만요. 그리고 저는 이미 플러터를 통해 간단한 안드로이드 어플을 만들어 출시하였지만 하지만 기본 문법에 대한 지식이 부족하여 다른사람의 코드를 읽는데 어려움이 있어 여러 책을 찾아 보던 중 '모두가 할수 있는 플러터 UI입문'이라는 책을 보고 이미 알고 있는 다트언어의 문법은 제외한 객체지향 부분에 대해 공부하고 정리해 보았습니다. '모두가 할수 있는 플러터 UI입문' 이라는 책은.. 플러터관련 정보/플러터-안드로이드 개발 2021. 9. 29.
Flutter, Moor(SQLite ORM)을 사용한 CRUD 정리 - 1편 Create, Read - Flutter moor example, Dart ORM, Flutter database tool 1. 필요한 패키지 설치 공식 홈페이지에 있는 Getting started에 있는 패키지를 설치해 줍니다. dependencies: moor: ^4.5.0 sqlite3_flutter_libs: ^0.5.0 path_provider: ^2.0.0 path: ^1.8.0 get_it: ^7.2.0 # 공식 문서에 있는 패키지가 아닌 코드 팩토리님 강의에 나온 추가 패키지입니다. dev_dependencies: moor_generator: ^4.5.1 build_runner: ^2.1.1 2. database.dart 파일 생성 이부분은 sqlite 파일을 생성하고 데이터베이스를 생성하는 부분입니다. 이부분은 거의 공식문서의 코드를 그대로 가지고 왔습니다. part 'database.g.dart'; -> 이.. 플러터관련 정보/플러터-안드로이드 개발 2021. 9. 26.
시공단계의 건설사업관리의 질의회신 모음- 배치해야되는 감독자 수 조정 관련 규정 포함 이전에 쓴 건설사업관리 정리한 글입니다. 자세한 내용은 아래를 클릭해주세요 국토부 담당자에게 직접 물어보고 쓴 시공단계의 건설사업관리 정리 국토부로부터 시공단계 건설사업관리 접수를 위임받은 건설기술관리협회에 가보니 질의회신 모음이 있어 공유드립니다. 질의 회신 내용 중 다수의 내용이 제가 적은 국민신문고의 질문과 답변 내용 이더군요 이후 소액 공사에 대한 의견이 반영이 되었는지 인원수 배치에 대해 기존 50억이하 공사까지만 있든 평균 건설 사업관리 기간이 10억이하의 공사도 생기는 등 많은 변화가 있었습니다. 어째든 발주처에서 직접감독을 하기위해서는 발주청 역량평가점수가 49점이하가 되야하고 발주청 감독자 배치자 수가 계산 감독인원수 보다 크거나 같아야 과태료가 없다고 답변 받았으니 주의하시기 바랍니다... 후기/내가 직접 경험한 후기 2021. 9. 25.
도커 기본 명령어 도커를 사용하면서 제가 주로 사용하는 기본 명령어입니다. 도커 관련 기본 명령 sudo docker pull 이미지명 sudo docker run -v 볼륨명:경로(/app) -n 컨테이너이름 -p 외부포트:내부포트 -e POSTGRES_PASSWORD = 비밀번호 sudo docker attach 컨테이너이름 sudo docker exec -it 컨테이너이름 /bin/bash 도커 볼륨 관련 기본 명령 sudo docker volume create 이름 sudo docker volume ls sudo docker volume inspect 볼륨명 도커 볼륨, 리눅스 관련 볼륨 마운트나 바인드 마운트가 컨테이너 안에 로컬 공간의 파일을 입력하는 것은 같다 바인트 마운트는 그냥 로컬의 파일을 컨테이너안에 .. 프로그래밍사업/도커(docker) 2021. 8. 16.
SQLALCHEMY를 이용한 PostgreSQL 사용법 SQL 알케미랑 SQL 서버와 연결하는 부분 from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker URL = "postgresql://아이디:비밀번호@서버주소/DB이름" engine = create_engine(URL,echo=False) SessionLocal = sessionmaker(autocommit=False, autoflush=True, bind=engine) PostgreSql과 SQLAlchemy를 연결하는 부분입니다. 하지만 이렇게 하면 PostgreSQL 서버에 DB가 자동으로 생기지 않더군요 그래서 할수 없이 그냥 수동으로 DB를 생성한뒤 테이블을 만들었습니다. 좋은 방법이 있으신분을 가르쳐 주시면 감.. 프로그래밍사업/사이드 프로젝트 2021. 8. 16.
Fast API를 이용한 인스타그램 크롤러 만들기 컴퓨터에서 파이썬 코드를 작성하여 크롤링 하는 프로그램을 만들어서 혼자 사용하는 것은 쉽다.하지만 프로그램을 만들면 배포하여 어디서든 사용하고 싶은 욕구가 생기기 마련이다.FASTAPI와 구글클라우드플래폼(GCP)를 이용하여 인스타그램 사진을 크롤링 하는 프로젝트를 진행해보았다.결과적으로 80%정도는 만족스러운 결과를 얻었다.나머지 20% 부족한 점은 두가지가 있다.아무래도 실시간으로 인스타그램 크롤링하는 진행사항을 확인할 수 없다.지속적인 크롤링으로 인스타그램에서 아이디와 IP를 차단 당한다.이부분은 time.sleep()으로 딜레이를 줘도 인스타의 차단을 막을순 없었다.아래는 개발 중 이슈가 되었던 것과 해결과정을 작성한것 입니다.인스타그램 크롤링 관련 이슈컴퓨터 사양에 따라 크롤링 성능은 다르다접속.. 프로그래밍사업/사이드 프로젝트 2021. 7. 28.
[Fast API 정리] 장고(django) 보다 쉽게 간단한 api 서버를 만들어보자 Get, Post 응답 방식 정리 1. FastApi 기본 구현 공식 튜토리얼을 보고 기본적인 get요청과 post요청을 구현하였습니다. path로 인자를 전달하는 방법과 쿼리 방식으로 전달해서 응답을 받는 방식과 주로 로그인을 구현할 때는 쓰는 Post 방식이 있으니 아래 예시 코드를 확인하시면 됩니다 from fastapi import FastAPI from pydantic import BaseModel app = FastAPI() # 기본 Hello API: Get 방식의 응답 # http://127.0.0.1:8000/ 으로 # Get 방식으로 요청하면 hello FastAPI!! 가 리턴됨 @app.get("/") async def helloFastApI(): return "hello FastAPI!!" # path 방식으로 인.. 프로그래밍사업/사이드 프로젝트 2021. 6. 27.
[djago] 장고 관련 정리-Create, FormView 사용 법 정리 간단하게 formView를 사용하여 모델에 데이터를 입력하는 패턴관련 정리입니다. 1. 모델 생성 model.py from django.db import models # Create your models here. class TodoList(models.Model): contents = models.CharField(max_length=255) isDone = models.BooleanField(default=False) 2. forms.py 작성 from django import forms class InputForm(forms.Form): contents = forms.CharField(max_length=255, label='to Do List!!') def clean(self): cleaned_d.. 카테고리 없음 2021. 3. 3.
[docker 예제] 도커를 활용한 우분투(ubuntu 20.04.1) 환경 구축부터 셀레니움(selenium)을 활용한 크롬드라이버 헤드리스( docker를 사용한 우분투 환경 설정 1. docker pull ubuntu 우분투 이미지를 가져옵니다. 2. docker run -i -t /bin/bash 우분투 컨테이너 설치 후 컨테이너 진입 합니다. 3. apt install -y software-properties-common 저도 리눅스를 이번에 처음 해보는것라 이거 먼지는 모르겠지만 대부분의 강의자료에서 설치를 하네요 이것을 설치하고 나면 python 3.8.5 버전이 설치 됩니다. 4. apt install python3-pip pip를 설치 합니다. 이것을 실행하려면 pip3 install pandas 이런식으로 쓰시면 됩니다. 5. apt update apt upgrade 이것도 왠만하면 다 하더군요 여기까지가 도커를 사용하여 기본적.. 프로그래밍사업/도커(docker) 2020. 12. 27.
직접 담당자에게 물어보고 쓴 시공단계의 건설사업관리계획 관련 정리 - 국민신문고 공무원 직접 질의 완료 시공단계의 건설사업관리 관련 질의응답 모음집이다. 궁금하신 분은 아래 링크를 클릭해주세요 시공단계의 건설사업관리 질의응답 모음집 시공단계의 건설사업관리계획 관련하여 법령과 국민신문고에 직접 질의하고 담당 공무원과 통화하여 얻은 정보를 정리한 글입니다. 혹시나 본 내용 중 틀린 내용이 있을수 있습니다. 참고 하시기 바랍니다. □ 건설사업관리계획 제출 - 관련근거: 건진법 39조의 2, 시행령59조의2, 시행규칙 34조의2 → 1. 총공사비가 5억원 이상인 토목공사 2. 연면적이 660제곱미터 이상인 건축물의 건축공사 3. 총공사비가 2억원 이상인 전문공사 4. 그 밖에 건설공사의 부실시공 및 안전사고의 예방 등을 위해 발주청이 건설사업관리계획을 수립할 필요가 있다고 인정하는 건설공사 □ 건설사업관리 계획 .. 후기/내가 직접 경험한 후기 2020. 6. 4.