728x90

랜딩페이지를 직접 개발하려고 깃허브를 뒤졌다. 

 

지난 2개월동안

- 와디즈 프로젝트 제출 완료했고

- 공동창업자가 모교가서 프로젝트 4개 따왔고

- 다음주에 행사가서 부스열거고

- 프로토타입 3개 제작했다

 

그래서 이제 진짜 고객한테 다이렉트로 닿아야 하는 이유가 생겨서 랜딩페이지를 (이제서야...) 만드려고 한다. 

 

랜딩페이지를 만들면 그때부터 난 본격적으로 SNS 마케팅을 시작할거고 사업자등록도 하고 정부지원금도 타러 다닐거다. 

 

그래서 오늘 안에 랜딩페이지를 만드려고 하는데 직접 깃허브 뒤져서 만들까 노코드 쓸까 고민중이다. 

근데 막상 깃허브 들어가니까 프레임워크 쓴건 뭔가 건들기가 무서운것이다... 오늘 안에 끝내기엔 무리라고 생각해서 그냥 일단은 노코드로 진행하고

 

나중에 인스타 브랜딩 (개인계정) 할때 코딩 1도몰라도 노코드로 랜페개발!?? 노코드로 웹사이트!!???? 로 후킹해서 콘텐츠나 만들고 본격적으로 사업자등록 시작하면 시간 좀 오래잡고 (적어도 하루는 아니게...) 개발하려고 한다. 

 

사실 개발 개못해서 좀 쫄리지만 일단 하면 되겠지

 

https://blog.nocodecamp.kr/nocode-for-landing-page/

 

랜딩페이지를 코딩 없이 만드는 노코드 빌더 완벽 비교 가이드

랜딩페이지를 만들 수 있는 국내외 주요 노코드 툴 8가지를 비교 분석해봅니다. (Notion, Typedream, Softr, Unbounce, Waveon, Imweb, Wix, Webflow) 어떤 툴이 내게 잘 맞을지 비교해보시고, 적합한 툴을 시행착오

blog.nocodecamp.kr

 

이 글을 참고해서 노코드 툴을 정했다. 

웹플로우라는 앱은 처음 들어봤는데 (왜지..?) 제일 좋아보임 뭔가 피그마 느낌도 나서 익숙하고

그래서 고민없이 웹플로우로 할예정

 

728x90
728x90

과거 천공카드에 구멍을 뚫어서 프로그래밍하던 메인프레임 시절, 프로그래밍은 할 줄 모르지만 프로그래머가 써온 프로그램을 카드에 구멍을 뚫어서 컴퓨터에 입력해주는 사무원을 코더(Coder)라고 불렀다.

 

진정한 '코더' 가 뭔지 보여준다 아 ㅋㅋㅋㅋㅋㅋㅋㅋ

 

우리의 프로그래머는 GPT고 나는 일개 코더다. 

그야말로 '복붙 개발' ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

 

이거 은근 재밌음. 

프로그래밍이 주 목적이 아니라 무언가를 만들어내는게 목적이라면 더더욱. 

나는 내 모든 창업아이템의 MVP를 이런식으로 만들었다. 

 

무엇을 만들어내는가?

최근 OGQ가 깐깐해지면서 하얀색 테두리를 추가하란다. 

그래서 자동으로 테두리를 추가해주는 앱을 만드려고 한다. 

 

그런데 이게 무슨 프로그램이지?

뭔가 만들고싶은건 알겠는데 이걸 어떻게 gpt한테 설명해야할지 몰랐던 나는 구글링을 했다. 

구글링결과
구글링 결과

여기서 구글링 꿀팁!

 

바로 저 첫번째 문서를 들어가지 않고 이미지를 클릭한다. 

왜냐하면 내가 지금 찾고있는건 이미지를 봐야 정확한지 안정확한지 확인이 가능하기 때문이다. 

 

이미지 구글링

 

흐흐 마침 두번째, 세번째 사진이 내가 딱 원하던 그런 기능이잖아?

클릭해준다. 

 

https://xn--stackoverflow-v055c.com/questions/24039599/how-to-add-stroke-outline-to-transparent-png-image-in-javascript-canvas

 

최고다 스텍오버플로우. 

 

역시 세상의 모든 지식이 들어있어

 

내가 원하는 기능은 'sticker effect' 라고 한다.

공식적인 단어인지는 모르겠지만 저 단어라면 우리 gpt 도 알아들을거야!

 

 

