전체 글 118

재우스 AI 후속 패치 - AI 메이커 추가, 깊은 복사 오류 수정

패턴을 복제하는 코드의 로직은 다음과 같다. 1. 복제 버튼을 누르면 PatternButton 스크립트의 deleteDupleQueue(이하 딜리듀플)가 발동한다.2. 딜리듀플은 삭제 버튼과 호환되어 위 로직대로 발동한다.3. 복사 버튼을 눈렀다면 splice 버튼으로 복사할 인덱스 앞에 새 패턴을 생성한다. 여기까지는 일반적인 복사 패턴이다. 그런데 여기서 복사한 패턴들은 이름이 다른데 list 부분에서 얕은 복사가 이뤄지고 있다는 것이 1차적인 판단이었다. 쳇GPT한테 물어보니 JavaScript에서 객체나 배열을 `...`(스프레드 연산자)를 사용하여 복사할 때, 복사는 얕은 복사(shallow copy)만 이루어집니다. 이는 배열의 첫 번째 레벨까지만 복사되고, 그 안에 있는 배열이나 객체는 참조..

개발공부 2024.08.21

재우스 AI 후속 패치 - AI 메이커 추가, 1차 완성

운을 어떻게 떼야 할지 모르겠다. 1인 혹은 소규모 개발은 에자일 패턴으로 개발하는 것이 선택이 아니라 필수라는 것을 느낀 시간이었다? 일단 AI 패턴을 전부 만드는데 성공했다. 모든 패턴을 구현하는데 성공했고, 기본적인 패턴 CRUD 중 R만 빼고 만들었다. React App (jaewoo-s-ai.vercel.app) React App jaewoo-s-ai.vercel.app 이미 배포 버전에 적용시키는데 성공했다. 단순 설계 단계에서는 예상 못했던 몇 가지 크리티컬한 구조적 문제가 있었다. 후반에 갑자기 몰아 겪은 트러블 이슈1. 패턴을 선택하지 않은 시점에서는 내부 코드 편집기에 접근하면 안된다는 점 간과2. 복사한 패턴들이 같은 키를 공유하고 있는 상황3. lodash를 사용하는데도 얕은 복사가..

개발공부 2024.08.21

재우스 AI 후속 패치 - AI 메이커 추가 6

State변수 통합으로 인해 컨디션 체크를 앞에서만 하게 되었다. 하지만 문제가 생겼다.  써야할 useState가 한도끝도없이 많아졌다. 처음 구조상으로는 해당 슬롯만 바뀌도록 하기에 useState가 겹칠일이 없었는데, 구조를 통일시키는 과정에서 useState를 한 번 4개를 가져다 고치게 되었다. 이건 좋지 못하다. 안그래도 가져올 배열들이 천지삐까리인데 한 번 바꿀 때 마다 useState를 4개씩 우다다다 고치면 많은 문제가 생긴다. useMemo로 조금이라도 효율화를 시킬 수 있지 않냐고 하는데, 이 배열이 정말 한도끝도없이 나타날 예정이므로 얼마나 많은 값이 메모리 상에 올라갈지 모른다.그러면 useState값을 하나로 합치면 되지 않을까?  배열을 받는 useState를 만들었다. 이 r..

개발공부 2024.07.08

재우스 AI 후속 패치 - AI 메이커 추가 5

오늘도 오늘도 에러와 함께 시작하는 개발이다.이번엔 useState에서 받아올 배열의 인덱스값 관련 문제인 것 같다. 현재 구조가 메이커 컴포넌트에서 리코일로 배열 길이 확인 -> 렙퍼 컴포넌트한테 배열값 프롭스 전달인데 시퀸스를 추가하면서 이 부분에서 뭔가 문제가 터진 것 같다. 코드는 렙퍼 75번 줄이 에러라고 가리키지만 그보다 상위 컴포넌트인 메이커 쪽을 살펴봐야 한다.  상부 코드는 컨디션 메이커, 하부 코드는 시퀸스 메이커이다. 리코일 값 변경 부분을 살펴보니 if 값에 condition을 고대로 사용하고 있는 문제를 발견했다. 그리고 그 밑의 스위치들도 바꿔야한다.  오 쓋! 아직도 에러가 발생한다. 아까 부분이 문제가 맞긴 했지만 우리가 고쳐야하는 그 문제는 아니었던 것 같다. 스샷으로 찍지..

카테고리 없음 2024.07.02

재우스 AI 후속 패치 - AI 메이커 추가 4

오늘도 에러와 함께 시작하는 상쾌한 개발 기록이다. 이유는 안다. 배열 번호 받아오는 것에서 문제를 일으키고 있다. 리코일 쪽의 문제로, Atom값을 수정해야한다. 에러 코드를 보니 시퀸스메이커 스크립트에서 마지막 족적이 끊긴 것 같다. 시퀸스메이커는 현재 컨디션 메이커에서 그대로 복붙해와 이름만 바꾼 스크립트라 그런 것 같다.  코드 상에는 Con이라 되어있지만 여긴 시퀸스메이커 코드이다. 추가 버튼을 눌러서 작동한 conListAdd의 콘솔로그가 마지막 흔적이었으니 추가 자체는 성공했고, 그 이후에 map 관련 컴포넌트 구현부에서 문제가 발생한 것 같다.  정답이었다! 컨디션메이커, 컨디션 시퀸스는 코드 간소화를 위해 하위 컴포넌트인 ConSeqWraper 컴포넌트를 공유하게 설계했었다. 그리고 그 ..

개발공부 2024.06.30

정보처리기사 2024 1회 실기 합격 후기

