본문 바로가기

개발일기28

[Stable Diffusion] 스테이블 디퓨젼 후기 Stable Diffusion은 왜 Stable Diffusion인가? Diffusion의 이전 모델은 아예 처음부터 이미지를 생성했었다면, Diffusion 모델은 이미지의 벡터값은 그대로 가져가고 노이즈를 추가한 상태에서 그 흐린 이미지를 점차적으로 원본 이미지로 복원한다. 이미지의 픽셀 값이 높은 농도에서 낮은 농도로 이동한다하여 Diffusion이라 하는 것이다. (디퓨져를 생각해보자!) Stable Diffusion은 '안정적인 Diffusion'이란 뜻에서 Stable Diffusion이라고 이름 지어졌다. 자세한 내용은 말할 수 없지만, 회사에서 AI TF를 진행하게 되어서 Stable Diffusion을 해보고 있는데 상당히 흥미롭고 재미있다. 평소에 관심 있게 보고 있었기에 Stable .. 2023. 9. 6.
[Node] NPM 라이브러리 4개를 개발하며 최근에 NPM 라이브러리를 4개 만들었고, 계속 개발하고 있다. 어렸을 적, 피아노를 좋아했는데 어느 날 죽기전에 이 세상에 나의 작품을 하나 남겨야하지 않겠나라는 생각을 들었다. 그래서 음악을 3곡 정도 작곡을 했었고, 네이버 블로그에 올리기 위해 작곡프로그램까지 배워 midi 파일을 만들고 가상악기를 씌워 음원으로까지 만들었다. 맨 처음엔 단순히 한 번 만든 코드를 나중에 다시 활용하기 위해, 팀원과 공유하기 위해 라이브러리를 제작하기 시작했다. 그 라이브러리가 File Dispatcher이다. 그런데 만들다보니 구현하려는 기능이 단순 Node의 기본 기능만으로는 불가능했다. 그래서 방법을 찾아보았는데, 여기서부터 라이브러리를 만드는 과정에 희열을 느끼게 되었다. 이 때 찾은 방법은 네이티브 애드온이.. 2023. 8. 14.
프로그래밍 패러다임 프로그래밍 패러다임 1. Imperative (await, runBlokcing) 내가 어떤 임무를 수행하는지가 명확함 "야 너 이거해", "야 너 이거 가져와" 2. Reactive (rxjs, coroutines) 얘가 이걸 줄 수도 있는데, 만약 주면 내가 이렇게 행동할게 이걸 주면 이걸 수행하고, 저걸 주면 저걸 수행할게 2023. 7. 26.
[Elixir] Elixir 프로젝트 생성 오류 Elixir 맛만 보려다가 프로젝트 만들어보는 것만 1시간 넘게 걸렸다. 1. Elixir SDK를 제트브레인 IDE에서 인식하지 못하는 문제. 그냥 인식 안하는 것 같다. plugin만 설치하고 나머지는 명령어로 하면 되는듯. JDK처럼 따로 SDK를 인식시켜줘야한다거나 하는 건 없는 듯 하다. 문제인줄 알았지만 문제가 아니었다. vscode에서 해보고 알았다. 2. 파일 이름에 '-'(하이픈)을 쓰지 말아야한다. 왜... 못써요? ...... Erlang의 가상 머신(Beam)의 명명 규칙이라고 한다. ** (Mix) Application name must start with a lowercase ASCII letter, followed by lowercase ASCII letters, numbers.. 2023. 7. 16.
AES, CBC 그리고 IV AES는 양방향 암호화 방식으로 복호화가 필요할 때 쓴다. 가장 대표적인 쓰임새로는 JWT가 있다. SHA는 단방향 암호화 방식으로 복호화가 불가능하기 때문에 비밀번호 저장 등에 쓰인다. CBC는 AES의 암호화 방식 중 가장 많이 쓰이는 방식이다. CBC는 Cypher Block Chaining의 약자로, 주목해야할 건 'Block Chain'이다. 블록체인은 이전의 블록 데이터로 다음 블록을 생성하는 방식이다. 하지만 첫 블록은 데이터가 없기 때문에 IV(Initialize Vector)가 필요하다. Initialize라는 단어를 보면 바로 감이 올 것이다. 정리하면, 첫 블록은 IV로 생성하고 이후의 블록들은 그 전 블록의 데이터를 기반으로 생성된다. 2023. 7. 6.