반응형

### Oracle 서버 세팅 기록

Oracle 춘천 서버를 얻었다. 세팅을 해보자

서버위치는 춘천

### 이미지는

Ubuntu 24.04 Minimal ARM64 이게 가장 간소할 것 같아서 선택했는데 나중에 너무 minimal 이라서 이거저거 설치하는 중노동해야하는건 아닐찌 살짝 두렵기는 함.

### Shape

 

### Create VCN

 

결국 리소스가 가용하지 않아서 생성 실패

다음에 해보자

 

반응형
반응형

저같은 바이브코딩 난민들에게 좋은 소식
Sonnet4.5 나오자마자 고작 이틀 경험했는데 클로드 코드 맥스플랜이 끝나버려서 너무 아쉬웠는데요
이번달에 또 30만원 결재하려니 손이 덜덜떨려서 도저히 재결재는 못했네요.

당연한 루트로 GPT5 Codex 쓰는중인데
소넷4.5가 못내 아쉽던차에 Droid라는 새로나온 cli에서
model 을 골라서 선택할 수 있다는 점이 매력적이었습니다.

특히 며칠전에 나온 클로드코드의 소넷4.5 선택이 가능하다는 점

잠깐 사용해보니 장점도 꽤 있는듯하고
Codex는 한글로 말을 잘 안해줘서 아쉽던 차에
Droid는 한글도 잘 알아먹는것 같습니다.

클로드코드2.0에서 제일 좋아진 기능이라고 생각하는 Context되돌리는거
Droid에서도 Sessions라는 기능으로 지원이 되는 것 같네요
좀 더 써봐야 알겠지만 여러모로 Codex 상위호환이라는 생각이듭니다

https://app.factory.ai/r/O1RJO4MT
제 레퍼럴코드 링크입니다. 여기 클릭해서 가입하면 무료크레딧 $40도 지원해주네요
서로 윈윈 어떤가요?

설치방법은 가입하면 안내해주는대로 설치하면 되고 

curl -fsSL https://app.factory.ai/cli | sh

위에 설치후에 path설정 vi ~/.zshrc 에서 $PATH 에 ~/.local/bin 추가해주면 됩니다.

그다음은 클로드코드나 Codex 사용법과 동일.

명령어셋들은 조금씩 다르니까 한번씩 읽어보세요

Sonnet 4.5를 선택할 수 있군요(그런데 Opus 4.1 6배가 인상적이네요)
droid 의 명령어셋
설치방법은 아주 간단합니다. path설정만 잘 맞춰주세요
가격정책은 아직 감이 잘 안오는데 그냥 클로드코드 맥스플랜 $220 완전히 대체할 수 있는 거 아닌가 하는 생각이 듭니다. $20 세이브

반응형

'Tech > AI' 카테고리의 다른 글

Goover AI 실망스러운데 이거 뭐지?  (0) 2025.09.21
반응형

블로그에서 바로 실행할 수 있도록 웹페이지용 오목 2025 게임

2002년에 만들었던 C 소스를 이용해서 만들려고 계획했었으나

어쩌다 보니 새로 만들게 되었고,

바이브 코딩을 최대한 활용했 최적해 찾는 알파베타 프루닝 기법에 패턴기반 휴리스틱 노하우를 얹었다.

필승 패턴 빌드업까지 넣고 싶었지만 참았다. 어느 정도 만만하지 않은 정도로 만족하기로 했다.

쌍삼(열린3이 동시에 두개만들어지는 수)은 금지, 쌍삼제외 나머지는 다 가능.(이건 스킬이니까)

(참고, 자매품 2002년 학부때 알고리즘 과목 과제로 만들었던 오목도 있으니 파일첨부)

https://happycode.tistory.com/348

 

반응형
반응형

페이지 모달에서 에니메이션이 동작하지 않는 것이다.

원인은 DOM 추가와 active 클래스 추가가 동시에 일어나서 CSS transition 이 작동하지 않았음

그래서 requestAnimationFrame() 으로 해결했는데

혹시나 해서 과거 코드의 참 많이 쓰기도 했고 해악이기도 했었던 sleep(0) 이런거랑 같은거인지를 물어보았다.

아니라고 합니다.

뭐라고 하는지 들어보려면 아래를 확인

 