GPT에게 물어보기

 

그래서 다음과 같은 질문을 gpt에게 했다. 

Q. can i create sticker effect on my transparent png file (putting a stroked white outline around each non-transparent element in my png) by javascript?

두근! 가능하다는 지피티쨩
프로그래밍까지...

 

심지어 프로그래밍 해달라고도 안했는데 알아서 해주는 센스. 

자바스크립트보다 파이썬이 더 테스트하기 쉬울거같아서 파이썬으로 다시 짜달라고 했다. 

 

오 쉣....

오 쉣.......

이게 아니잖아 프로그래머야

 

그래서 코더인 나는 지피티에게 한번 더 명령했다. 

이번엔 파이썬으로 짜달라고. 

 

갑자기 코드가 개짧아졌다. 

갓 Pillow. 진짜 갓 pillow. 

이모티콘 자동화 프로그램 파이썬 버전도 pillow 로 했지. 

 

 

어쩐지 짧아졌다 했더니 이 미친놈 진짜 테두리를 추가한거였다ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

 

메모리를 낭비하고 싶지 않다면 코드를 잘 읽고 복붙하도록 하자

근데 이러려고 우리 제피러스 G14 쟝 산거잖아

낭비해도 돼 나는

 

말을 못알아듣는거 같길래 프롬프트를 좀 수정해준다. 

 

create sticker effect on my transparent png file (putting a stroked white outline around (each non-transparent element) in my png) with python. leave the original non-transparent part, just add white border around non-transparent element.

 

 

음 이새;끼 끝까지 못알아듣는다. 

이럴땐 직접 코드를 보고 고치는 방법밖에 없다. (프롬프트를 더 수정하던가)

 

지금 보니까 # Add a white border around the pixel part again. 부분에서 계속 잘못된다. 

 

그리고 내가 내일 결론:

이새1끼는 border 라는 말을 못알아듣는다. 

그렇다면?

 

create ((sticker effect)) on my transparent png file

1. check for the transparent pixels. 

2. if transparent pixels has non-transparent pixels within 5px range, change the transparent pixels into white pixel.

 file name is IMG_5339.png

write python code. 

 

아예 border라는 단어를 없애고 수학적으로 적으면 되지 않는가. 

반경 5px이내에 불투명한 픽셀이 있다면 투명한 부분을 하얀색으로 바꿔달란 뜻. 

결국엔 5px짜리 하얀 테두리가 만들어지는거다. 

 

그렇다. 계속 지피티가 한 단어를 못알아들어서 실수를 한다면 그 단어를 없애면 되는거다. 

 

from PIL import Image

# Open the input image and convert it to RGBA format
input_image = Image.open("IMG_5339.png").convert("RGBA")

# Get the dimensions of the input image
width, height = input_image.size

# Create a new output image with the same dimensions
output_image = Image.new("RGBA", (width, height), (255, 255, 255, 0))

# Loop over each pixel in the input image
for x in range(width):
    for y in range(height):
        # Get the RGBA values for this pixel
        r, g, b, a = input_image.getpixel((x, y))

        # If the pixel is transparent and there is a non-transparent pixel within 5 pixels,
        # change the pixel to white
        if a == 0:
            for dx in range(-5, 6):
                for dy in range(-5, 6):
                    if dx == 0 and dy == 0:
                        continue
                    nx = x + dx
                    ny = y + dy
                    if 0 <= nx < width and 0 <= ny < height and input_image.getpixel((nx, ny))[3] > 0:
                        r, g, b, a = 255, 255, 255, 255
                        break

        # Set the pixel in the output image
        output_image.putpixel((x, y), (r, g, b, a))

# Save the output image
output_image.save("IMG_5339_sticker.png")

 

지피티가 준 코드...

 

과연 결과는?

 

연산이 졸라 많아져서 컴파일러가 괴로워하고있다 엌ㅋㅋㅋㅋㅋ

진짜 느리다. 

 

진짜... 느리다...? 이렇게 느려도 되는걸까

 

그래서 끝까지 코드는 돌아가지 않았고...

 

 

코드가 돌아가는 사이에 공짜 프로그램을 찾았다.

ㅋㅋㅋㅋㅋ

https://borderize.com/

 

Borderize - Add border to PNG

 

borderize.com

 

프로그램은 사서 쓰세요 제발 (근데 공짜임)

 

 

 


