반응형

 

 

간혹 우리는 DB를 작성하고 DB에서 전체 검색을 하고 하고 싶을 때가 있습니다.

그런데 column들이 나눠져 있다보니 이를 합쳐서 검색하기도 쉽지 않고, 또 연관관계까지 고려해서 작성하기도 쉽지 않습니다.

Postgres 에서는 ts_vector로 데이터를 vector로 합치고 검색하기 쉽게 되어있습니다.

 

supabase에서도 이를 이용해서 검색을 용이하게 하기 위한 인터페이스를 제공  하고 있죠.

 

 

https://supabase.com/docs/guides/database/full-text-search?queryGroups=language&language=js#search-multiple-columns

 

(supabse 의 textSearch는 postgres의 ts_query 를 기반으로 만들어져 있다.)

 

 

그러나 문제는 client api로 단어 검색을 하려다 보면, 완성된 단어는 잘 검색이 되는데, 중간 단어는 검색이 잘 안됩니다.

 

완성되지 않은 단어의 경우에는 (Partial search 참조) 따로 RPC 함수를 만들어 사용하라고 가이드 되어있습니다.

Partial search#
Partial search is particularly useful when you want to find matches on substrings within your data.
Implementing partial search#
You can use the :* syntax with to_tsquery(). Here's an example that searches for any book titles beginning with "Lit":

 

DB함수를 만들고 RPC로 호출 하는 것도 나쁘진 않습니다.

 

db 함수를 만들고.

select title from books where to_tsvector(title) @@ to_tsquery('Lit:*');

 

client에서 아래와 같이 사용한다.

const { data, error } = await supabase.rpc('search_books_by_title_prefix', { prefix: 'Lit' })

 

 

그러나 불편한 점도 있고,

아래 처럼 하나의 함수에서 다양한 쿼리 옵션들과 합쳐서 사용하기 힘들죠.

 

 async getPaginatedOpt({columns, keyword, offset, range=10, landscapeOnly, orderBy, orderByDesc}:{columns?: string, keyword?: string, offset?: number, range?: number, landscapeOnly?: boolean, orderBy?: string, orderByDesc?: boolean}): Promise<{ v: Partial<MyItem>[], total: number }> {

    let query = supabase.from("myitems_table").select(columns||'*', { count: 'exact' });

    if(landscapeOnly){
      query = query.eq('landscaping', landscapeOnly);
    }

    if(keyword){
      // query = query.or(`s_name.ilike.%${keyword}%,kr_name.ilike.%${keyword}%,jp_name.ilike.%${keyword}%,eng_name.ilike.%${keyword}%,nk_name.ilike.%${keyword}%`);
      query = query.textSearch('text_search',`${keyword}`,{type:'plain', config:'simple',});
    }

    if(offset!==undefined && range!==undefined){
      query = query.range(offset, offset + (range<1?1:range) - 1);
    }

    if(orderBy){
      query = query.order(orderBy, { ascending: orderByDesc||false });
    }

    const { data, count, error } = await query;
    
    if (error) {
      console.error('getPaginated error:', error);
      return { v: [], total: 0 };
    }

    return { v: data as Partial<MyItem>[] ?? [], total: count ?? 0 };
  },

 

 

우연찮게 textSearch 옵션에 'raw' 를 찾았습니다.

공식적으로는 plain, phrase, websearch만 명시되어있습니다만, "PostgREST의 FTS 연산자와 동일하게 작동" 한다고 되어있습니다.

FTS에는 raw라는 query가 있고, 이를 활용하면 접두사를 사용할 수 있습니다. " 오징:*" 와 같이 prefix 형태를 사용할 수 있죠.

 

// @ts-expect-error
query = query.textSearch('text_search',`${keyword}:*`,{type:'raw', config:'simple',});

 

물론 공식 API에는 제공되는것이 아니라서 typscript lint에서는 에러로 보입니다. ㅠ_ㅠ

 

공식 문서에서는 plain, phrase, websearch 3가지만 제공 됩니다. 그리고 이것은 완성된 단어들의 조합만 검색 가능합니다.

 

때로는 위와 같이 완성되지 않은 단어 검색도 필요하게 됩니다.

 

이때는 위와 같이 raw + keyword:* 가 되도록 해서 사용해보는 것도 좋을것 같네요.

 

#해피 코딩

 

 

 

 

반응형

 
 

AI 홈페이지 제작 도구 총정리

 

1. 전체 자동 제작형 (AI가 거의 다 만들어줌)

 
 

Durable

 

  • URL: https://durable.co
  • 특징: 30초 안에 AI가 전체 웹사이트 생성
  • 설명: 업종만 입력하면 텍스트, 이미지, 레이아웃 포함된 홈페이지 자동 생성
  • 추천 대상: 빠르게 간단한 비즈니스용 홈페이지 만들고 싶은 사람

 


 

10Web

 

  • URL: https://10web.io
  • 특징: WordPress 기반 AI 웹사이트 빌더
  • 설명: 챗봇 스타일로 대화하면 AI가 콘텐츠 구성 + 디자인 자동 생성
  • 추천 대상: 워드프레스를 기반으로 AI 기능을 활용하고 싶은 사용자

 


 