조금 늦게 쓰는 후기 글이다.   60점 합격 기준에 70점 합격이었다. 지난 실기에서 부끄럽지만 꽤 나쁜 성적을 받은 탓에, 이를 만회하고자 도서실에 가서 하루 3시간 정도 시나공 책을 배껴쓰는 식으로 공부했었다. 복잡한 연산 같은 것들은 별로 필요없고, 연산이 있는 것도 코딩 쪽이라 익숙하니 개념을 익히는 쪽으로만 쭉 익혔다. 1. 한정된 집중력 활용 나는 나를 잘 안다. 내 집중력은 제한되어 있으며, 이것말고도 신경쓸 것들이 많다. 그러니 우선 시나공 책에 출제 빈도 A, B로 분류되어 있는 것 중 기준에 맞는 것들만 우선적으로 익힌다.예상 문제 분류 기준지난 시험에 출제되지 않은 것2회 이상 시험에 출제된 것개념이 아니라 문제로 접근했을 때 연상가능  위 기준에 맞춰 걸러보면 전체 출제 범위의 6..

재우스 AI 후속 패치 - AI 메이커 추가 3

작업 도중 비효율적인 상황이 나와서 진도를 조금 늦추는 한이 있어도 중간 리팩토링을 하고 진행하겠다. 이벤트메이커 컴포넌트를 만들고 컨디션메이커를 관리하는 중에 발생했다.   getOptionBool로 현재 라디오값을 체크하여 추가 컴포넌트를 구현하고 있는데, 이것이 너무 쌓이다보니 가독성도 떨어지고 수치를 고치는 것도 문제였다. 처음엔 서너개만 만들어두면 될 줄 알았는데, 이 게임의 AI  로직을 클론코딩해보니 예외사항들이 자꾸 툭툭 튀어나서 계속 늘어나게 되었다. 이 문제를 해결하기 위해선 1. 바뀌는 라디오값을 바로바로 반영할 수 있으면서2. 예외상황을 만들지 않고 작동할 수 있어야하며3. 가독성을 높이면서 효율을 높이는 코드 를 만들어야한다. 가장 먼저 생각나는 부분은   로그 확인을 위해 만들어..

카테고리 없음 2024.06.20

재우스 AI 후속 패치 - AI 메이커 추가 02

한 달 정도 지나서야 글을 쓴다. 어떤 일이 있었는지는 따로 적지 않겠다. 다만 좀 많이.......바빴다.   구조를 짜고 견적을 짜고보니 사실상의 AI 편집기의 클론 코딩이 되어 있는 상태이다. 일단 하나의 큰 문제가 있어서 늦어졌고, 하나의 적당한 문제가 있어서 기로에 서있는 상황이다.  하나의 큰 문제에 대해 변명부터 하자면 내 문제가 아니다. 문제가 있다면 내가 대기업의 코드를 너무 대책없이 신뢰한 것이겠다. 무엇인고하니, 마비노기 전투 시스템 상 적과의 대치 상태는 2가지가 있다. 하나는 근처를 맴돌면서 나를 지켜보는 "경계"와 직접적으로 멱살잡이하는 "인식" 상태가 있다. 그런데 단순 코드줄을 짜서 다운 시킬 때에는 이 인식과 경계에 대한 상황을 전부 짜다보니 신경을 쓰지 않아도 되었는데 하..

개발공부 2024.06.05

재우스 AI 후속 패치 - AI 메이커 추가 01

오랜만이다. 정처리 기사 불태우느라 늦었다......이번 시험에 대한 건 조만간 후기를 쓸태니 넘어가고, 원래라면 리액트 네이티브 연습을 마저 진행했겠지만, 인터넷 상으로 내가 마지막으로 진행했던 개인 프로젝트 '재우스 AI 다운로더'에서 부재중이었던 기능에 대한 문의가 워낙 많이 왔기 때문이다.  이제는 미룰 수 없을 것 같다.....사실 이 AI 제작 파트는 써봐야 열댓 명 정도만 쓰고 안 쓸 것 같아서 놔뒀는데 예상 외로 무수한 기능 추가의 요청이 들어온 터라 더 이상 무시할 수 없을 지경이다. 하지만 닥친 일을 해결하기도 바빠서 제대로 구상을 못해본 바, 우선 피그마로 단순한 구조부터 잡고 시작해야겠다.  정말 단순하게 도형 틀을 잡아봤다. ai 패턴 선택 div는 아마 5개의 div가 디테일하게..

개발공부 2024.04.30

리액트 네이티브 독학 - asyncStorage, JDK

가끔은 구글링을 해도 안나오는 경우가 있을 것이다. 문제 해결에 관한 글이 있는데 너무 오래전 글이라 버전이 다르다던가, 추가적인 상황과 대응이 안되는 경우말이다. 그럴 경우엔 간단하다. 유튜브를 보던가, 스택 오버플로우로 가보던가. 우리가 개발하면서 부딪히는 문제 상황은 예외 없이 누군가 이미 겪어본 것이고 그 중 누군가는 기록을 남겼을테니깐.... 그런 의미에서 앞서 간략하게 설명할 트러블 슈팅도 같은 맥락이었다. 문제상황 1. asyncStorage를 yarn으로 설치했다. (진행 중) 2. npm run android를 해도 인식하지 못한다. (진행 중) 1차 분석 1. vsc 상에선 인식되지만 실제 런타임에서는 캐치하지 못함. 2. 안드로이드 스튜디오의 잔버그로, 추가된 코드를 분석하지 못하는 ..

개발공부 2024.03.24