뭔가 gpt로 만들고싶은거 만드는거 보여주고싶었는데 실패로 끝나버린 오늘의 코드

 

다른것들은 잘 만들어질때도 있음

(사실 이거도 시간 조금만 더 있으면 가능할듯...

근데 이거같은경우엔 직접 코드 짜는게 훨씬 빠를거같음)

 

여튼 지피티로 '코더' 짓 하기 재밌습니다.

 


와 아니 미친 님들!!!!!!!!!!!!!!!!!!!!!!!!!!!
지피티가 해냈어요!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

 

아까 저 코드 드디어 30분만에 돌아감

728x90
728x90

정말 인스타툰 시작 안했으면 이런 프로젝트를 했을까 싶다. 

정작 순수 코딩 시간은 얼마 되지 않지만 그래도 몇달간 걸쳐서... 다른것도 하면서 삽질한 결과물이다. 

어쩌다보니 웹개발 삽질을 하고 있는데 진로에 대한 생각을 다시 한번 해봐야 할거 같다...

방학땐 웹 말고 다른쪽도 공부해서 관련 대회같은거 나가볼 생각이다. 

 

뭐든지 창업 아이템 만들고 싶은거 있으면 자체개발 가능할때까지 웹개발 삽질하다가 취업은 AI쪽으로 하는게 목표다. 

아직 시작도 안했지만 저거도 웹개발마냥 삽질하고 학교에서 수업 들으면 뭐라도 되겠지. 

PYQT5

Python으로 작성한 코드를 Pyqt5 GUI로 구현하여 exe 파일로 배포하려고 했다.

그러나 이 프로그램은 많은 사람들에게 배포해야 하는 특성상, 유지보수의 어려움과 OS 차이로 인한 배포의 어려움이 있었다. 그래서 나는 Flask 프레임워크를 사용하여 웹 앱으로 배포하기로 결정했다.

 

앞으로 이어질 개 미친 삽질을 상상도 하지 못한 채...

 

Flask 

Flask 에는 문제가 있었다. 


1. 일정 기간이 지나면 돈을 내고 deploy를 해야한다.
2. Flask app을 deploy 할 수 있는 곳이 많이 없다.
3. 로컬 repository에 쉽게 접근할 수 없다는 문제가 있었다.

4. 서버 측에서 파일을 저장해야 한다. 

 

사실 클라이언트 측에서 파일을 저장할 방법도 있을 거라는걸 안다. 

하지만 나는 진행하고 있는 수많은 다른 프로젝트들 (클래스 101, GPT api, 수많은 창업경진대회, 인턴 지원, 학교 숙제...)로 인해 너무 지쳐있어서 그렇게 복잡한 코드도 아닌데... 그냥 지금까지 했던거 다 버리고 Javascript로 다시 만들자고 결심했다.

 

최종적으로 Flask로 개발한 웹 앱을 JavaScript로 다시 개발하기로 결정했다.


Flask 앱에서 JavaScript로


나는 Flask 앱을 JavaScript로 전환하기 위해 JSZip 라이브러리, saveAs 함수 및 Canvas API를 사용하여 Python에서 사용했던 PIL 및 request 모듈 등을 대체했다. Flask와 달리 파일을 디렉토리에 저장하지 않았고 대신 브라우저에서 임시 파일로 처리했다.

Python 코드에서 파일을 저장하는 방식은 서버 측에서 이루어지며, 일반적으로 파일 시스템(file system)을 사용하여 서버 측에 파일을 저장한다. 그러나 JavaScript 코드에서 파일을 저장하는 방식은 클라이언트 측에서 이루어지며, 일반적으로 브라우저의 로컬 스토리지(local storage)나 쿠키(cookie)를 사용하여 클라이언트 측에 파일을 저장한다.

 

JavaScript로 개발한 웹 앱의 장점

JavaScript로 개발한 웹 앱은 Flask로 개발한 앱보다 몇 가지 장점이 있다.

1. 클라이언트 측에서 파일을 저장하기 때문에 서버 측에서 파일을 저장하는 것보다 더 안전하다.
2. 클라이언트 측에서 파일을 처리하기 때문에 서버 측에서 파일 처리를 하지 않아도 된다. 이것은 서버 리소스를 절약할 수 있는 장점이 있다.
3. JavaScript는 브라우저에서 실행되기 때문에 Flask와 같은 백엔드 프레임워크보다 더 많은 환경에서 실행할 수 있다.

 

그래서 내 이모티콘 자동 편집기는 어디에 있는데요 