Bookmark (with AIDA)

 

  • URL: https://www.bookmark.com
  • 특징: AI 디자인 어시스턴트 ‘AIDA’
  • 설명: 사용자의 입력에 따라 자동으로 섹션 구성과 디자인 선택
  • 추천 대상: 웹 디자인 지식 없이 깔끔한 사이트 만들고 싶은 사람

 


 

2. 반자동 제작형 (템플릿 + AI 보조)

 

Wix with Wix ADI

 

  • URL: https://www.wix.com
  • 특징: Wix ADI가 자동 제작 / 세부 디자인은 수동 조정 가능
  • 설명: 업종, 목적, 색상 등을 입력하면 초기 레이아웃 생성 → 이후 세부 조정
  • 추천 대상: 디테일 커스터마이징도 하면서 빠르게 시작하고 싶은 사람

 


 

Zyro (by Hostinger)

 

  • URL: https://zyro.com
  • 특징: AI 텍스트 생성기 + AI 이미지 도구 내장
  • 설명: 템플릿 기반으로 시작하고, 내부 콘텐츠는 AI가 제안
  • 추천 대상: 브랜드 소개용 홈페이지, 랜딩 페이지 제작

 


 

Framer AI

 

  • URL: https://www.framer.com
  • 특징: 텍스트로 명령하면 UI 전체 구성
  • 설명: GPT 기반 텍스트 명령 → 실시간 웹사이트 디자인 생성 + 배포까지
  • 추천 대상: 디자이너, 프로토타이핑, 포트폴리오 제작

 


 

3. 마케팅 & 랜딩 페이지 특화

 
 

Unbounce Smart Builder

 

  • URL: https://unbounce.com
  • 특징: AI로 랜딩 페이지 생성 + A/B 테스트
  • 설명: 마케팅용 랜딩 페이지 자동 생성, 고객 유입 최적화에 특화
  • 추천 대상: 스타트업, 광고 마케터, 퍼포먼스 마케팅 팀

 


 

Copy.ai – Website Generator

 

  • URL: https://www.copy.ai/tools/website-copy-generator
  • 특징: 웹사이트 카피라이팅에 특화된 AI
  • 설명: 회사 소개, 제품 설명 등 홈페이지용 문구 자동 작성
  • 추천 대상: 콘텐츠 텍스트가 고민인 마케터, 창업가

 
 

v0.dev (by Vercel)

 

  • URL: https://v0.dev
  • 특징 / 목적: AI 기반 프론트엔드 UI 코드 생성기
  • 설명:사용자는 “블로그용 카드형 UI”, “로그인 화면”, “상품 목록 그리드 UI”와 같은 자연어를 입력하면,Vercel과 연동되어 있어, 작성한 UI를 실제 프로젝트에 빠르게 적용할 수 있으며,
  • 개발자에게는 디자인 시스템과 코딩 사이의 간극을 줄여주는 매우 강력한 도구입니다.
  • 그에 맞는 실제 코드 형태의 React 컴포넌트가 생성되며, 바로 수정하거나 복사하여 사용 가능합니다.
  • v0는 OpenAI의 GPT 모델을 활용해 텍스트로 React + Tailwind 기반 UI 컴포넌트를 자동 생성하는 도구입니다.
  • 추천 대상:
    • 디자이너 → 코드 없이 UI 설계 결과 확인
    • 프론트엔드 개발자 → 반복적인 UI 코드 작성 시간 단축
    • 스타트업 → MVP/랜딩페이지 빠르게 구성
    • 기획자 → 시각적 프로토타입 생성

 
 

비교 항목v0.devDurable / Wix / Framer 등
생성물 형태코드 (React + Tailwind)시각적 웹사이트
사용 방식프롬프트 → 코드 자동 생성프롬프트 → 레이아웃/디자인 생성
개발자 친화도매우 높음일반 사용자 중심
결과물 활용직접 개발 환경에 통합호스팅 또는 템플릿 기반 배포

 

반응형

 

기계는 생각할 수 있을까?

 
 
 
지금 우리가 너무나 익숙하게 사용하는 인공지능.
하지만 그 시작은 아주 단순한 질문에서 출발했습니다.
“기계도 인간처럼 생각할 수 있을까?”
 
이 물음에 답하기 위해 수많은 천재들이 바통을 이어달렸습니다.
그 긴 여정을 함께 따라가 보겠습니다.
 


 

제1주자: 앨런 튜링 — 질문으로 시작된 혁명

 
1950년, 영국의 수학자 **앨런 튜링(Alan Turing)**은 이런 질문을 던졌습니다.
“기계가 생각할 수 있을까?”
 
튜링은 2차 세계대전 당시 독일군의 암호 시스템 **에니그마(Enigma)**를 해독한 인물로,
현대 컴퓨터 과학의 아버지로도 불립니다.
 
 

튜링의 주요 업적

 

  • 1936년: 튜링 머신 개념을 발표하며 컴퓨터 이론의 토대를 마련
  • 1940년대: 에니그마 해독 성공으로 전쟁 종식에 기여
  • 1950년: AI 철학을 담은 논문 「Computing Machinery and Intelligence」 발표

 
그는 여기서 **‘튜링 테스트’**라는 개념을 제안합니다.
 

“기계가 인간처럼 대화해 판별자가 그것을 사람으로 착각한다면, 그 기계는 지능이 있다고 간주하자.”

 


 

