AI 활용 일지 (4)
·
공부/AI
오늘은 선생님이 Skills에 관심이 있다면 꼭 한번 참고해 보라고 보내주신 레포지토리를 정리해보겠습니다.이번에 살펴본 것은 Matt Pocock이 만든 Skills라는 Repository입니다.이름 그대로 AI Agent가 사용할 수 있는 여러 Skill들을 모아놓은 Repository입니다. README에는 첫 문장부터Skills For Real Engineers라고 적혀있습니다.단순히 AI에게 모든 코드를 맡기는 방식보다는 실제 개발 과정에서 AI를 어떻게 활용할 것인지에 초점을 맞추고 있습니다.Skill먼저 Skill이 무엇인지 알아보겠습니다.Skill은 AI에게 특정 작업을 어떻게 수행해야 하는지 알려주는 지침이라고 볼 수 있습니다.예를 들어버그를 수정할 때는 먼저 재현 방법을 만들어라.기능을 ..
AI 활용 일지(3)
·
공부/AI
오늘은 지금까지 공부했던 내용들을 실제 프로젝트에서 어떻게 활용하고 있는지 정리해보는 시간을 가져보겠습니다.이번에는 졸업작품을 개발하면서 실제로 사용했던 Prompt를 돌아보고, 공부 전과 비교했을 때 AI를 사용하는 방식이 어떻게 달라졌는지 정리해보려고 합니다.이전에는 어떻게 사용했을까?예전에는 AI에게 필요한 기능을 바로 요청하는 경우가 많았습니다.PreviewItem 에서 아이템 이름 텍스트도 띄우고 싶은데 구조 너가 짜서 해줘봐Enemy.Dead에서 호출해줬는데 뭔가 연결이 안됐는지 안나옴 디버깅해봐적이 플레이어의 반경 n 안에 들어갈 때까지 달리는 enemyBehaviour 제작해줘간단한 작업에서는 크게 문제가 없지만, 프로젝트가 커질수록 AI가 현재 구조를 제대로 알지 못해 기존 시스템과 맞지..
AI 활용 일지 (2)
·
공부/AI
오늘은 AI를 사용할 때 빠질 수 없는 프롬프트에 대해서 알아보고, 효과적인 프롬프트를 작성하는 방법을 공부해보겠습니다.이번 내용은 MIT Sloan의 Effective Prompts for AI: The Essentials 글을 참고했습니다.https://mitsloanedtech.mit.edu/ai/basics/effective-prompts/ Effective Prompts for AI: The Essentials - MIT Sloan Teaching & Learning TechnologiesUnlock the potential of AI by crafting effective prompts. Learn how prompt engineering can optimize your AI interacti..
AI 활용 일지 (1)
·
공부/AI
오늘부터 AI를 잘 활용하는 방법에 대해서 공부해보겠습니다. 오늘은 AI를 공부할떄 많이 마주치는 개념들에 대해서 공부하였습니다.LLM먼저 LM, Language Model (언어 모델) 이란 입력값을 기반으로 가장 적절한 출력값을 출력하도록 학습된 모델을 뜻합니다.언어 모델 중에서도, 챗지피티와 같이 대규모 데이터와 많은 파라미터를 사용해 학습된 언어 모델들을 LLM, Large Language Model (대규모 언어 모델)이라고 부릅니다. LLM은 현재까지 주어진 내용을 바탕으로 다음에 어떤 내용이 이어질 가능성이 높은지 예측하면서 답변을 생성합니다. 예를 들어for (int i = 0;이라는 코드가 주어졌을때, LLM은 학습 과정에서 접했던 수많은 코드들과 현재 문맥을 바탕으로 다음에 이어질 코드..
여름방학 프로젝트 3주차 - 3
·
방학 공부 기록
오늘은 전에 만들었던 Refresh 토큰 구조를 클라이언트에 적용했다. ApiClient에서 요청을 보냈는데 401 오류가 뜨면 Refresh 토큰을 사용해서 refresh 요청을 보내도록 하였다.Refresh 흐름요청 시에 원래 토큰을 멤버변수로 저장해두었다가 401 오류가 뜨면 TryRefreshAccessToken 부분으로 넘어간다.먼저 세마포어로 이미 진행중인 Refresh가 있는지 확인을 해주고, 없다면 직접적인 요청으로 넘어가게 된다.세마포어를 잡았는데 토큰이 갱신되었다면, HasAccessToken을 반환해준다.만약 Refresh 토큰 갱신 작업이 실패하면 false를 반환하고, 그 오류가 unauthorize라면 로그인이 만료된 것이니 ExpireSession을 호출해준다. 대충 총 흐름은..
여름방학 프로젝트 3주차 - 2
·
방학 공부 기록
게임 서버를 수정할 때마다dotnet publishscpsshsystemctl restart를 직접 입력해서 배포하는게 과정이 너무 귀찮아서 GitHubActions를 사용해서 배포 자동화를 했다.main 브랜치에 Push하면 GitHub에서 자동으로 프로젝트를 빌드하고, publish 결과물을 Oracle Cloud 서버로 전송한 뒤 배포 스크립트를 실행하도록 구성했다.전체 흐름은 다음과 같다.GitHub Push ↓GitHub Actions 실행 ↓dotnet publish ↓SCP로 서버 업로드 ↓배포 스크립트 실행 ↓systemd 서비스 재시작전에 정리했던 배포를 Actions 사용해서 자동화 한거라 보면 된다.SSH 키 등록GitHub Actions가..
여름방학 프로젝트 3주차 - 1
·
방학 공부 기록
하하 오늘은 면접을 보고 왔다.지금 하고있는 서버 프로젝트 이상한거 다 고치고 피드백 받는걸 과제로 내주신다고 한다. 좀 개쩌는 기회인듯.코드 수정코드에서 로직이 잘못됐거나, 오류가 날수 있는 부분들을 AI한테 찾아내게 시켜서 고치는 시간을 가졌다.동시성 문제들어떻게 보면 굉장히 간단한 사실인데 깨닫지 못했던 부분이 있었다. public async Task GetOrCreateAsync(int userId) { Character? character = await _dbContext.Characters.FirstOrDefaultAsync(c => c.UserId == userId); if (character is not null) ..
여름방학 프로젝트 2주차 - 3
·
방학 공부 기록
오늘은 재화들 가져올수 있는 api를 제작하고 지금까지 만든 서버 로직과 구조들이 잘 돌아가는지 확인하기 위해 유니티랑 연동해서 테스트해보는 시간을 가졌다. 클라이언트 연결 코드를 내가 맡게 되었으면 코드도 같이 올리겠다만... 구글로그인만 내가 연결하였고, 나머지는 우리 팀원들이 맡아보기로 해서 난 정상 작동만 확인하는 테스트코드만 만들었다.그래서 클라이언트 코드는 쓸게 없다..AccountController.TestLogin먼저 유니티 에디터에선 구글로그인을 할수 없기때문에 테스트로 이미 등록된 내 개발자 계정의 토큰을 임시로 반환해주도록 하는 매서드를 만들었다.이렇게 되면 구글로그인 없이 test만 호출해도 jwt 토큰을 발급해준다.CurrencyController간단하게 모든재화 / 한가지 재화를..