시험기간이라서 아직 CSS 만질것도 있고 해서 아직 웹상에 배포는 안했다. 

5월 12일이 종강이다. 

종강하면 이모티콘 만드는 강의이모티콘 자동화 툴과 함께 돌아오겠다. 

 

그리고 인턴 최종합격이 하나하나씩 되고있다. 

방학때는 인턴일기를 그릴 예정이다. 

한국 인턴보다 월급은 적지만 월급 외로 벌고 있는것들도 많고 최대한 일 많이 시키고 많이 배울수 있는곳에 가는게 목표이기 때문에 월급을 어찌되든 상관 없다. (사실 월급 외로 버는것들이 월급보다 몇배로 많아질 예정이다...)

 

아직 정제되지 않은 자동화 툴 사용설명서

https://darkened-hour-eee.notion.site/e9223ceafc4f40bb8b92fd6700718d09

 

이모티콘 자동화 툴 사용설명서

https://naver.creators.ogq.me/

darkened-hour-eee.notion.site

사용 설명은 안적음 근데 대충 작동한다는걸 볼수있음

 

근황 + 주저리주저리...

진짜 팀 모아서 프로젝트 해보니까 팀 프로젝트 진행속도랑 개인 프로젝트 진행속도랑 차이가 너무 심하게 나는게 실감났다. 팀 프로젝트는 사람이 많고 개발할 사람이 많아서 빠른걸수도 있는데 그거랑 별개로 팀이라 무조건 미루면 안된다는 압박감이 날 개발하게 만들었다... 사업계획서도 마찬가지고...

 

방학때 주말마다 새로운 앱 하나씩 출시하고 빠르게 시장 확인하는게 목표다. 

뭐 보고 생각났냐면 liner CEO EO 인터뷰 보고 ㄹㅇ 1주일당 앱 하나씩 개발했다길래 

어? 이거 우리 팀도 가능한데? 싶어서 아예 개발만 intense 하게 하는 팀 모아서 같이 개발하고 시장테스트 할 예정이다. 

 

개발 할때마다 사업계획서를 적을 예정이라 사업계획서만 따로 적어줄 사람이 있으면 좋은데... 이건 모르겠다.

없으면 내가 적지 뭐 새로 가르치는것도 귀찮고

 

홍콩으로 인턴 하러 돌아가기 전에는 한국에서 창업 멘토링을 받으러 다닌다. 

지원사업에 합격했다. 

 

그리고 이건 나중에 인스타에 공지할건데 27일 28일 인사동 쌈지길에서 인스타툰 부스를 연다. 

그리고 6월에는 클래스 101 강의가 런칭된다. 

 

며칠전엔 남자친구랑 100일이었다. 

절대적 시간과 상대적 시간에 대한 토론... 사실 토론이라고 하기엔 내가 헷갈렸던건데 여튼 시간에 대한 이야기를 했다. 

(내가 반박하려고 하다가 내가 틀렸다는걸 깨달아버림)  

조만간 만화로 그릴지도

 

18일날 한국에 잠깐 간다. 

행정업무랑, 창업, 인스타툰 관련 일 하러 가는건데 일만하다 올거같다

 

좋아하는 일로 놀면서 돈버는거 진짜 최고...

 

사실 지금은 시험기간이고, 난 전공 시험이 5개다. 

3년졸업 특례생에게 교양은 사치다.

차피 1학년때 실수로 교양들어서 3년졸업 못하긴 하지만

 

2주일간 시험 5개가 몰려있다. 

 

도키도키

 

 

728x90
728x90

개요

  • ChatGPT API를 사용해서 택스트 입력받아 LaTeX로 변환하는 기능 완성
  • 구글 익스텐션 UI 구현
  • 구글 익스텐션을 시도했지만 Axios 를 불러오지 못해서 실패함

웹페이지 구현 이미지

상세내용

  • ChatGPT API와 Axios를 사용해서 텍스트를 입력받아 전달하여 ChatGPT의 출력값을 받아오는데 성공함.
  • 추가로 입력으로 받는 질문의 내용을 가공하여, LaTeX만 반환할수 있도록 구현함.

문제점 및 해결

에러 이미지

다음 단계 계획

  • Math API를 사용해서 만들어진 LaTeX 를 png 파일로 전환
  • 파이썬에 쓸수있는 library나 API가 있지 않을까?
  • 여차하면 그냥 flask 로 개발하면 되지 않을까?