제2주자: 존 매카시 — AI라는 이름을 붙이다

 
1956년, 다트머스 회의에서 미국의 수학자 **존 매카시(John McCarthy)**는
Artificial Intelligence(인공지능)’라는 이름을 처음으로 사용합니다.
 
그는 AI의 초기 방향을 설정하고, 이를 프로그래밍할 수 있는 언어 LISP도 개발합니다.
이 언어는 이후 수십 년간 AI 연구의 표준 언어로 사용됩니다.
 


 

제3주자: AI의 첫 번째 겨울 (1974–1980)

 
초기 챗봇 ELIZA의 등장은 잠깐의 기대를 안겨주었지만,
실제 수준은 매우 단순했습니다.
“정말로 기계가 이해하고 대화하는 걸까?”라는 의심이 퍼지면서
연구 자금이 끊기고 정부 지원도 줄어듭니다.
 
 

AI의 겨울이란?
기술의 발전 속도가 기대에 못 미치며,
연구와 투자가 대폭 줄어든 시기를 ‘AI의 겨울’이라고 부릅니다.

 


 

제4주자: 전문가 시스템의 시대 (1980–1987)

 
AI는 새로운 방식으로 다시 주목받기 시작합니다.
전문가 시스템이 그 중심에 있었죠.
 
전문가 시스템은 사람의 지식을 ‘규칙’으로 입력하여
기계가 특정 분야의 문제를 해결하게 하는 방식입니다.
대표 사례로는 의학 진단 시스템 MYCIN이 있습니다.
 
하지만 규칙이 많아질수록 오류가 늘고,
기계는 여전히 스스로 배울 수 없다는 한계가 존재했습니다.
 


 

제5주자: 두 번째 겨울 (1987–1993)

 
기술적 한계로 인해 또다시 AI에 대한 회의가 퍼졌고,
두 번째 겨울이 찾아옵니다.
 
 

이유는 다음과 같았습니다:

 

  • 전문가 시스템의 확장 한계
  • 규칙 기반 시스템의 오류율 증가
  • 자동 학습 기능 부재
  • 현실 적용 실패

 


 

제6주자: 딥블루 vs 인간 (1997)

 
AI는 또 다른 방식으로 모습을 드러냅니다.
**IBM의 딥블루(Deep Blue)**는 1997년,
체스 세계 챔피언 가리 카스파로프를 꺾습니다.
 
기계가 계산 능력만큼은 인간을 앞지를 수 있다는 사실을
전 세계에 각인시킨 사건이었습니다.
 


 

제7주자: 딥러닝의 부활 (2012)

 
2012년, 캐나다 토론토 대학의 교수 **제프리 힌튼(Geoffrey Hinton)**이
딥러닝 기반 이미지 분류 모델 AlexNet으로
세계 이미지 인식 대회에서 압도적인 성과를 내며 주목받습니다.
 
 

딥러닝이란?

 

인간 뇌의 신경망 구조를 본떠 만든 인공 신경망을 통해
데이터에서 직접 특징을 학습하는 기술입니다.

 
이제 AI는 사람이 모든 규칙을 알려주지 않아도
스스로 배울 수 있게 됩니다.
 


 

제8주자: 알파고 — 인간 직관의 무너짐 (2016)

 
2016년, 구글 딥마인드의 **알파고(AlphaGo)**는
바둑 세계 랭킹 1위였던 이세돌 9단에게 4:1로 승리합니다.
 
딥러닝과 강화학습을 통해
AI는 인간조차 두지 않는 수를 두며,
‘창의적’이라는 평가를 받습니다.
 


 

제9주자: ChatGPT의 등장 (2022)

 
2022년 말, OpenAI는 ChatGPT를 공개합니다.
이제 AI는 누구나 사용할 수 있는 도구가 되었고,
단순한 대화는 물론, 문서 작성, 코드 생성, 이미지 설명까지 가능해졌습니다.
 
GPT-4, GPT-4o에서는 멀티모달 AI로 발전하며
텍스트, 이미지, 음성, 영상까지 처리할 수 있는 AI 파트너 시대를 열었습니다.
 
 
 
 
 
 

시기주요 인물/기술핵심사건의미
1950s앨런 튜링튜링 테스트 제안AI의 철학적 출발점
1956존 매카시‘Artificial Intelligence’ 명명AI 학문의 공식 출발
1960s–70sELIZA챗봇 등장 → 기대감 상승기술적 한계 노출 → 첫 번째 겨울
1980s전문가 시스템MYCIN 등 등장규칙 기반 문제 해결 시스템
1987–1993기술 한계 → 두 번째 겨울데이터 부족과 유지보수 실패
1997딥블루체스 챔피언 꺾음계산 능력에서 인간을 뛰어넘음
2012제프리 힌튼, AlexNet딥러닝 모델 부상기계 학습의 본격 시작
2016알파고바둑에서 인간 승리직관 영역에서도 AI 가능성 입증
2022~ChatGPT범용 AI로 진입일상 속 AI, 누구나 활용 가능한 시대

 
 

마치며

 
튜링이 던진 질문 하나가
오늘날의 ChatGPT까지 이어졌습니다.
그리고 그 여정은 여전히 현재진행형입니다.
 
컴퓨터시대가 그랬듯이,
이제 다음 주자는 AI를 만들고 주도하는 기업이나 단체가 뿐만아니라 AI를 활용하고 생활화 하는 모든 사회 구성원들이 될것입니다.
 
