본문 바로가기

분류 전체보기35

GPTs 기반 신입 프론트 엔지니어 면접관 ChatGPT의 GPTs의 기능을 이용해서 신입 프론트 엔지니어 면접관을 만들어놨습니다. 마음껏 사용하시기 바랍니다. 주요기능 자기소개서, 포트폴리오, 이력서등을 읽고 해당 문서 기반으로 인터뷰 진행 가능. 확장자는 PDF나 docx파일을 추천드립니다. ChatGPT 정책 상 URL 첨부는 처리하지 못합니다. 코딩테스트 (언어는 javascript나 node.js를 기본으로 합니다.) 신입 수준의 서버 관련 질문 탑재. 질문에 대한 대답을 할 때마다 (꽤나 냉정한...ㅠㅠ) 피드백을 제공합니다. 어떤 점이 좋았고 나빴는지, 개선할 점은 무엇인지에 대해 설명해줍니다. ChatGPT - Senior Engineer Interviewer 프론트엔드 신입 면접을 담당하는 시니어 엔지니어. 자기소개서나 이력서도 .. 2024. 2. 22.
openAI api로 아웃페인팅을 (야매로) 싸게 이용하고 구현하기 openAI의 아웃페인팅을 해상도가 좀 낮더라도, 조금 노가다를 하더라도 싸게 이용할 수 없을까? 발상의 시작 openAI의 아웃페인팅은 dalle2 모델을 기반으로 하는데, 현재 115credits(총 460장의 이미지 생성)에 15달러, 즉 1장당 0.032달러이다. 그런데 openAI의 dalle2 모델의 api요금을 보면 1024*1024 해상도 이미지가 1장당 0.02달러이다. 여기서 뭔가 부조리함(?)을 느꼈다. 똑같은 생성모델을 이용하는데 api로 이미지를 만들면 60퍼센트 가격이라니. 이거 가격차이가 많이 나는 거 아니야? 그래서 혹시 이 dalle2 api가 아웃페인팅을 지원하고 있는가 찾아봤다. * openai api 가격표 * outpainting 홈페이지 사실 openai의 이미지 .. 2024. 2. 19.
opeaAI에서 api key가 disabled 되었다고 이메일이 와요. 그냥 평소처럼 로컬환경에서 개발하다가 이런 이메일이 날라왔다. 대충 내용은 이렇다. api key가 유출되었으니, 우리가 그 api키를 무효화시켰고, 새로 api 키를 만들어서 사용하라는 것이다. 일단 나는 로컬환경에서만 이 api key를 사용하고 있었고, 생성한지도 얼마안 된 key였다. 다른 사람에게 실제로 넘어갔을 염려는 없을 것이라고 판단했다. 그럼 외부에 내 apikey를 저장한 적이 있나 생각해보니... 그런 적 있긴 했었다. 바로 github다. github의 원격 저장소에 apikey가 담긴 javascript파일을 저장한 적이 있는데 푸쉬 시간과 이메일을 받은 시간을 보니 거의 비슷했다. 그래서 검증을 위해 apikey를 빨리 하나 만들어서 push를 해봤다. 얼마 있다가 그 key도 .. 2024. 2. 12.
Set 자료형에 중복되는 원소가 나타날 수 있을까? 원칙적으로 말하면 불가능하다. 이는 누구나 아는 사실이다. Set은 집합을 나타내기 위한 자료형이기 때문에, 중복값이 나타나면 안된다. 하지만 중복되는 원소가 나타나는 현상을 발견했기 때문에 이 글을 찾아왔을 것 같다. Set에 중복이 나타나는 상황은 언제일까? 이런 현상은 배열이나 객체와 같은 참조타입 데이터의 값을 Set에 넣을 때 발생한다. 이렇게만 말하면 잘 감이 안 잡히기 때문에 바로 예시를 들어보자. const set = new Set(); const obj1 = { key: 'value' }; const obj2 = { key: 'value' }; set.add(obj1); set.add(obj2); // obj1과 obj2는 값은 동일하지만 다른 객체 참조 console.log(set); .. 2023. 7. 3.
한 프로세스가 여러 개의 포트와 동시연결될 수 있을까? TCP 연결을 만지작 거리다가 생긴 의문이다. 과거에 대학교에서 컴퓨터 네트워크를 배울 때, 교수님이 가르쳐주신 게 있다. 1. 트랜스포트 레이어는 ‘호스트들이 실행하는 프로세스와 프로세스를 논리적으로 연결하는 레이어’이다. 2. 네트워크 레이어가 호스트와 호스트를 연결한다면, 트랜스포트 레이어는 호스트에서 실행되는 프로세스들을 서로 연결해주는 기능을 한다. 3. 두 호스트의 프로세스가 각각 연결되고, 이 프로세스들은 다른 프로세스와 동시에 연결될 수는 없다. 이 말을 인터넷에 적용시켜보자. 인터넷은 네트워크 레이어로 IP를 사용하고, 트랜스포트 레이어에 TCP를 사용한다. 데이터 패킷이 IP(네트워크 레이어)에 의해 컴퓨터(호스트)에 전달되면, 그 패킷들을 컴퓨터 내의 프로세스에 분배하는 일은 TCP가.. 2023. 6. 9.
배열을 객체로, 객체를 배열로 만드는 방법 배열을 객체로 혹은 거꾸로 객체를 배열로 만드는 작업은 참 많이 쓰인다. 코딩테스트에서도 그렇고, 실제 프로젝트를 함에 있어서도 구현할 일이 많이 있다. 이런 작업을 수행하는 방법이 여러가지가 있어서, 치팅시트 마냥 짧게 정리했다. 배열을 객체로 만드는 방법 Array.prototype.reduce()를 이용한 방법 문법 reduce(callbackFn) reduce(callbackFn, initialValue reduce는 본래 단어의 의미가 '줄이다.'이다. 의미에서 알 수 있듯이 reduce는 배열의 원소에 대해 콜백함수를 반복호출하고 최종적으로 하나의 값(여기선 객체)을 출력한다. 가장 흔하게 볼 수 있는 방법이다. 이 방법을 사용한 코드는 다음과 같다. const arr = [1, 2, 3]; .. 2023. 6. 9.