참고

LaTeX to equation API: https://meta.stackexchange.com/questions/53436/implement-an-api-call-to-display-latex-as-inline-image

LaTeX to PNG: https://github.com/joeraut/latex2image-web < 대체 얘는 어떻게 한거지? API가 어딨지?


오늘 새로 학습한 것들:

1. HTTP

https://diatomicarbon.shop/96

 

HTTP 이야기. Axios 라이브러리와 Bearer

HTTP가 뭐야? HTTP는 HyperText Transfer Protocol의 약자로, 인터넷에서 데이터를 주고받을 때 사용되는 프로토콜입니다. HTTP는 웹 브라우저와 웹 서버 간에 메시지를 교환하여 웹 페이지를 요청하고 전송

diatomicarbon.shop

 

2. CDN

https://diatomicarbon.shop/95

 

CDN 이란 무엇일까? CDN 의 장점과 미사용시 문제점

CDN 이란 무엇일까 CDN(Content Delivery Network)은 인터넷 사용자가 웹 사이트를 방문할 때, 컨텐츠(이미지, 동영상, 문서 등)를 더 빠르게 전달하기 위해 사용되는 기술입니다. CDN은 전 세계에 분산된

diatomicarbon.shop

 

728x90

'프로젝트 > ChatLaTeX' 카테고리의 다른 글

ChatLaTeX 프로젝트  (0) 2023.04.05
728x90

개요

인간의 언어로 수식을 설명하면 LaTeX 로 변환시켜주고 수식 png 파일까지 제공해주는 웹페이지와 익스텐션을 개발하자.

 

개발동기

라텍스가 익숙한 사람은 그냥 코드쓰듯이 라텍스를 쓰면 되지만

처음 블로그 시작한 고등학생이나 많이 안써본 사람들은 라텍스를 일일히 입력하는게 힘들다.

챗지피티에게 수식을 설명하면 라텍스로 변환시켜준다는것을 발견했다. 

챗지피티의 라텍스 변환 기능

이 기능을 이용해서 gpt api를 사용한 크롬 익스텐션/웹사이트를 개발해보기로 했다. 

 

기능 설명

이 웹 페이지는 HTML, CSS 및 JavaScript를 사용하여 구축되었습니다. HTML 코드는 입력 상자, "변환" 버튼 및 이미지와 다운로드 버튼이 표시되는 출력 영역을 포함하여 페이지의 기본 구조를 정의합니다. CSS 코드는 페이지를 스타일링하고 시각적으로 매력적으로 만들기 위해 사용됩니다. JavaScript 코드는 응용 프로그램의 논리를 처리하며, 입력 텍스트를 LaTeX로 변환하기 위해 GPT API를 호출하고, 그런 다음 LaTeX를 다운로드 가능한 이미지 파일로 변환하기 위해 Math API를 호출합니다.

 

구현해야할 기능

1. UI elements

  • 채팅 입력창
  • LaTeX 결과 나오는곳
  • 수식 이미지 나오는곳
  • 수식 이미지 저장하는 버튼

2. functions

[총 구현기능]

  • 입력 받은 채팅을 ChatGPT API Input으로 넣는 기능
  • ChatGPT API에서 나온 결과에서 LATEX만 추출하는 기능
  • 추출한 LATEX를 실제 수식으로 바꾸는 기능
  • 실제 바꾼 수식을 이미지로 바꾸는 기능

[1차구현 목표]

  • 채팅을 입력 받아 ChatGPT에 나온 결과를 그대로 사용자에게 보여주기

[최종 구현목표]

  • ChatGPT에 나온 결과를 전처리를 하여 원하는 부분만 추출,가공하여 원하는 파일 형태로 만들기
    • $$를 사용.

[부가 구현 목표]

  • 음성인식을 ChatGPT에 입력할 텍스트로 바꾸기(구글 스피치 활용)

익스텐션

1. UI elements

  • 채팅 입력창
  • LaTeX 결과 나오는곳

2. functions

  • 입력 받은 채팅을 ChatGPT API Input으로 넣는 기능
  • ChatGPT API에서 나온 결과에서 LATEX만 추출하는 기능

 

마일스톤

헤커톤이 목표이기 때문이 1주일 안에 모든걸 완성해야 한다. 

프로젝트 타임라인
프로젝트 타임라인

 

사용할 프레임워크

React 를 사용하기로 했다. 

  React  Vue
