|
2021-12-21 20:39
조회: 2,888
추천: 2
개발자 입장에서 본 스파게티 코드저번에도 비슷한 제목으로 한번 글 썼는데
이번에도 한번 써봄. 물론 유저입장에서 이해하는데 도움이 되는거지 결론에서도 말하겠지만 스파게티 코드는 유저가 신경써야할 영역이 아님. 스파게티 코드라 부르는건 그냥 통칭 꼬인 코드, 보기 더럽거나 파악하기 어려운 코드들을 말함 원인은 다양하지 처음부터 개떡같이 짰을수도 있고 (기술력의 부족) 애초에 요구사항이 개떡같을수 있음 (복잡한 컨텐츠나 다양한 예외상황) 여기서 요구사항이 개떡같은 경우는 다시 둘로 나눌수 있는데 1. 첫 요구사항부터가 추상적이거나 어렵다 - 메이플 경매장같은걸 만들껀데, 블록체인 기술을 써서 3D로 보이게 만들어주세요 - ?? 뭘 원하는지 알기도 어려운데 구현해야하는 케이스 뭘 원하는지 알수 없으니 얼추 이해한 내용을 토대로 구현하곤 함. 당연히 여러번 이게 아니야 하면서 갈아엎고 얼추 마음에 드는 결과물이라고 나오는게 있으면 당연히 뭘 만들려 했는지도 모르는 뒤틀린 황천의 코드가 있을거임. 2. 구성요소가 너무 자주 변경되었다. - 남자 주인공을 상정하고 만든 소설이 갑자기 여자 주인공으로 바꿔야한다 - 싱글플레이를 상정하고 만들었는데 갑자기 멀티플레이가 되었다. - 캐릭터의 스킬/능력치/장비등이 계속계속 쌓여간다 게임에선 정말로 자주 보이는 케이스가 될 거임. 마치 써둔 소설의 설정을 하나하나 바꾸면서 검증해야 하다 보니 기존의 코드들이 남아 충돌을 일으키게 되거나, 신경쓰지 못한 예외상황들이 발생함. 근데 위의 상황을 왜 설명했냐? 쉴드 치려 했냐? ㄴㄴ 애초에 저렇기 때문에 저런 상황들을 잘 해결하는 프로그래머들을 "프로그래밍을 잘한다" 라고 하고 물론 딥러닝이나 최적화, 다양한 기술스택들도 "프로그래밍을 잘한다"고 하지만 저런 예외상황들이나 구현사항의 변경을 유연하게 처리하는것도 "프로그래밍을 잘한다" 라고 함. 그렇기 때문에 언제나 능력있는 프로그래머가 부족하다고 하고, 높은 연봉을 주면서 데려가려 하는거임. 프로그래머들이나 다양한 사람들도 저런 상황들에 유연하게 대처하기 위한 방법론을 만들었음. OOP라 불리는 객체지향 설계나 다양한 디자인 패턴들 같은 프로그래밍 할때 배우는 그런 것들이 바로 그것임. 하지만 게임업계는 다른 업계에 비해 스파게티 코드가 유저가 체감할정도로 자주 이야기가 나오곤 함. 네이버/카카오/배민 이런곳에서 스파게티 코드 ㅋㅋ 하는거 봤음? 이건 게임업계가 코드를 못짠다! 능력없다! 라기 보다는 업계의 특성이 만들어낸 상황임 네이버나 카카오, 배달앱들이나 웹서비스는 변경에 굉장히 유연함. 뭔가 쌓이면 그냥 통채로 엎어버리는게 가능하다는 거지 물론 그게 쉽다는건 아니지만 고려사항이 조금 적다고 생각함. 배달앱을 예시로 들면 새로운 서비스가 생겼을때, 그냥 앱을 갈아엎는 방법이 있음. 예전엔 터치 여러번 해서 주문했는데, 이젠 원터치로 되게 만들었다! 하면 그냥 이전 코드와 기획사항은 폐기할 수 있음. 게임의 경우는 이걸 할때마다 기존의 밸런스를 고려해야하는 경우들이 생김. 메이플의 서버렉은 기술적인 이슈도 존재하지만, 동시에 기획적인 문제도 있음. 서버렉이 사라져서 일격필살이 2초띡하고 사라지면? 그 특수코어의 효율이 내려가는거임 모험가 법사의 인피니티가 서버렉을 안받아서 최종데미지가 훨씬 빠르게 오르면? 기획팀도 함께 갈려야함 아니면 오래된 리소스를 싹 다 갈아엎어야 한다면? 이때는 그래픽팀도 같이 갈려야지. 타 서비스에 비해 각자의 기능들을 하나만 따로 떼어내어 분리하기가 어려움. 그만큼 코드사이의 연결관계를 끊기 어렵기 때문에 쉽게 코드가 들러붙고 더러워질 수 있지만 그것을 떼어내기는 어렵다고 생각함. 하지만 서론에도 잠깐 말했듯이 그런 상황을 해결하고, 그런 상황에서도 유연하게 개발하기 위해 대기업은 그만한 돈을 투자하여 사람을 채용함. 결국 개발자 입장에선 무지성 코딩하면 코드가 스파게티가 되니 그만한 돈과 대우를 받고 일하는 거임. 그래서 처음에 유저입장에서는 스파게티 코드를 신경 쓸 필요가 없다고 한거고 개선을 위한 요구와 내부 코드의 복잡도는 별개임 개발팀이 이러한 이유로 개발이 늦어질 것 같다, ~~월 내로 개발할거다 하는건 개발팀 내부가 생각해야하는 일이고, 내부 상황을 알아서 고려해 맞춰야할 일이지 개발팀의 능력부족이나 근태를 지적하거나, 반대로 개발팀을 쉴드치는건 논점과는 벗어나는 일이 아닌가 싶음. 결론 1. 게임에서의 스파게티 코드는 자주 등장하는 이슈이다. 2. 그거 해결하라고 큰 돈을 받고 일하고 있는거다. 3. 유저입장에서 제공받는건 스파게티 코드가 아니라 서비스다. 내부 코드가 어떤지를 재미로 추측해볼 수는 있겠지만 그런 추측으로 개발팀을 쉴드치거나 깔 이유는 없다. (코드의 결과물이 문제가 있음을 지적하는것만으로도 충분하다고 생각한다. 외않된데?) |
메이플스토리 인벤 자유게시판 (구) 게시판
인벤 전광판
[메르맞지] 솔직히 쁘띠 스노우 가능임
메이플스토리 인벤에 오신 것을 환영합니다~★
[젓가락왕자] 나는 쌀다팜~ 난 이미 쌀다팜ㅋㅋ
[원자폭탄] 템팔고 반년뒤에 돌아오는게 겜 하는거보다 더 세짐!
[군채] 12/(화)점심 메이플아지트 컬렉션카드 교환하실분ㄱㄱ