#해피 코딩!!

반응형

여러분 AI시대에는 무엇을 해야 할까요?

 

직업으로 보자면, AI 전문가가 되어야하나?, 코딩을 배워야 하나?, 내 직업이 조만간 없어질수 도 있다는데? 무엇을 해야 하지?

아마 이런 고민들을 하고 계시는 분들은 AI시대를 피부로 느끼시는 분들일 것이라 생각됩니다.

 

저도 항상 이런 고민들을 하고 있는 AI와 옆에서 경쟁을 하고 있는 개발자다 보니 더더욱 고민이 되는 부분입니다. 

지금까지는 AI를 도구처럼 사용하고 있지만, 점차 도구로 사용되던 AI 보다는 에이전트( 옆에서 도와주는 도우미?, 어시스턴트?, 집사?) 이런 개념이 될것입니다.

 

로봇은 제외 하더라도 우리가 쓰는 모든 기기에 AI가 들어가거나 AI를 이용해서 제어하는 시스템이 될거에요.

차, 도어락, 집안 조명, 티브이, 냉장고, 세탁기, 에이컨, 보일러 ... 등등 수많은 것들에 들어가겠죠.

 

아 .. 이런 이야기를 하려던건 아니었는데 주제가 잠시 비켜갔네요. (하지만 연결되어있어요)

 

소비라는 관점에서 살펴봅시다.

소비의 주체는 사람이죠(기업간의 거래 환경유지, 세금 뭐 이런걸 다 한다 하더라도 가장 밑바닥은 사람이라고 생각하는게 합리적입니다.)  생산의 주체는 기업입니다.

기업은 이익을 위해서 AI를 사용해서 보다 좋은 서비스를 소비자에게 제공해야 합니다. 그래야 이익을 남기고 더 좋은 AI를 개발하겠죠.

인간이 끼어들 틈은 어디일까요?

 

 

우리는 소비라는 부분에 집중해서 생각해볼 필요가 있어요.

인간이 하는 소비는 크게 2가지로 나눠 볼수 있어요. 

필수품에 대한 소비, 기호에 의한 소비 이죠.

 

하지만 현대 시대에 문명, 문화를 누릴수 있는 곳에서 살고 있는 사람이라면, 필수품과 기호품에 대한 구분이 모호해 집니다.

밥은 분명 섭취해야 하는 필수 품이지만, 밥을 만드는 쌀은 종류가 너무나 많죠? 또 밥을 제공해주는 식당들도 너무 다양합니다.

결국 사람의 기호에 의해서, 그날의 기분에의해서 밥의 종류도 달라집니다.

 

즉, 소비라는 측면은 곧 인간의 욕구, 개인의 욕구에 해당하는 부분이 될 수 도 있다는 것이죠.

그러나 개인의 욕구는 너무나도 다양합니다. 또 너무나도 변화 무쌍합니다.

 

"오늘 정말 맛있는 빵을 파는 빵집을 발견했어요."

하지만 1주일 이상 그 빵만 먹으면 더이상 그 빵은 맛있는 빵이 아니게 됩니다.

다른 빵을 파는 빵집을 찾겠죠. 또 그 빵집이 최애 빵집이 됩니다. 그 빵집도 1주일을 못갈거에요.

 

기업들은 다른 기업과의 경쟁에서 우위를 갖기 위해서 이런 데이터가 정말 필요할것 같지 않나요?

생각해보면, 내가 원하는것을 바로 찾아주고 , 바로 반영해주는  AI와 내가 원하는 것을 일일이 말해주고 설정해주고 결과를 가져와서 적용해야 하는 AI 두가지가 있다고 한다면, 소비자는 전자를 원하겠죠.

그렇게 되기 위해서는 기업은 사람을 이해해야 합니다.

 

 

자! 그럼 AI시대에 무엇을 해야 하는가?

1. 사람들의 취향을 모으는 데이터를 만들어 가는 것도 좋은 비지니스가 될수 있을 것 같네요.

2. 나의 취향을 제공하는 것도 비지니스가 되지 않을까요?

3. 항상 변화하는 나의 갈대같은 마음도 데이터가 되고 분석이 될수 있지 않을까요?

 

AI에게 학습할 수 있는 꺼리들을 만들어 주는 것 자체가 하나의 비지니스가 될 수 있습니다.

AI시대는 학습 모델을 만드는 것도 매우중요한 일이지만,

나만의 데이터를 모으는 것이 정말 중요해지는 시대일것 같습니다.

 

만약 내가 내 생활 패턴을 1년동안 기록했다. 10년 동안 기록했다. 그렇다면, 이 데이터를 판매 할수 있지 않을까요?

나만의 데이터를 그동안 활용을 못했었지만, 앞으로는 얼마든지 활용할 수 있는 도구들이 만들어질거에요. 또 쉽게 만들 수도 있어요.

 

#해피 코딩  ㅠ_ㅠ

 

 

반응형

 

 

 

/np_lora/lora.py

import time
import logging

class LoraSetting:
    gateway = ["Gateway1","Gateway2", "Gateway3" ]

    def __init__(self):
        logging.basicConfig(level=logging.INFO)
        self.logger = logging.getLogger("gateway")

    def main(self):
        i = 0
        while True:
            self.logger.info(self.gateway[i % len(self.gateway)])
            i += 1
            time.sleep(1)