Language JavaScript JavaScript
Architecture Component Component
Size Small Smaller
Learning Steep Easy
Performance Fast Faster
Data Binding One-way Two-way

React 와 Vue 비교:

React와 Vue 모두 JavaScript 기반의 컴포넌트 아키텍처를 사용하지만, React는 학습 곡선이 높고 성능이 뛰어나며, Vue는 학습이 쉽고 크기가 작습니다. React는 단방향 데이터 바인딩을 사용하고 Vue는 양방향 데이터 바인딩을 사용합니다.

수식 투명 PNG 파일을 만들기 위한 프레임워크로는 React나 Vue 모두 사용할 수 있습니다. 다만, React는 학습 곡선이 높기 때문에 Vue가 더 쉽게 접근할 수 있을 것입니다. 하지만, 수식 투명 PNG 파일을 만드는 것은 복잡한 작업이므로 React의 성능이 더 뛰어나기 때문에 React를 사용하는 것이 더 나은 선택일 수도 있습니다.

728x90

'프로젝트 > ChatLaTeX' 카테고리의 다른 글

[ChatLaTeX] 2023.4.4 개발일지  (0) 2023.04.05
728x90

$\int_{1}^{8} \sin x \, dx$

크롬 익스텐션 만드는 순서

구글 익스텐션을 만드는 방법은 다음과 같습니다.

  1. Chrome 웹 스토어 개발자 계정 생성
  2. 익스텐션 아이디 생성
  3. 익스텐션 개발
    • 익스텐션을 개발하기 위해 필요한 기술은 HTML, CSS, JavaScript 등입니다.
    • 익스텐션을 구현하기 위해 필요한 API는 Chrome API입니다.
    • Chrome API는 익스텐션에서 브라우저의 기능을 제어하고, 확장 기능을 제공합니다.
  4. 익스텐션 패키징 및 배포
    • 익스텐션 개발이 끝나면, 익스텐션을 패키징하여 배포해야 합니다.
    • 익스텐션을 패키징하는 방법은 크게 두 가지가 있습니다.
    • 첫 번째는 개발 중에 로컬에서 실행할 때 사용하는 압축되지 않은 디렉토리입니다.
    • 두 번째는 Chrome 웹 스토어에 업로드하기 위한 압축된 .crx 파일입니다.
  5. 익스텐션 검수 및 출시
    • 익스텐션을 Chrome 웹 스토어에 업로드하면 검수 과정을 거쳐야 합니다.
    • 검수 과정은 크게 두 가지 단계로 이루어집니다.
    • 첫 번째는 자동 검수로, 브라우저와 API의 호환성, 보안 등을 자동으로 검사합니다.
    • 두 번째는 수동 검수로, 익스텐션의 기능과 사용자 경험을 수동으로 검사합니다.
    • 검수가 완료되면 익스텐션이 Chrome 웹 스토어에서 출시됩니다.

 

Chrome API를 사용하는 방법

 

Chrome API는 Chrome 브라우저에서 제공하는 API로, 익스텐션을 개발할 때 사용됩니다.

Chrome API를 사용하는 방법은 다음과 같습니다.

 

  1. Chrome API를 사용하기 위한 권한 설정
    • Chrome API를 사용하기 위해서는 익스텐션의 manifest.json 파일에 권한을 설정해야 합니다.
    • 예를 들어, 사용자의 브라우징 기록을 읽거나 쓰려면 "history" 권한이 필요합니다.
    • manifest.json 파일에 다음과 같은 형식으로 권한을 추가할 수 있습니다.
    "permissions": [
      "history"
    ]
    
  2. Chrome API를 호출하기 위한 JavaScript 코드 작성
    • Chrome API를 호출하기 위해서는 JavaScript 코드를 작성해야 합니다.
    • 예를 들어, 브라우징 기록을 읽기 위해서는 chrome.history API를 호출해야 합니다.
    • 다음은 chrome.history API를 사용하여 7일 이내에 방문한 모든 URL을 가져오는 코드 예시입니다.
    chrome.history.search({text: '', startTime: Date.now() - 7 * 24 * 60 * 60 * 1000}, function(results) {
      results.forEach(function(result) {
        console.log(result.url);
      });
    });
    
    • 위 코드에서는 chrome.history.search() 함수를 호출하여 URL을 검색하고, 결과를 처리하기 위해 콜백 함수를 등록합니다.
  3. 익스텐션에서 Chrome API 사용하기
    • Chrome API를 사용하는 JavaScript 코드를 익스텐션의 background 스크립트나 content 스크립트 등에서 호출할 수 있습니다.
    • background 스크립트는 익스텐션이 실행될 때 자동으로 로드되는 스크립트로, 익스텐션의 전반적인 동작을 제어합니다.
    • content 스크립트는 브라우저의 웹 페이지에서 실행되는 스크립트로, 웹 페이지의 DOM 요소를 조작하거나 이벤트를 처리하는 등의 작업을 수행합니다.

 

 

 

 

