| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
- 스즈메의 문단속
- 공부
- 주식
- shader
- 작계훈련
- 언리얼5
- GenAI
- 2023 Gaming
- 리팩터링 3장
- 언리얼 5
- 상계9동
- 112일선
- 스포일러 주의
- 리팩터링 4장
- URP
- 이득우의 언리얼 프로그래밍 1
- unity
- 산토리 하이볼
- 전주비빔 라이스 버거
- 리팩터링
- JavaScript
- 2023 구글 클라우드
- 주식단테
- 이득우의 언리얼 프로그래밍1
- 224일선
- 2023 게이밍
- 2023 게이밍 인 구글 클라우드
- 448일선
- 1일차
- 구글 컨퍼런스
- Today
- Total
목록전체 글 (95)
개발 이야기 안하는 개발자
가정을 주의하라 데이터가 있는지 항상 확인해야 한다.주석으로 알려줘야 가정이 있는 경우엔 메소드의 명명이나, 기능을 제한해서 명시해야 한다.또는 호출하는 쪽에서 강제로 알 수 있도록 Assert 같은 에러 메세지를 띄우는 방식을 추가해야한다. 전역 상태를 주의하라 코드를 재사용하기 때문에 데이터가 변질될 가능성이 높다.재사용될 가능성이 있다면 정적을 지우고 공유 상태에 의존성을 주입해야 한다.static 을 사용했던 이유는 대부분 해당 인스턴스를 가지고 있지 않았을 가능성이 있다. 그래서 필요한 곳에 인스턴스를 필요로 하는 메소드를 제작하고, 거기에 주입을 하게하는 방식으로 해결하면 된다.class ShoppingBasket{ static void AddItem(Item item) { ..
의존성 주입의 사용을 고려하라하드코딩된 의존성은 확장성을 저해한다.class TestB{}class TestA{ TestB TestB}위 상태에서 TestA 클래스의 기능이 확장되어서 TestB가 아닌 TestC가 필요로 하게 되는 상황이 온다면?따라서, 위 같은 경우 보단 아래같은 경우를 추천한다. class TestB : public Test{}class TestA{ Test Test TestA(Test InTest) { Test = InTest; }}TestA(new TestB());의존성을 주입하는 방식으로 해야 코드를 확장하기 쉽다. 인터페이스에 의존하라구체적인 구현에 의존하면 적응성이 제한된다.따라서 가능한 경우 인터페이스 의존해야 한다. 클래스 상속에 주의하라기능확장을 위한 마구잡이..
클래스를 인스턴싱하고 데이터를 수정하는 행위는 생각보다 빈번하게 일어날 것이다.이 행위가 내가 방금 로직을 작성하고 바로 사용한다면 괜찮을 거다. 이후에 누군가가 내 코드를 수정한다거나, 아니면 내가 제작한 인스턴스를 가져와서 참고하게 된다면 해당 데이터가 어디서 바뀌었는지, 어떤 의도로 바뀌었는지 찾아보기 어려울 것이다. 따라서 해당 쳅터에서는 클래스의 역할을 어떻게 규정하고 코드를 오용하지 않게 하는 방법을 소개한다. 오용하기 힘들게, Set 함수는 최대한 자제할것.기존에 있던 Text 클래스가 있고 SetFont 와 SetSize 가 있다고 가정하자.만약에 Text 인스턴싱을 얕은 복사를 통해 여러곳에서 사용하게 된다면 문제가 생긴다. A 위치에 A 텍스트가 있다.B 위치에 얕은 복사를 진행한 A ..
열심히 해야하는데...더 열심히 살아야 하는데.... 공부도 하고 게임도 하고 운동도 하고 재태크도 하고 친구도 보고 돈도 벌어야해24시간이 부족하단 말이지......이놈의 쇼츠만 없었어도... 다 했을탠데 ㅎ 매직값을 반환하지 말라 (-1 같이 잘못된 값을 받은 경우)- 대신, 널이나 오류를 반환하는게 좋다- 배열같은 컨테이너 형식은 널 대신 비어있는 값을 반환해라- 문자열은 비어있는 상태에서 문제가 될 수 있으니, 널로 반환해라 예상치 못한 부수효과는 피해라- 부수 효과 : 어떤 함수의 호출이 함수 외부에 초래한 상태 변화를 뜻한다.- 예) 값을 변경하는 함수 내부에 과거 값을 기록 한다( 과거 값을 기록하는게 부수효과 )class UserDisplay{ void getPixel(int x, i..
서술형 명칭쓰기- 가능하면 주석보다는 서술형 명칭을 사용할 것.- 명사나 함수, 클래스 등의 이름만 보고도 어떤 것인지 이해할 수 있게 명명할 것. 주석문의 적절한 활용- 주석문으로 가독성 높은 코드를 대체할 수 없다.- 주석문은 코드의 이유를 설명하는데 유용하다. (작업 이유, 테스크 넘버, 버전에 따른 이유 설명 등등)string Generate(string data){ //data[0]은 유저의 이름이고 data[1]은 성이다. //"{이름}.{성}"의 형태로 ID를 생성한다. return data[0] + "." + data[1];} 다음 코드는 주석이 있지만 이해하기 어렵다.string Generate(string data){ return FirstName(data) + "." + Last..
명시적 오류...암시적 오류...?이 두개가 계속 번갈아 나오는데 잘 모르겠넹클라 개발자는 엔진에 의존을 많이하니까 당연히 명시적 방법이 맞는거 같은데 엔진에서 크래시 내버리면 그건 암시적 방법을 쓰는거 같기도 하고..? 일단 오류 레츠고 신속하게 실패하라신속한 실패는 정확하게 어디서 에러가 났는지 알 수 있게,문제가 된 부분에서 에러를 띄워야 한다는 뜻이다. 에러가 발생한 부분, 뭔가 잘 못된 부분에서 바로 에러라고 띄워야 하는게 옳다는 의견이다.상황에 따라서는 기본값(default value)를 넘기는 방식도 존재하겠지만, 상황에 따라 다르며 에러인 상황에서 바로 인지 가능하도록 하는게 좋다는 의견이다. 요란한 실패수정이 불가능한 경우라면 에러를 내는데, 요란하게 실패해야 한다.언리얼로 따지면 C..
이번 3챕터는 다른 사람들이 나의 코드를 어떻게 바라보는지, 그래서 어떻게 해야하는지 생각해보는 챕터이다. 우리가 코딩을 할땐 해야하는 작업에 대해 생각하고,어떻게 할지 구조를 짜고 설계를 한다. 즉, 내 일도 바쁜데 다른 사람 코드를 보기엔 피곤하다. 그래서 다음을 고려하며 코드를 작성해야 한다. - 자신에게 명백하다고 해서 다른 사람에게도 명백한 것은 아니다. 작업을 진행하다보면 내가 작성한 코드 위에 동료의 코드가 위에 층층이 쌓이는 일이 빈번하다.그렇게 하다보면 내가 작성한 코드의 명명이 다른사람들에겐 명백하지 않아 혼란을 줄 수 있다.최대한 명백하게 해야하고, 만약 혼란을 줄 것을 고려한다면 주석을 다는 것도 좋은 방법이다. - 다른 개발자는 무의식중에 여러분의 코드를 망가뜨릴 수 있다.작업을 ..
큰일났따 큰일났어2장인데 벌써 머리아프다 머리로는 이해하는 내용들이었다.이걸 지금 프로젝트에 적용한다고 생각하면 너무너무 큰 일이다.일단 오늘 배운거 부터 기록해보자. 코드문제 해결을 위해 어떻게 해결하는가도 중요하지만 해결하는 코드를 어떻게 구성하는가도 중요하다. 우리가 하는 코드 작성복잡한 문제를 계속해서 더 작은 하위 문제로 세분화 하는 작업이 바로 코드 작성이다.계층을 만들면서 같은 층위 내에서는 쉽게 이해할 몇 개의 개념만 다루기 때문에, 개별 코드는 복잡해 보이지 않게 한다. - 상위 수준의 문제- 알고 있어야 하는 하위 문제- 알 필요 없는 하위 문제 간단하게 내가 이해한 바로 설명한다면, 만약 인벤토리를 제작해야 한다고 할때.인벤토리를 열어서 보여준다 가 상위 문제로 둔다.여기서 연다라..
예전에 샀던 책인데.사실 리펙터링 책 사면서 같이 산건데,리펙터링 읽고나서 코딩 개고수가 된 느낌 받아서 안읽었던 책이다. 에휴 퇴근하고 와서 쓸 거라 목차가 한 12개 쯤 되는데 하루에 하나씩 한다 치면2주 걸리겠지? 책에서 말한 고품질 코드란- 신뢰할 수 있다- 유지 보수가 쉽다- 버그가 적은 소프트웨어를 생상한다 본 책의 주 내용 6가지1. 코드는 읽기 쉬워야 한다.2. 코드는 예측 가능해야 한다.3. 코드를 오용하기 어렵게 만들라.4. 코드를 모듈화 하라.5. 코드를 재사용 가능하고 일반화할 수 있게 작성하라.6. 테스트가 용이한 코드를 작성하고, 제대로 테스트 해라. 1. 코드는 읽기 쉬워야 한다.책을 읽으면 엄청 가독성 떨어지는 장문의 글을 예시로 든다.문제는 내가 이걸 읽으면서 이게 뭐..
네네~ 미키 17을 보고왔습니다 저는 아이맥스로 보고왔습니다!근데 굳이 아이맥스로 볼 필요는 없을것같습니다.스토리에 비중이 크기때문에, 그렇게 막? 뭐 화려한 연출은 거의 없습니다 스토리새로운 행성을 향해가는 우주선에 탄 미키라는 인물의 이야기입니다!미키는 "죽어도 다시 새로운 몸으로 기억을 다운로드받아 살아가는 익스펜더블"이라는 직업을 가진 인물입니다. 평제 개인적인 점수는 3.1점 입니다. (5점 만점)주인공의 행동들과, 그 주위의 인물들의 행동 모두 이해가 갑니다.하지만, 악역이 다소 가벼운 언행들과 재미있을것 같은 상황들이 모두 안나와서 아쉬운 부분이 계속 생겼어요.소설 원작으로 미키7을 영화로 만들었는데, 굳이 7을 17로 할 필요가 있었나 싶네요.참고로 제 개인적인 의견인데, 영화가 2시간..
고구려 - 광개토대왕, 장수왕, 고국천왕 진대법, 소수림왕 - 고국천왕 2세기故(고): 옛날, 과거, 돌아가다. 國(국): 나라. 川(천): 내, 강, 흐름."옛 나라의 강을 잇는 왕" 또는 "옛 나라를 되살린 왕". 고구려의 기틀을 다진 왕으로, 강역(영토)을 회복하거나 유지한 업적을 상징.진대법 (흉년일때 나눠주고, 수확철때 돌려받는다 _대출), 구휼제도(백성들을 구원한다), 을파소가 했다?소수림왕 4세기小(소): 작다, 소소하다. 獸(수): 짐승, 동물. 林(림): 숲, 나무가 많은 곳."작은 짐승의 숲을 다스리는 왕" 또는 "숲속의 작은 생명을 이끄는 왕". 불교를 받아들이고 율령을 정비하며 국가 체제를 강화한 왕으로, "소수림"은 그의 소박하고 지혜로운 통치를 비유적으로 표현한 듯.불교수용, 율..
JKLja크-하 je크-헤 ji크-히 jo크-호 ju크-후ㄲ 발음으로 외래어에만 사용la라 le레 li리 lo로 lu루lla야 lle예 lli이 llo요 llu유julio 7월 (홀리오)kiwi 키위 (끼위)lluvia 비 (유비아) MNÑ ñ ma마 me메 mi미 mo모 mu무na나 ne네 ni니 no노 nu누ña냐 ñe녜 ñi니 ño노 ñu뉴madre 엄마 (마드레)noche 밤 (노체)España 스페인 (에스빠냐) Hasta luego 나중에 봐Hasta ~까지luego 나중에 Hasta pronto 곧 보자Hasta mañana 내일 봐mañana 내일 Chao 잘 가Adios 잘 가 vista 시각Hasta la vista 곧 봐