lora = LoraSetting()
lora.main()

 

 

np_lora.service

[Unit]
Description=Lora Setting
After=multi-user.target

[Service]
Type=forking
ExecStart=/usr/bin/python /usr/np_lora/lora.py
Restart=always
WorkingDirectory=/usr/np_lora/
ExecStop=/bin/kill $MAINPID

[Install]
WantedBy=multi-user.target

 

 

ubuntu 에 service daemon을 등록 및 실행하는 과정입니다.

lora 라는 서비스를 만들어 등록하려고 한다고 합시다.


/etc/systemd/system/np_lora.service    <- 이 위치에 서비스 파일을 만듭니다.

systemctl daemon-reload    <- daemon관리자를 reload해서 새로 만든 서비스 파일을 인식할 수 있도록 합니다.

# systemctl 이라는 명령을 이용하여 서비스를 enable / start/ stop 등의 상태 조절이 가능합니다.

systemctl enable np_lora  <- 서비스를 enable 합니다.
systemctl start np_lora  <- 서비스 스타트
systemctl stop np_lora <- 서비스 종료

'개발 Note > Codes' 카테고리의 다른 글

[Andriod] Timer and TimerTask  (0) 2020.10.22
Singleton class 설계  (0) 2020.10.07
sorting algorithms  (0) 2014.02.26
UML2 Sementics  (0) 2012.01.11
반응형

 

AI는 더 이상 전문가들만의 기술이 아닙니다.

학생은 과제를 도와주고, 직장인은 보고서를 대신 써주고, 일반인은 콘텐츠를 만들 수 있죠.

 

오늘은 여러분이 쉽게 활용할 수 있는 AI 서비스들을 목적별로 정리해봤습니다.

서비스명 / URL / 특징 / 설명 / 추천 대상까지 한눈에 보세요!

 


 

 1. 텍스트 기반 AI

 

 

ChatGPT

 

  • URL: https://chat.openai.com
  • 특징: 전방위 AI 비서, 질문 응답, 글쓰기, 요약
  • 설명: 일상 대화부터 코드 작성까지, 가장 범용적인 AI 챗봇
  • 추천 대상: 전 연령 (일반인, 직장인, 학생)

 


 

Perplexity AI

 

  • URL: https://www.perplexity.ai
  • 특징: 최신 정보 검색 + 출처 명시
  • 설명: ChatGPT처럼 질문에 답하지만, 웹에서 실시간으로 정보를 가져와 신뢰도가 높음
  • 추천 대상: 리서치가 많은 직장인, 대학생

 


 

Claude (by Anthropic)

 

  • URL: https://claude.ai
  • 특징: 긴 문서 요약, 인간처럼 부드러운 대화
  • 설명: 입력 가능한 텍스트 양이 많아 문서 기반 작업에 유용
  • 추천 대상: 문서 작성자, 대학생 이상, 직장인

 


 

📝 2. 문서 작성 & 번역 도구

 

 

Notion AI

 

  • URL: https://www.notion.so/product/ai
  • 특징: 회의록, 보고서 자동 작성
  • 설명: Notion 문서 안에서 AI가 초안을 만들고 요약도 가능
  • 추천 대상: 기획자, PM, 보고서 업무 많은 직장인

 


 

Grammarly

 

  • URL: https://www.grammarly.com
  • 특징: 영어 문법 및 스타일 교정
  • 설명: 이메일, 과제, 이력서 등 영어 문장을 더 자연스럽게 만들어줌
  • 추천 대상: 영어 글쓰기가 필요한 직장인, 학생

 


 

DeepL Translator

 

  • URL: https://www.deepl.com/translator
  • 특징: 고품질 자연스러운 번역
  • 설명: 기존 번역기보다 문맥에 강해 자연스러운 결과를 제공
  • 추천 대상: 해외 문서 해석이 필요한 누구나

 


 

3. 학습 & 튜터 AI

 

 

Socratic (by Google)

 

  • URL: https://socratic.org
  • 특징: 문제 사진 찍으면 해설 제공
  • 설명: 수학, 과학, 역사 등 주요 과목에 대한 개념 설명 제공
  • 추천 대상: 초·중·고등학생, 학부모

 


 

Khanmigo (Khan Academy AI)

 

  • URL: https://www.khanacademy.org/khan-labs
  • 특징: AI 개인 튜터
  • 설명: Khan Academy 기반으로 학습 진단, 과외형 설명 제공
  • 추천 대상: 초·중·고·대학생, 자녀 학습 지원하는 부모

 


 

4. 이미지 & 디자인 생성 AI

 

 

Canva Magic Studio

 

  • URL: https://www.canva.com/magic-studio/
  • 특징: 디자인 자동화, 콘텐츠 생성
  • 설명: 카드뉴스, SNS 포스트, 프레젠테이션 등을 쉽고 예쁘게 제작
  • 추천 대상: 마케터, 프리랜서, 디자이너, 콘텐츠 제작자

 


 

DALL·E (by OpenAI)

 

  • URL: https://openai.com/dall-e
  • 특징: 텍스트 → 이미지 생성
  • 설명: 원하는 문장을 입력하면 해당 이미지를 생성
  • 추천 대상: 블로거, 디자이너, 창작자

 


 

5. 영상 & 오디오 AI

 

 