⏺ requestAnimationFrame은 단순한 sleep 함수가 아니라 브라우저의 렌더링 사이클과 동기화되는
  특별한 함수입니다.

  🎨 브라우저 렌더링 사이클

  브라우저는 다음 순서로 화면을 그립니다:
  1. JavaScript 실행
  2. Style 계산 (CSS 적용)
  3. Layout (요소 크기/위치 계산)
  4. Paint (픽셀 그리기)
  5. Composite (레이어 합성)

  이 과정은 보통 60fps로 실행됩니다 (16.67ms마다 1번).

  ⏰ setTimeout vs requestAnimationFrame

  setTimeout(fn, 10)

  document.body.appendChild(element);
  setTimeout(() => {
      element.classList.add('active');
  }, 10);

  - 임의의 시간 후 실행
  - 렌더링 사이클과 무관하게 실행
  - 10ms 후 실행되지만, 렌더링 중간에 실행될 수도 있음
  - 불필요한 렌더링을 유발할 수 있음

  requestAnimationFrame(fn)

  document.body.appendChild(element);
  requestAnimationFrame(() => {
      element.classList.add('active');
  });


  - 다음 렌더링 직전에 실행
  - 브라우저가 "이제 그릴 준비됐어!"라고 할 때 실행
  - 렌더링 사이클과 완벽하게 동기화
  - 부드러운 애니메이션 보장


  🔄 왜 두 번 호출하나요?

  requestAnimationFrame(() => {
      requestAnimationFrame(() => {
          element.classList.add('active');
      });
  });


  이유:
  1. 첫 번째 RAF: DOM에 요소 추가 후 첫 렌더링 대기
    - 요소가 DOM 트리에 추가됨
    - 초기 스타일 계산 (opacity: 0, scale: 0.9)
    - 화면에 그려짐 (보이지 않는 상태)
  2. 두 번째 RAF: 초기 상태가 확정된 후 실행
    - 이제 transition 시작점이 확정됨
    - active 클래스 추가
    - CSS transition 애니메이션 시작

  📊 타이밍 비교

  // ❌ 즉시 실행 - 애니메이션 없음
  element.appendChild();
  element.classList.add('active'); // 0ms - 초기 상태가 없어서 transition 안됨

  // ⚠️ setTimeout - 불안정
  element.appendChild();
  setTimeout(() => {
      element.classList.add('active'); // 10ms - 타이밍이 보장 안됨
  }, 10);

  // ✅ RAF - 안정적
  element.appendChild();
  requestAnimationFrame(() => {
      requestAnimationFrame(() => {
          element.classList.add('active'); // 다음 프레임 (약 16-33ms)
      });
  });


  🎯 핵심 차이점

  | 특징                             | setTimeout             | requestAnimationFrame |
  |---------             ---|-----------            --|-----------------------|
  | 실행 시점                  | 지정한 ms 후              | 다음 렌더링 직전             |
  | 렌더링 동기화            | ❌ 없음                      | ✅ 완벽 동기화              |
  | 성능                          | 불필요한 렌더링 가능  | 최적화됨                  |
  | 애니메이션 부드러움 | 떨림 가능                    | 항상 부드러움               |
  | 브라우저 최적화        | ❌                              | ✅ (탭 비활성 시 중지)        |

  💡 실제 사용 예시

  // 🎬 애니메이션이 필요한 경우
  requestAnimationFrame(() => {
      element.style.transform = 'translateX(100px)';
  });

  // ⏱️ 단순 지연이 필요한 경우
  setTimeout(() => {
      console.log('1초 후 실행');
  }, 1000);

  // 🎨 CSS transition 트리거
  element.style.display = 'block';
  requestAnimationFrame(() => {
      requestAnimationFrame(() => {
          element.style.opacity = '1'; // transition 작동
      });
  });



  결론: requestAnimationFrame은 브라우저의 그리기 주기와 완벽하게 동기화되어 애니메이션을
  부드럽고 효율적으로 만드는 전문 도구입니다!

 

🔎 CSS Transition 작동 과정

요소가 DOM에 추가됨
자바스크립트로 element.appendChild() 하거나, 서버에서 HTML을 내려주면 브라우저는 DOM(Document Object Model) 트리에 그 요소를 넣습니다.

브라우저가 초기 상태 렌더링
DOM에 들어온 요소는 CSSOM(CSS Object Model) 과 합쳐져서 렌더 트리를 구성합니다.

이때 적용되는 클래스/스타일 중에서 “시작 상태(start state)”가 반영됩니다. (예: opacity: 0)

reflow & repaint 발생
브라우저가 레이아웃을 다시 계산하고(reflow), 픽셀 단위로 화면에 그립니다(repaint).

즉 “초기 상태”를 사용자 화면에 그린 거예요.

클래스가 추가되어 최종 상태로 변화 요청
자바스크립트에서 element.classList.add("active") 같은 동작을 하거나, CSS 상태 변화(:hover 등)가 발생합니다.

CSS transition 이 정의되어 있다면, 브라우저는 이전 값 → 새로운 값 사이를 일정 시간에 걸쳐 보간(interpolate)해서 애니메이션합니다.

예: opacity: 0 → opacity: 1 으로 0.5초 동안 변화.