728x90
728x90

도메인 구매는 어디에서 해야하나요?

티스토리에서 공식적으로 언급한 사이트는 가비아, 후이즈입니다. 

외에 다른 사이트에서 구매한 도메인도 쓸 수 있지만 DNS 레코드를 등록해야하기 때문에

DNS 연결 기능을 제공하는 사이트에서 구매하세요. 

 

참고할 사이트:

https://customer.gabia.com/manual/domain/273/6653

 

가비아: 국내 1위

 

customer.gabia.com

 

티스토리에 도메인을 어떻게 연결하나요?

참고할 사이트:

https://ukiyoudai.com/entry/%ED%8B%B0%EC%8A%A4%ED%86%A0%EB%A6%AC-%EB%B8%94%EB%A1%9C%EA%B7%B8-%EC%8B%9C%EC%9E%91-%EA%B0%80%EB%B9%84%EC%95%84-2%EC%B0%A8%EB%8F%84%EB%A9%94%EC%9D%B8-%EC%97%B0%EA%B2%B0-%EB%B0%8F-%EA%B5%AC%EA%B8%80-%EC%84%9C%EC%B9%98%EC%BD%98%EC%86%94%EC%97%90-%EB%85%B8%EC%B6%9C%EC%8B%9C%ED%82%A4%EA%B8%B0SEO

 

티스토리 블로그 시작! - 가비아 2차도메인 연결

1. 블로그 시작 이유 & 복잡한티스토리 따분한 직장생활중에 조그마한 부수입을 원해서 시작한 이유도 있고, 워낙 놀러다니고 아이들과 노는 것을 좋아하는터라 돌아다니며 얻은 정보를 공유하

ukiyoudai.com

 

애드센스 신청은 어떻게 하나요?

참고 사이트:

https://support.google.com/adsense/answer/7402253?hl=ko 

 

애드센스 계정 만들기 - Google 애드센스 고객센터

도움이 되었나요? 어떻게 하면 개선할 수 있을까요? 예아니요

support.google.com

 

 

728x90
728x90

새로운 급발진 프로젝트가 생각나서 이번주 안에 완성하려고 급하게 시작한다.

chat gpt api 를 활용해서 크롬 익스텐션을 만들 예정이다. 

크롬 익스텐션을 만드는 순서와 방법에 대해 설명해보도록 하겠다. 

 

크롬 익스텐션 만드는 순서

1. ChatGPT API 계정을 만들고 API key를 발급받기

  • ChatGPT API 웹사이트에서 계정을 등록하고 인증 과정을 거쳐야 함

2. 크롬 익스텐션 개발 도구 설치

  • 크롬 웹스토어에서 "Chrome Extension Builder"나 "Chrome Extension Developer"와 같은 개발 도구를 설치하기

3. 익스텐션 manifest 파일 생성

  • 익스텐션의 구성 정보를 담고 있는 manifest 파일을 생성하기
  • 익스텐션의 이름, 버전, 아이콘 등의 정보와 ChatGPT API key 등이 포함됨

4. 익스텐션 구현

  • ChatGPT API를 사용하여 익스텐션을 구현
  • JavaScript를 사용하여 API 요청을 보내고 결과를 처리하는 함수를 작성해야 함

5. 익스텐션 패키징

  • 익스텐션을 패키징하여 크롬 웹스토어에 업로드할 수 있도록 함
  • 익스텐션 파일을 압축하여 .crx 파일로 만들어야 함 (manifest 파일과 코드 파일 등)

6. 크롬 웹스토어에 익스텐션 등록

  • 크롬 웹스토어의 개발자 센터에 로그인하여 익스텐션을 등록하고 업로드
  • 등록 후에는 크롬 웹스토어에서 익스텐션을 검토하고 승인하면 크롬 사용자들이 설치하고 사용할 수 있음

 

API 키 발급받는 방법

https://platform.openai.com/account/api-keys

 

