목차
- LLM(대형언어모델)과 Tulu 오픈소스
- 서버리스(Serverless) 아키텍처와 비용 이슈
- NestJS Cache Manager와 캐시 유지 문제
- 창업과 정부지원사업(예비창업패키지 등)
- 온라인 서비스의 SEO 최적화와 유저 경험
- 프론트엔드 테스트코드 실무 이야기
- 목(Mock), 스텁(Stub), 픽스쳐(Fixture)의 차이와 활용
- FE 단위테스트 vs E2E 테스트 전략
- 개발과 경영/사업의 역할과 대표 CTO 역할
- 대화 중 공유된 유용한 자료 및 링크
1. LLM(대형언어모델)과 Tulu 오픈소스 🤖
-
LLM이란?
대형 언어 모델(Large Language Model)은 수십억 개 이상의 파라미터를 가진 AI로, 자연어 이해 및 생성에 뛰어남. -
대화 내용 요약:
- 1.5B, 7B, 8B 파라미터 모델은 실무 사용에 제한적임.
- 14B 모델은 영어 프롬프트에서 성능이 좋음.
- 30B 모델은 큰 메모리 요구로 개인 환경에서 돌리기 어렵다고 함.
- 웹기반 LLM 사용이 가장 편리하다는 의견 많음.
- Tulu3(https://huggingface.co/allenai/Llama-3.1-Tulu-3-8B)은 한글 기반 오픈소스 LLM 원탑이며 학습 방식, 데이터셋, 프롬프트 방법까지 공개.
- 로컬 LLM 활용 시 Tulu3 추천, 한국어 지원 강점.
- 컴퓨터 스펙(메모리, CPU/GPU 등)에 따라 고사양 LLM 사용 가능 여부가 결정됨.
2. 서버리스 아키텍처와 비용 이슈 ☁️💸
-
서버리스(Serverless)란?
서버 관리 없이 클라우드 제공자가 인프라 관리를 대신해주는 서비스 모델.
서버가 없다는 의미가 아니라, 서버 관리가 개발자나 운영자에게 보이지 않는 것임. -
주요 특징:
- 트래픽에 따라 인스턴스가 생성되고 삭제됨(오토스케일링).
- 트래픽 적을 때는 인스턴스가 뜨지 않아 비용 절감 가능.
- "콜드 스타트"(cold start): 인스턴스가 새로 생성될 때 초기화에 시간이 걸리는 현상.
- 잦은 호출 시 인스턴스가 계속 생성/소멸되어 비용이 오히려 증가할 수 있음.
-
비용 최적화 팁:
- 트래픽 패턴에 따라 적합한 방식 선택(서버리스 vs EC2 서버 상시 운영).
- 과도한 실행 요청(차르봄바 공격 등) 피하기.
- 하나의 서버로 여러 백엔드 요청 분기 처리하면 비용 절감 가능.
3. NestJS Cache Manager 와 캐시 유지 문제 🔄
- NestJS Cache Manager는 캐시를 쉽게 구현할 수 있는 모듈임.
- 문제점:
- 서버리스 환경에서는 인스턴스가 자주 생성/소멸되므로 메모리 캐시가 제대로 작동하지 않음.
- 매번 초기화되어서 캐시가 유지되지 않아 효율성 감소.
- 해결 방법:
- Redis 등 별도의 외부 캐시 서버에 캐시 데이터를 저장해야 함.
- Redis는 메모리 기반의 빠른 키-값 저장소로, 여러 인스턴스가 공유 가능함.
4. 창업과 정부지원사업 이야기 💼🚀
- 창업 전 필수 점검 리스트:
- 수요와 타겟 고객을 명확히 알기.
- 사업 계획 수립과 시장 조사 진행.
- MIT 스타트업 바이블 같은 기본서 읽기 추천.
- 정부지원사업 특징:
- 예비창업패키지, 청년창업사업 등 다양한 지원사업 존재.
- 많은 서류 작업과 제한된 비용 사용 범위 존재함.
- 지원금이 상금 형태인 경우 자유롭게 사용 가능하나, 일반 지원사업은 후불, 비용 집행 여러 제약이 있음.
- 팁:
- 지원사업은 혼자 하기보단 컨설팅 받는 게 좋음.
- 지원사업 사용 시 사업화에 집중할 수 있도록 전담 담당자 필요.
- 초기 자금이 있으면 지원사업 없이 진행하는 것이 오히려 유리할 수 있음.
5. 온라인 서비스 SEO 최적화와 유저 경험 🌐📈
- SEO(검색엔진 최적화)란?
검색엔진에서 웹사이트의 노출 순위를 높이기 위한 방법과 전략. - 중요 포인트:
- 사이트 내 각 상세페이지가 유입의 주요 창구이며, 각각 페이지 최적화가 필요.
- 크롤러(검색봇)가 사이트를 잘 긁어가도록 방화벽 설정, 사이트맵 작성 중요함.
- 내용이 충실하고 전문적인 글이 상위 노출에 유리.
- 키워드 선택은 사용자의 검색 패턴과 철자 미스 분석까지 고려해야 효과적임.
- UX(사용자 경험) 고려:
- 사용자 상태(예: 비밀번호 찾기 페이지 방문 시 인지·감정상태)를 파악해 UI/UX 설계해야 함.
- 단일 페이지만 보고 판단하기보다, 전체 흐름과 사용자 맥락을 이해하는 것이 중요.
6. 프론트엔드 테스트코드 실무 이야기 🧪💻
- 프론트엔드 테스트 종류:
- 유닛 테스트: 함수나 컴포넌트 내부 로직 검증.
- 랜더링 테스트: 실제 컴포넌트를 가상 돔에서 렌더링 후 이벤트와 상태 변화 검사.
- E2E(End to End) 테스트: 유저 관점으로 전체 흐름 테스트(playwright 등 이용).
- 테스트 작성 난관:
- 랜더러 환경이 복잡해 테스트 코드 작성이 어렵고 번거로움.
- 브라우저별 미세한 동작 차이는 유닛 테스트에서 잡기 어려움.
- 테스트 코드에 대한 소양과 설계능력이 요구됨.
- 최근 실무:
- 많은 프로젝트가 유지보수 어려움으로 컴포넌트 단위 랜더링 테스트를 제거하는 경우도 있음.
- 보통 E2E + 핵심 함수 유닛테스트 조합으로 운영.
7. 목(Mock), 스텁(Stub), 픽스쳐(Fixture)의 차이와 활용 🛠️
-
목(Mock):
- 테스트 중 특정 함수나 객체의 동작을 가짜로 만들어 호출과 반환 값을 제어.
- 외부 API 호출이나 DB 접근 같은 부작용을 차단하기 위함.
-
스텁(Stub):
- 목과 비슷하지만 좀 더 간단히 고정된 반환값을 제공하는 역할.
- 주로 함수의 반환값만 고정할 때 사용.
-
픽스쳐(Fixture):
- 테스트에 필요한 고정된 데이터셋을 미리 만들어 둔 상태.
- 복잡한 유닛테스트에서 여러 데이터 조합을 반복할 때 유용.
- 유닛테스트뿐 아니라 통합 테스트에도 활용.
-
참고:
- 픽스쳐는 테스트용 상수 데이터로, 여러 케이스에 걸쳐 실제 데이터 기반으로 만들어짐.
8. FE 단위테스트 vs E2E 테스트 전략 ⚔️
- 단위 테스트는 로직 검증에 집중, 컴포넌트의 내부 함수 테스트가 주된 대상.
- E2E 테스트는 실제 브라우저 환경에서 사용자의 행동 흐름을 시뮬레이션.
- 많은 팀이 컴포넌트 단위 랜더링 테스트를 유지보수 비용으로 제거하고 대신 E2E+핵심 함수 테스트만 유지.
- 테스트 작성 시 중복, 모킹 최소화가 생산성 유지에 중요.
- 가성비 고려하여, 효과적이고 빠르게 버그를 잡을 수 있는 영역에 집중하는 것이 권장됨.
9. 개발과 경영/사업의 역할과 대표 CTO 역할 🤝
-
웹/앱 기반 기술 창업에서 대표가 꼭 개발까지 해야 하나?
- 정답은 대표가 직접 개발하지 않아도 되나, 도메인 지식은 필수로 갖춰야 함.
- 도메인 지식 없으면 채용해 맡겨도 사업 지속 어려움.
- 대표는 직원과 소통할 수 있도록 기술 용어 등 기본 이해 필요.
- 대표의 개발 참여 시간은 사실상 거의 없으며, 영업, 투자, 기획 등 업무가 우선됨.
-
1인 개발도 가능하나, 사업 유형과 목표에 따라 다름.
-
팀 단위 협업과 역할 분담 중요.
10. 공유된 유용한 링크🔗
-
Tulu LLM 오픈소스:
https://huggingface.co/allenai/Llama-3.1-Tulu-3-8B -
서버리스 호스팅 참고 사이트:
https://fly.io -
구글 트렌드(키워드 연구용):
https://trends.google.co.kr/trends/ -
네이버 데이터랩(키워드 연구용):
https://datalab.naver.com/ -
프론트엔드 테스트 강의(유튜브):
https://youtube.com/playlist?list=PLu4SLZr2wHjUsy3WFmuplKGU1Qrwb6vLM&si=06cY7-WOrEjWviGh -
SEO 최적화 기본:
사이트맵, 시멘틱 마크업, 키워드 최적화 필수, 크롤러 친화적 구성 권장
면접팁⚡
-
서버리스 아키텍처 이해
서버리스가 서버가 없는 것이 아니라 서버 관리가 없는 것임을 명확히 설명
콜드 스타트와 비용 최적화 이슈 이해도 높이는 게 좋음 -
캐시 관리 전략
NestJS 같은 프레임워크에서 캐시는 메모리 외부 저장소(Redis)를 사용하는 이유를 알고 있어야 함. -
테스트 용어와 개념
목(Mock), 스텁(Stub), 픽스쳐(Fixture)의 차이와 사용 목적을 명확히 설명할 것. -
창업 관련
기술 창업 시 대표와 CTO 역할 분담, 도메인 지식 중요성 강조. -
SEO 및 UX 기초
검색엔진 최적화가 왜 중요하며, 상세페이지별 최적화 필요성 이해.