Transition 실행
이 과정에서 브라우저는 중간 단계의 스타일을 계산하면서 매 프레임마다 repaint 합니다.

개발자가 지정한 transition-duration, transition-timing-function 값에 따라 부드럽게 변화합니다.

👉 즉, CSS Transition 은 “상태 변화”가 감지된 순간, 브라우저가 현재 상태와 목표 상태 사이를 보간해서 화면에 반영하는 것

💡 핵심 정리
DOM에 추가될 때 이미 최종 클래스를 붙여버리면 브라우저는 “초기 상태를 렌더링할 기회”를 갖지 못합니다 → transition이 눈에 띄지 않고 바로 최종 상태로 그려져 버림.

그래서 보통은:

element.classList.add("hidden");   // 초기 상태
document.body.appendChild(element);
requestAnimationFrame(() => {
  element.classList.add("active"); // transition 발동
});


이런 식으로 한 프레임 늦게 최종 상태 클래스를 붙여서 transition 을 보장합니다.

반응형
반응형

요즘 연일 AI 서비스들이 쏟아져나오고 있다.

빅테크부터 스타트업까지 정말 다양한 서비스들을 내놓고 있다. 

이제 Chat GPT, Gemini, Grok, Claude 등을 종종 다양하게 써보며 구글검색을 주로 곁들여 쓰고 있다

특히 요즘 구글검색이 너무 사용하기 좋게 변했던데 첫페이지에서 왠만한 쓸만한 답변을 다 얻고 있어서

페이지 넘겨가며 검색하는 경우가 거의 없을 정도로 줄었다.

진짜 1년전과 비교해도 검색시간이 훨씬 단축된게 심각하게 체감될 정도다.

 

워낙 다양한 AI 툴들을 써보려고 노력하고 있고, 뭔가 새로나왔다고 하면 한번씩은 써보고 하는데

작년말부터 알게된 Goover AI 는 국산이라고 해서 그래도 애정을 가지고 한번씩 사용해보는데

오늘 정말 실망스러운 리서치 결과를 보고 참 고민스럽다.

계속 쓰는게 맞는건가... 결국 빅테크인건가

 

기업공부를 위해 디앤디파마텍 회사에 대해서 조사해달라고 넣었는데 내용이 너무 별로인거다.

차마 캡쳐는 하지 않았다. 요즘 증권사 리포트에서 중요하게 언급되는 이야기는 하나도 안나오길래 재차 질문했고, 계속 빙빙 돌려말하는 것같은 답변만 내놓는다. 그래서 GLP-1 기술에 대해서 설명해달라는 언급을 하니까 그제서야 관련 언급을 하고있다. 먼가 좀 쎄한 느낌

근데 답변중에 최근에 GLP-1 기술의 파킨슨병 치료제 임상2상을 시작한다는데 이건 뭐지. 내가 보고서에서 읽었던거랑은 완전 다른 내용이다.

내가 알기로는 파킨슨병 치료제는 개발중단된걸로 알고 있었는데 올해 임상2상을 진행한다고? 전혀 금시초문, 그래서 구글검색을 해봄

정확한 내용을 확인해보니 임상실패해서 중단되었던 NLY01 이 다시 재조명받고 있어 다시 진행 가능성여부에 대해 기대한 기사가 있었다. 

무튼, AI가 완전히 잘못된 이야기를 전달해주는 것 같아서 다른 AI서비스들을 다 똑같이 질문해봤는데 다 정확히 대답해주고 Goover AI만 일단 이렇게 오류가 있는중. 

결국 해당 내용의 레퍼런스를 클릭해보니 날짜정보가 잘못되었던게 원인인것 같다. 해당 내용 끝의 6이라는 숫자 레퍼런스를 클릭해봄.

2019년 기사를 레퍼런스로 했던 것이었음. 

이거이거 레퍼런스의 날짜를 인식하는 루틴에 오류가 있는것 같아

결국 아직 시기상조인가보다. 

 

검색해보니 실제로 2019년에 임상 2상 진행시작 결국 2023년 임상실패로 개발중단.

단 60세미만의 젊은 환자에게 유의미한 변화가 보여 다시 무언가 해보려는 듯한 기대감이 있는 정도인듯하다.

구글 및 재미나이, 그록, 챗지피티 모두 유사한 답 

 

AI 서비스를 사용할 때 항상 오류가 있을 수 있으므로 경각심을 가지고 레퍼런스 체크를 잘 해보자

투자는 본인의 결정이고 책임은 오롯이 자신이 지는 것이기 때문.

반응형

'Tech > AI' 카테고리의 다른 글

새로운 바이브코딩 CLI 등장 DROID / factory.ai  (0) 2025.10.06

+ Recent posts