OpenAI API

An API for accessing new AI models developed by OpenAI

platform.openai.com

 

 

사이트에 들어가면 이렇게 새로운 API key 를 만들 수 있는 창이 뜬다.

버튼을 누르고 API key 발급 후 복사하면 된다. 

 

구글 익스텐션 개발 도구 설치

https://developer.chrome.com/docs/extensions/

 

Extensions - Chrome Developers

Extensions are software programs built on web technologies (such as HTML, CSS, and JavaScript) that enable users to customize the Chrome browsing experience.

developer.chrome.com

공식 문서다. 

공식 문서를 읽어보자.

파이썬을 쓰려고 했지만 html css js 로 개발이 가능하다. 

 

엄청 자세하게 쉽게 나와았으니까 천천히 읽으면서 따라하면 되겠다. 

 

구글 익스텐션 만드는 방법

1. 개발 환경 설정

구글 익스텐션을 개발하기 위해서는 구글 크롬 브라우저와 텍스트 에디터가 필요하다.

구글 크롬 브라우저는 이미 설치되어 있어야 하며, 텍스트 에디터는 Visual Studio Code, Sublime Text 등을 사용할 수 있다.

2. 익스텐션 기본 구조 생성

구글 익스텐션을 만들기 위해 먼저 익스텐션의 기본 구조를 생성해야 한다.

구글 익스텐션은 manifest.json 파일을 포함한 폴더 구조로 이루어져 있다.

manifest.json 파일은 익스텐션에 대한 정보와 설정을 담고 있다.

3. manifest.json 파일 작성

manifest.json 파일은 익스텐션의 이름, 버전, 아이콘, 권한 등의 정보를 포함한다.

또한 익스텐션에서 사용하는 자바스크립트, HTML 및 CSS 파일들을 지정할 수도 있다.

4. 익스텐션 코드 작성

구글 익스텐션에서 동작하는 코드는 자바스크립트로 작성된다.

익스텐션에서 사용되는 자바스크립트 파일은 manifest.json 파일에서 지정한 파일들을 포함하여 작성된다.

익스텐션에서는 DOM 조작, 이벤트 처리, HTTP 요청 등의 작업을 수행할 수 있다.

5. 익스텐션 테스트 및 배포

익스텐션을 완성하면, 크롬 웹 스토어에 등록하여 배포할 수 있다.

익스텐션을 배포하기 전에 반드시 테스트를 수행하여 오류를 검출하고 수정해야 한다.

 

 

시작 코드

이 코드를 manifest.json 파일에 넣어주면 Hello world 가 출력된다.

{
  "manifest_version": 3,
  "name": "Hello Extensions",
  "description": "Base Level Extension",
  "version": "1.0",
  "action": {
    "default_popup": "hello.html",
    "default_icon": "hello_extensions.png"
  }
}
728x90
728x90

필요한 자료/사이트:

 

온라인 개발환경 (+컴파일러)

https://replit.com/

 

Log In

Run code live in your browser. Write and run code in 50+ languages online with Replit, a powerful IDE, compiler, & interpreter.

replit.com

또는

 

Visual studio code (통합개발환경 IDE) 다운로드

https://code.visualstudio.com/download

 

Download Visual Studio Code - Mac, Linux, Windows

Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows. Download Visual Studio Code to experience a redefined code editor, optimized for building and debugging modern web and cloud applications.

code.visualstudio.com

 

728x90
728x90

첫 에러에 부딪혔다. 

 

앱을 켰을때 맵에 좌표가 찍히면서 맵이 보여야 하는데 빈 화면으로 보인다. 

 

https://stackoverflow.com/questions/44365369/google-map-not-showing-in-android-activity 

 

Google map not showing in android activity?

In my android app I want to have a MainActivity with a google map occupying the entire screen. My problem is that the google map does not display a map, only the google logo in the bottom left co...

stackoverflow.com

 

정말 개발하면서 느는 건 구글링밖에 없는 거 같다. 

 

처음엔 firebase 연결을 안해서 그런가? 하고 봤는데 그거도 아니었다. 

api key 를 잘못 넣었나 싶어 다시 넣어도 똑같은 에러가 떴는데, 에러 메시지를 보니까 앱을 다시 설치하라더라

 

응...?

 

그래서 그거 클릭했는데 갑자기 됐다. 

아무것도 안바꿨는데...?

 

억울하다. 

728x90

+ Recent posts