Runway ML

 

  • URL: https://runwayml.com
  • 특징: 영상 생성, 편집 자동화
  • 설명: 텍스트에서 영상 생성, 배경 제거, 음성 대체 등 고급 기능 제공
  • 추천 대상: 유튜버, 영상 크리에이터

 


 

Suno AI

 

  • URL: https://suno.com
  • 특징: AI 작곡, 자동 노래 제작
  • 설명: 가사 입력하면 곡 + 보컬까지 자동 생성
  • 추천 대상: 뮤직 크리에이터, 유튜버, 일반인

 


 

ElevenLabs

 

  • URL: https://www.elevenlabs.io
  • 특징: 고품질 TTS(음성합성)
  • 설명: 자연스러운 목소리로 음성 콘텐츠 제작
  • 추천 대상: 영상 제작자, 오디오북 제작자

 


 

6. 업무 자동화 & 회의 AI

 

 

Fireflies.ai

 

  • URL: https://fireflies.ai
  • 특징: 회의 녹음 및 요약
  • 설명: Zoom, Google Meet에 자동 참여 후 회의 내용 텍스트화
  • 추천 대상: 팀 리더, 기획자, 미팅 잦은 직장인

 


 

Microsoft Copilot

 

 


 

Google Duet AI

 

  • URL: https://workspace.google.com/duet-ai/
  • 특징: Gmail, Docs, Sheets 자동화
  • 설명: 구글 기반 앱에서 초안 작성, 회신 추천, 데이터 분석 지원
  • 추천 대상: Google Workspace 사용자

 


 

7. 감정 케어 & 대화형 AI

 

 

Replika

 

  • URL: https://replika.com
  • 특징: 감정 챗봇, AI 친구
  • 설명: 인간처럼 대화하며 정서적 위로를 제공
  • 추천 대상: 감정 공유가 필요한 일반인, 외로움 해소

 


 

Wysa

 

  • URL: https://www.wysa.io
  • 특징: 정신 건강 AI 챗봇
  • 설명: 인지행동치료(CBT) 기반의 마음챙김 서비스
  • 추천 대상: 불안, 스트레스 관리가 필요한 사용자

 


 

마무리: 나에게 맞는 AI는?

 

  • ✏️ 글쓰기/보고서가 많다면 → ChatGPT, Notion AI
  • 🎓 공부와 학습 → Socratic, Khanmigo
  • 🧑‍💼 업무와 회의 → Fireflies, Microsoft Copilot
  • 🎨 디자인과 콘텐츠 → Canva, DALL·E, Suno
  • 💬 감정 케어 → Replika, Wysa

 


👉 AI는 잘 쓰면 시간을 벌어주고, 창의력을 키워주는 도구입니다.

당신에게 딱 맞는 AI 서비스, 오늘 하나 골라 써보세요!

반응형

 

미래의 나에게 작성했던것 같은 글이 보여서 정리해서 올려봅니다.

지금 나의 상황이 그때와는 달라서 그런지, 지금의 제 생각과 다른 점들도 보이네요. ^^ 

기록이란 이런점이 재미있는것 같습니다.

 

 

아래 내용은 2000년부터 2012년 즈음까지 Windows 기반의 개발환경에서 개발하던 시절의 이야기입니다.

당시 저는 스마트폰이 아닌 Feature Phone 에서 RTOS를 base로 Middleware 에 해당하는 UI Framework 과 Application Framework을 개발했었습니다.

우리 팀은 새로운 피쳐를 개발하고 상품화하고, 어플리케이션 개발팀을 지원하고,  다시 신규 기능을 추가하고, 상품화하고 개선하고를 반복했었습니다.

그러다 Smart Phone 개발로 넘어가서 자체 OS 기반으로 UI Framework을 개발을 하던 시점입니다.

이 글을 써놓은 시점정확히 언제인지는 기억나지 않네요 ^^; 다만 마지막 수정 시점이 2012년 이었습니다.

당시 팀의 구성은 OS 개발팀과 Application 개발팀이 회사 내에 존재하며 모든 S/W를 팀내에서 소화해 내던 시절이었습니다.

스마트폰 개발로 넘어가면서 부터는 외부 개발자들도 늘어나긴 했지만, 소수일 뿐이고 모든 소프트웨어 개발은 내부에서 이뤄진다 보면 되는 상황이었죠.

 

 

2012년 어느날.

프로젝트의 성격과 팀의 규모에 따른 개발 전략...

 

Visual Studio .Net, Boland Java, JDK , National Rose , OOP , Design patten,

Direct X ,OpenGL? ,Oracle , My SQL, Clear case ...

위의 단어들은 프로그래머라면 상당히 많이 자주 들어본 단어일것이다. 

현재 수많은 개발자들을 위해 많은 통합환경과 개발 툴들이 나와있다.

고민해봐야 할것은 "이것들이 모두 정말 프로그래머를 위한 개발툴일까?" 하는 것이다.

만약에 프로그래머들을 상대로 돈벌이를 하는 회사들이 프로그래머의 주머니를 털려고 만들어 놓은 소프트웨어일수도 있지않을까????. 

본질은 프로그래머를 위한게 아니라 소프트웨어를 개발하는 팀에게 추진하는 프로젝트 완료를 빠르게 할수 있도록 도와주는 상품들 이라는 것이다. 프로그래머를 대상으로 하는 프로그램이라기 보다는 프로젝트를 상대로 하는 프로그램인것이다. 

소프트웨어를 개발하는데 있어서 좋은 툴을 이용해 빨리 개발을 완료 하는것이 가장 좋은 방법일 것이다.

그렇다면 저기 위에서 나열된 툴들 중(더많은 툴들이 있을테니 그 툴들을 포함해서) 어떤것이 가장 좋은 툴일까? 

 

자,, 지금부터 제가 예기하고자 하는것은 툴을 예기하자는 것이 아닙니다.

프로젝트의 본질에 대해서 좀더 고찰이 필요하다는 것을 예기하고 싶은 것입니다. 

예를 들면 , 단일 2~3사람의 프로그래머가 Scheduler를 제작하는 것이라고 하면 익숙한 툴 좋은 툴을 선택해서 별 고민 없이 진행해 나가면 됩니다. 

10~20명 정도의 개발자가 Web 기반에서 Com을 이용한 File sharing & Digital contents를 판매하기 위한 Client Server 소프트웨어를 제작한 구성한다고 하면

National Rose , Visual Studio , My SQL, Visual Interdev, 등 여러 툴들이 필요할것이다. 

그렇다면,

20명정도 되는 개발자들이 OS와 같은 플랫폼을 만들고 그 위에 올릴 여러개의 Application을 제작 하는 70명정도의 프로그래머가 있는 프로젝트가 있다고 하면, 어떤 툴을 사용해야 할까? 

 

이경우는 좀 특별한 경우가 될 것이다.

왜냐 하면 첫번째와 두번째는 특정 시스템 위에서 동작하는 어플리케이션 개발에 관한 이야기 이기 때문에 어플리케이션은 용도나 목적에 따라 툴을 선택할 수 있고,?어플리케이션의 설계를 변경, 유지보수 기능 및 성능 개선등 많은 부분에서 툴의 도움을 받을 수 있다. 

 

하지만 세번째의 경우는 툴을 논하는 것 보다는 전체 시스템의 설계에 모든 중심을 둬야 한다. 이 시스템이 적용될 Base Chip set과 Compiler ,Device의 목적과 목적에 따른 플랫폼 서비스의 종류와 확장형식, 어플리케이션구동형식(Task나 Thread 또는 단일 Task UI), Device Layer, 그리고 Application Service layer등 시스템 전반에 걸친 설계가 필요한 것이다. 

즉,20명의 플렛폼 개발자가 취해야할 사고의 영역이 바로 System 전반의 설계와 구현에 촛점을 맞춰져야 한다.

이를 바탕으로 디자인이 끝나는 시점에서 플렛폼 개발자들은 좀더 사고 영역을 넓힐 필요가 있다. 바로 70명의 Application 개발자들을 위해서이다. 

20명의 개발자들중 Application 구동형식과 API부분을 맡은 프로그래머라면 적어도 이런 고민은 해봐야 한다 . " 만약 어플리케이션 개발자가 개발경험이 거의 없는 프로그래머 초년생이라면?" 이라는 고민은 해봐야 한다. 또, "어떻게 하면 개발 기간을 단축시킬수 있을까?" 라는 것도 역시 함께 고민해야 한다. 

Microsoft도 이런 고민을 많이 하고 있기 때문에 선택권을 줬다.

Visual C++ 을 쓸것인지Visual Basic을 쓸것인지, Win32 API를 쓸것인지, MFC를 쓸것인지, Com을 쓸것인지 Socket을 쓸것인지... 등등의 선택권이 주어지도록 했다. 

그렇다고 70명의 앱 개발자 위해 통합 IDE(Visual C++, Visual Basic)를 새로 개발하여 제공한다는 것은 배보다 배꼽이 더 큰 경우일 것이다. 

현재 취할 수 있는 최선은 대응책은 어플리케이션개발에 너무 세세한 것까지 신경쓰지 않도록 개발 architecture및 flow , library등을 제공 하는 것이다.

커스텀 가능한 통합 IDE에 우리 어플리케이션을 개발할 수 있는 환경을 추가하는 것이다.

UI Layout까지도 제공을 하게 되면 Application 개발자들은 적어도 System 전반에 적용되는 common U 부분에 대해서 고민이 덜어 질 것이다. 

또 Flow manager 등의 모듈을 제공한다면?Workflow상 UI전환을 어떻게 해야 할 것 인지에 대해 정해진 룰을 따르면 될것이다.

따라서 화면 구성이나 플로우 전환을 위해 어떻게 할 것인지등에 대한 것 보다는 기능상 구현을 우선시 할 수 있게 된다.. Win32든 MFC든 UI를 위한 부분이 너무 많이 Application에 영향을 주어 Architecture가 복잡해지는데, 위 처럼 UI에 대한 작업이 줄어들면 줄어든 만큼 어플리케이션 구동에 대한 Architecture는 간단해진다.

 

 

뛰어난 어플리케이션 개발자에게 어떤 선택을 주어야 할까?

[Programming의 자유도를 높이는것.. 관연 약인가 독인가?]        

서론치고는 너무 길어졌는데요.

제가 주장하고자 하는 바는 system을 개발하면서 application영역을 모두 application 개발자에게 떠넘겨서는 안된다는 것입니다.

무슨 말이냐 하면 application 개발자의 역량에 의해 application의 질이 좌우되도록 모든것을 떠 넘겨 놓게 되면 프로젝트 전반에 걸쳐 많은 문제를 야기하게 될것 입니다.

각 application간의 밸런스도 문제가 되고 ,소프트웨어의 질과 유지보수 관계에도 많은 문제가 발생하게 됩니다.

위에서도 잠깐 언급했지만 우리는 현실적으로 항상 경험이 많고 우수한 어플리케이션 개발자와 일하지는 않는다는 것입니다.

경험이 적은 소프트웨어 개발자와 일 하게 된다는 것을 염두해 두고 Application개발자에게 제공되어야 하는 서비스가 뭔지를 결정해야 합니다.

혹, 어떤분들은 "만약 어플리케이션 개발자가 아주 유능하고 천제적이며 경험있는 사람이라면 어떻게 하시겠습니까?" 라고 질문 할수도 있습니다.

어떻게 해야 할까요? 이사람에게는 "당신은 유능하니 마음대로 하십시오" 라고 해야 할까요?.

제 경험상 유능한 사람일수록 자기가 가지고 있는 노하우나 기존의 프로그래밍 습관을 유지하려고 합니다. 어떻게 보면 현재 구성하려는 시스템을 흐트러 트릴 가능성이 많다는 것이죠.

물론 모든 유능한 개발자가 그렇다는 것은 아닙니다. 하지만 우리는 혼자서 소프트웨어를 개발할 수 있는 시대에 있지 않습니다.

우리가 시스템을 설계하고 개발한 후 다른 협력업체에 인터페이스를 오픈하고 우리의 시스템 위에서 어플리케이션을 개발하도록 할때가 많습니다.

유능하든 그렇지 않든 시스템을 전반적으로 이해하지 못한 상태에서 개발에 들어가야 하는 것이 어찌보면 현실 일 것입니다.

즉,어플리케이션 개발자가 매우 유능하다면 스스로 어플리케이션의 문제점이나 System의 핸디켑을  해결하기 위해서 다양한 방법을 시도 할 것입니다. 이부분이 때로는 유지보수에 어려움을 만드는 계기가 되기도 한다는 것이죠.

유능한 개발자들에게는 그들만의 영역을 따로 주는 것이 좋습니다. 그들이 가지고 있는 노하우가 System의 일부로 스며들수 있도록 System Layer의 작업환경을 주는것이죠.

또, Application의 core 영역에서 개발하도록 하는 것도 하나의 방법입니다.

"System을 개발하면서 application영역을 모두 application 개발자에게 떠넘겨서는 안된다는 것입니다."

이말은 System이 Application에게 System에 영향을 주지 않는 범위의 틀을 제공해야 한다는 것입니다. 그리하여 유능한 개발자든 아닌든 그 틀 안에서 자신의 역량을 펼치도록 만들고 , 제한하는 것입니다.

프로그래밍의 자유도는 틀 안에서만 허용이 되어야 한다고 생각됩니다.



회고

그 시절에는 개발자의 역량이 시스템에 꽤 많은 영향을 미쳤던것 같습니다. 그사람이 없으면 할수 없었던 일도 있었으니까요.

하지만 반면에 어플리케이션 개발은 가능하겠지만 혼자서 시스템을 만들수도 없었죠.

 

지금(2025년)에 와서 생각해본다면, 상황이 많이 바뀌었죠.

 

어플리케이션 중심 => 서비스 중심

OS위 에서 독립적(Stand alone)으로 동작 => 온라인 서비스를 기반으로 데이터를 쌓고 정보를 가공 제공하는 형태 (MSA, cloud, iot..)

하나의 언어로 개발 => 서비스기반의 다양한 언어와 다양한 플랫폼으로 구성 (html/css, python, nodejs, react, nextjs ....)

단일 플랫폼에서 동작 => 서비스가 기본적으로 다양한 플랫폼을 지원 (android, iOS, web)

통합 IDE의 부재 => 다양한 개발환경 (android studio, visual studio code, electron ....)

AI 의 발달..

 

이제는 개발자의 역량과 실력에 따라 더 좋은 대우와 어려운 미션이 부여되는 것은 맞겠지만, 그것이 플랫폼 영역을 의미하는 것은 아니게 되었네요.

하지만 한가지 공통된 것은 그 개발자의 위치는 시스템(서비스)내에서 영향력이 큰 곳으로 배치되기는 해야 겠죠. 그리고 본인이 원하는 일이여야 할것이고요.

 

시대가 바뀌어서 본인의 역량 뿐만 아니라 의지에 따라서 결과물이 크게 달라지는 시대입니다.

 

 

[참고]

바다 OS

 

타이젠

 

갤럭시 홈 미니 

 

 

반응형

 

Map과 더불어 지구의 위경도 및 지역 표시에 지구본 형태들도 종종 많이 쓰입니다.

(시각적 효과가 좋죠)

 

그래서 찾아보니 편하게 쓸만한 라이브러리가 있네요.

 

https://react-globe.netlify.app/

 

🌎 react-globe (v5.0.2)

Edit page 🌎 react-globe Create beautiful and interactive React + ThreeJS globe visualizations with ease. Features ✨ Beautiful and complete with clouds, backgrounds and lighting.✌️ Incredibly simple to use and configure.📍 Render interactive mark

react-globe.netlify.app

 

 

#해피 코딩!!

+ Recent posts