[카테고리:] TODAY-PICK

  • ipad) Playgrounds – 코드 연습 및 앱 만들기

    ipad) Playgrounds – 코드 연습 및 앱 만들기

    요즘 푹 빠진 것 중에 하나.

    ipad 에서 프로그래밍 코드과 관련해서 연습해볼 수 있는 playground 앱이다.

    변수 알아내고, 반복문 만들고, 함수만들고, 루프문 만들고, 인스턴트 불러오고, 이런 과정을 게임을 하듯이 재밌게 만들어나가는 과정.

    내가 짠 코드를 저기 화면 안의 주인공들이 움직이는 모습을 보는 게 상당히 재미있다. 심지어 코드를 돌리면 마지못해 한다는 듯이 한 숨도 쉬는 데 엄청 귀엽기도 하면서 웃기기도 했다ㅋㅋㅋ

    프로그래밍이나 알고리즘이 어떻게 동작하는지 체험하듯이 해볼 수 있어서 상당히 재밌었다.

    ipad, ios 기반의 언어이니 프로그래밍 언어는 swift 언어이다. 하지만 swift를 몰라도 기본 개념 체험하는 것 정도를 경험해볼 수 있다.

    돌려보면서 상당히 재밌었다. 나름 뿌듯하기도 하고,

    사마귀? 같은 이미지의 봇도 있었고,

    다양한 캐릭터가 나와서 코드를 짜면 움직인다. 코드 시작하기 보면 논리 연산자, 변수, 유형, 초기화, 함수, 매개변수 등등이 있었다. 하나씩 마스터하면서 배워가면 좋다. 그리고 어른이들도 가끔 심심하면 와서 문제 풀어도 재밌다.

    아이패드는 있었지만, 이 앱은 한 번도 돌려본 적이 없었는데 처음 접하고 나니 신기했다. 코드 배우기 이런 게 있어서 뭐랄까 재미가 없을 거란 편견을 가지고 있었다. 프로그래밍 교육을 보면 코드 배우기 라고 하지만…. 대체로 leetcode 같이. 무슨 수능 출제하듯이 알고리즘 문제 몇 개 던져주고, 얼마나 빠른 시간 안에 푸느냐 이런 거 측정해서 엄청나게 재미없게 만들어둔 게 많아서 별로 좋아하지 않았는데. 이건 상당히 재밌었다.

    움직여! 라고 하면 사람에게 시키는 것처럼 알아서 판단해서 움직이는 것이 아니라,

    이쪽으로 한 칸 움직이고 왼쪽으로 돌아서 다섯번 반복해서 움직이는데 만약 보석이 나오면 카운트해서 줍고… 등등의 구체적인 시나리오를 코드를 통해 짜서 실제로 봇이 움직이는 것을 보는 것은 다르니까.

    얼마만큼 구체적으로 명령어를 짤 수 있는지. 다른 맵에서도 동일한 결과를 낼 수 있는 알고리즘을 직관적으로 만들어낼 수 있는지.

    가 프로그래밍의 묘미라고 생각한다. 그리고 뭘 만들어내는 건 상당히 재미있는 작업이다.

    개인적으로 요 캐릭터가 너무 귀엽다

    추가로, 플레이그라운드로 실제로 앱을 만들어서 출시할 수 있다고 한다. 그 쪽 스텝까진 가보지 않아서 모르겠지만…

    코드를 1도 모르는 사람에게 배울 수 있는 앱 추천한다면 이 앱도 추천 대상일 것 같다. 그냥 함수, 변수 에 관해서 코드 알려주는 것보다 직접 돌려보는 게 더 빠르게 배울 수 있으니까.

    반복 작업을 어떻게든 줄여보기

    틈틈이 풀어보면 재미지다. 아이패드가 있다면 꼭 한 번 해보시길 추천드린다.

  • 로지텍 k810, k811리뷰) 왜 단종되었는지

    로지텍 k810, k811리뷰) 왜 단종되었는지

    로지텍 k810, k811 블루투스 키보드를 사용하고 있습니다.

    k810은 2014년도? 2013년도 후반 쯤 샀던 걸로 기억해서 대략 9년 가까이 되어 가는데… 리뷰를… 최신 노트북도 아니고 9년 된 키보드 리뷰하는 이유는 이 키보드가 정말 좋기 때문에.

    그 때 당시 10만원 정도로 주고 샀던 걸로 기억합니다. 그 당시 기준으로는 상당히 고가의 블루투스 키보드였습니다. (그래도 그만큼 가치가 있는)

    중간에 키보드에 키에 문제가 있어서 한 번 교체한 것 빼고는 정말 오랜시간 쓰고 있는데, 키감도 정말 좋고, 작고 들고 다니기 편리해서 외부에 나갈 때 챙겨서 들고 다녔습니다. k810… 꼬질꼬질해보이는데 정말 오랜시간 쓴 키보드! 가볍고, 튼튼하고, 한 번 충전해두면 그 다음 충전 일을 까먹을 정도로 오랜시간 쓸 수 있는.

    뭔가 써본 사람들만 알 수 있는 키보드?

    k810
    k810

    k810과 k811의 차이점은 윈도우 용이냐 맥용이냐입니다.

    k810은 윈도우용! k811은 맥용입니다. 윈도우 로고와 command 로고가 있는 키보드를 볼 수 있습니다. 하지만 윈도우용이라도 맥으로 블루투스 연결해서 쓸 수 있습니다. window키를 command 로 인식해서 쓰면 되고 나머지 자판도 적당히 감으로 맥용 키보드 처럼 쓸 수 있습니다. 그런데 아이패드는 윈도우 용인 k810보다는 맥용 키보드 k811을 좀 더 인식을 잘 되는 듯합니다. (특히 playground 코드 짤 때 어쩔 땐 한글 인식이 이상하게 됨!)

    한글과 영어가 동시에 있는 한글 자판용… k810은 한글자판을 팔 던 때에 샀던 거라서 한글 자판이고, k811을 살 때는 품절? 판매 중단? 절판? 단종? 이라서 한글 자판 없이 영문 자판이 있는 키보드를 구매하게 되었습니다. 키보드 관련해서 주절주절 거리고 있어서 도대체 이 키보드에 대해서 포스팅을 할 정도로 쓸 게 많나 싶지만.

    k811

    저는 이 키보드를 정말 좋아합니다! 엄청 잘 만든 것 같은데 도대체 왜 단종되었는지 이해할 수 없습니다.

    몇 년 쓸 만큼 오래 써서 그런가? 란 생각도 했습니다. (너무 잘 만들어서 단종시킨 건지) 그리고 실용성이 상당히 뛰어나다고 생각합니다. (솔직히 맥 쓸 때 맥에서 주는 매직 키보드 보다 로지텍 키보드 이걸 쓰겠… )

    이해 되지는 않지만, 여전히 잘 쓰고 있습니다. 내년 되면 10년 째 쓰게 되는데, 기계를 처음 살 때는 아예 가격을 조금 들이더라도 좋은 제품을 쓰는 게 장기적으로 봤을 때는 좋다고 생각합니다. 그 중 하나가 이 키보드였습니다.

    이렇게… 정말 오래된 키보드 리뷰 끝 🙂

  • 자유와 존엄을 넘어서(Beyond freedom and dignity)

    자유와 존엄을 넘어서(Beyond freedom and dignity)

    B.F.Skinner의 저서 중 자유와 존엄을 넘어서라는 책이 있다.

    맨 처음 이 책을 읽었을 때 여러모로 신선하고 충격적이었다. 일단 정말 논리적인 글이고, 생각하는 방식과 바라보는 관점이 달랐다. 그리고 이 사람 천재구나. 라는 걸 책에서 느낄 수 있다. 그리고 구글링으로 beyond freedom and dignity를 하면 무료 파일들이 많이 풀려 있어서 읽어볼 수 있다. 원서이긴 하지만,

    스키너의 대단한 점은,

    사람의 마음, 의지… 내부의 어떤 힘에만 기대서 무언가를 이루어내는 걸 과학적인 관점에서 조목조목 반박했다는 점이다.

    퇴근 후에 글을 써야지. 라고 뒹굴 거리다보면. 그래! 난 의지의 힘으로 글을 쓰겠어! 라고 외치고 책상 앞에 앉을 수도 있다. 그런데 그게 쉽지 않다는 걸 안다.

    무언가 우울해지면. 그래. 마음을 이해하고 다시 다 잡자. 과연 그럴까.

    제일 효과적인 방법은 퇴근 후에 바로 집에 들어가지 않고 도서관이나 집중할 수 있는 장소로 이동하는 것이다. 아무리 피곤하고 지쳐도 그런 ‘장소’에 있으면 한 자라도 더 보게 되니까.

    전략적으로 상황과 행동을 조작하는 일은 필요하다. 그리고 생선가게에서 고양이가 지나치고 있다면 고양이에게 너의 의지의 힘으로 생선을 건들지 말아줘. 라고 할 수는 없다. 먼 곳으로 쫓아 보내버리는 게 좋다. 물론 사람은 고양이가 아니지만,

    강한 유혹이 있을 때 얼마만큼 그걸 잘 이겨내고 견뎌낼 수 있을까.

    사실 생각과 감정, 성격적 특성, 의지 같은 것은 모호하기 그지 없다.

    사람을 정의하는 중요한 요소임은 틀림없지만 그것만으로는 충분하지는 않는다.

    책에서도 예를 들었듯,

    전쟁은 인간의 ‘마음’에서 시작되고, 사람의 마음 속에 있는 ‘죽음의 본능, 타나토스’같은 마음의 힘이 전쟁으로 이끌고~ 그 다음 단어는 ‘절망감’, ‘자존감’, ‘솔선수범’, ‘좌절감’, ‘목적의식’, ‘소외감’… 이런 용어로는 사람들의 문제를 해결할 수 없다.

    넛지라는 개념이 있다. 자신도 모르게 어떤 행동을 이끄는 아주 작은 움직임인데, 소변기에 파리 스티커를 붙였더니 소변기에 소변이 사방으로 튄 자국들이 이전보다 줄었고, 발자국 스티커를 붙였더니 길을 덜 헤매고,

    사람의 행동의 원리, 행동의 기술 등을 좀 더 연구해서 강구하는 편이 파국적인 선택을 낳는 행동을 방지할 수 있다고 생각한다. 생선을 너무 좋아하는 특성을 가지고 있는 고양이에게, 당장 오늘 팔아서 생계를 유지할 생선을 코 앞에 들이대는 행동을 방지하는 것이다.

    주말에 한 두 시간이라도 뭔가 생산성 있는 걸 하고 싶으면 그 행동을 하지 않으면 안되게 끔 하는 상황을 조성하는 게 ‘의지력’에 기대는 것보다는 더 합리적이다.

    조작적 조건형성 같은 프레임을 만드는 것이다.

    쥐가 특정 장소로 이동하면 먹이를 주거나 전기 충격을 주는 보상을 통해서 행동을 형성하는 것이 조작적 조건형성인데, 스키너는 이러한 조작적 조건형성 용어로 많이 알려져 있다.

    스키너는 사람들이 가지고 있는 문제를 해결하는 데에는 아마도 심리적인 원인에 집중하는 것보다 보상, 처벌 등의 조건을 통해서 해결할 수 있다고 보는 쪽이다.

    실제로 뭔가를 이루어내거나 만들려면 그에 맞는 상황을 만들어주고 좀 더 긍정적인 행동을 하게끔 유도하는 게 더 낫다.

    이 책을 읽고… 이번 주말에는 한 두 시간은 카페에 가야지. 그럼 뭐라도 더 하나를 하겠지ㅎㅎ

  • Let My Light Shine

    Let My Light Shine

    I scorched the earth with my talent

    and

    I let my light shine.

    -Andre Leon Talley

    나는 내 재능으로 땅을 빛으로 그을게 만들고,

    내 빛이 빛나도록 했다.

    scorched 를 searched 라고 잘못읽고 쓰다가 다시 오타 발견했다.

    그런데 search라고 보고 읽어도 멋지지 않을까라고 생각했다.

    I searched the earth with my talent. 이라고 해도 내 재능과 함께 지구를 찾았다. 그리고 내 빛이 빛나도록 했다. 이런식으로 이해해도 멋진 것 같음.

  • 리뷰) 빠르게 실패하기!

    리뷰) 빠르게 실패하기!

    행동하라

    이 세상에는 사랑과 감사에 굶주린 사람이 빵에 굶주린 사람보다 더 많습니다. – 마더 테레사

    …책 속에는 왠지 모르게 마음에 남는 마더 테레사 명언도 있었다.

    퇴근 후에 가판대에 있는 책을 하나 집어들었다. 책 읽는 거 좋아. 그리고 오늘은 월급날이기도 하니 책을 구매했다. (덤으로 주식도 사고)

    빠르게 실패하기! 라는 문구도 강렬하기도 하고 해서 동기부여도 될 것 같았다.

    실패하기 하면 떠오르는 게 나에겐 운동이 생각이 난다. 3개월 헬스권..ㅋㅋㅋ 헬스권을 끊다가 한 번 가고 안가서 아예 안하고 있다가 어느날 운동을 정말 필요로 의해서 하기 시작했다. 맨 처음은 목과 어깨였다. 팔 저림이 있었다. 약간의 목 디스크도 있었고. 나는 장시간 컴퓨터를 봐야 하기 때문에, 매일 매일 앉아 있는 게 어쩔 수 없었다. 정형외과든 신경외과든 병원가고 도수치료하고 약을 먹어도 그닥 나아지지 않았다. 노트북을 높게 올려다보게 끔 설치하기도 하고, 몇 일동안 컴퓨터를 아예 안보기도 하고.

    그러다가 필라테스 1:1 강의를 신청했다. 강사님은 나에게 1주일에 한 번으로는 안될 것 같고 1주일에 2-3번 정도는 와야 한다고 하셨다. 하지만 3개월 헬스권의 실패도 있고… 2-3번은 정말 무리였고 일주일에 딱 1번, 1시간이였다. 사실 그 시간도 그 때 당시 내가 생각할 땐 터무니 없는 적은 시간이라고 생각했었다. 한 6개월 정도 지나니. 강사님이 그래도 가랑비에 옷이 젖듯이 뭔가 체형이 좋아지고 있네요. 라고 했다. 몸이 약간 좋아졌단 걸 느꼈다. 체중은 물론 전혀 변화는 없었다. 그렇게 또, 1년이 지났고, 그럭저럭 뭔가 습관처럼 익숙해져서 운동 한지 벌써 2년이 지났고, 여전히 1주일에 1번 운동을 받는다. 난 이렇게 꾸준히 운동을 한 효과가 있다는 걸 느낀다…

    책 앞쪽에는 이런 질문들이 있었다.

    당신은 버킷리스트를 작성해 본 적이 있나요?

    이루고 싶은 성공이나 목표를 위해 계획을 세워 본 적이 있나요?

    그것을 이루기 위해 5년, 3년, 1년의 실행 목록들을 적어봤나요?

    하지만 너무 거창하게는 말고,,, Slow… Take it easy…

    작은 행동부터 해야 한다고 말하고 있다. 맨 처음에는 작고 즐거운 일들로 시작하는 걸로.

    즐겁지 않은 일은 계속 지속해나가기 어렵다고 한다. 본문에선 변호사가 되려는 사람의 예가 나왔는데,

    변호사가 되는 게 얼마나 흥미로울지에 대해 말하는 목소리가 마음에 들지 않는 남자와 데이트한 얘기를 들려주는 것 같았다.

    상대에 대한 나쁜 말을 꺼리면서 매너는 훌륭하더라고요 라고 말한다.

    그리고 행동하지 않는 이유로는 과정보다는 결과로만 칭찬을 받는 경우. 성적을 받을 때, 지능을 칭찬한 아이 vs 과정을 칭찬한 아이에게 그 다음 문제를 고르라고 했을 때 지능을 칭찬받은 아이가 일부로 쉬운 문제를 고른다고 한다.

    주된 관심사가 자신이 얼마나 똑똑하고 유능한지를 증명하는 데 있다면,

    그 자체가 지금 당장 행동하는 것에 장애물이 될 수 있다고 책에서는 말한다.

    사람들은 자신의 능력이나 재능이 의심되면 잘하는 것만 하려는 경향을 보인다…

    자신의 전문성이나 능력에 의구심을 던질만한 행동은 절대 하지 않는다.

    행동하지 않고, 나중에 해야지. 조금 있다가 해야지… 라고 미루는 행동의 큰 문제점은…

    미래에 큰 보상만을 바라게 된다.

    인데, 인상에 남았다.

    그러니까 당신의 미스터리한 기부니를 믿지 말라.

    마지막으로,

    더 잘 살기 위해서 더 실패하기!

    나태해지고 싶을 때 읽으면 좋은 책이다.

    마음을 다잡게 만들어주는 책.

  • Linux Ubuntu22.04 Go 언어 설치하다

    Linux Ubuntu22.04 Go 언어 설치하다

    Go 언어와 Rust 언어가 그렇게 핫하다길래…

    파이썬과 함께 go나 rust도 한 번 배워보라고 하셔서 둘 중 고민하다가 그나마 가장 쉽다는 Go부터 파고들려고 한다.

    저 귀여운 동물은 무엇인가

    우선 Go 웹사이트에 가서 다운로드 받기 링크는 하단에

    https://go.dev/learn/

    여기에서 download하면 리눅스용 tar 파일을 받을 수 있었다.

    윈도우용이랑 맥용, 리눅스용, source 파일도 있었다. 맥용이 친절하게 인텔 맥용이랑 m1맥용을 따로 만든 게 인상 깊었다.

    여기에서 리눅스용을 받고 저기 맨 에 installation instructions.부분을 클릭했다.

    installation 방법이 적혀 있었다. 이대로 치면 에러나더라. 호…

    1. 해당 tar파일을 받은 폴더로 이동해서

    cd Downloads/

    보통 다운로드 파일이니 다운로드 폴더로 이동하고

    2 저기 rm -rf는 관리자 권한으로 실행해야 한다.

    sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.19.2.linux-amd64.tar.gz

    비밀번호 입력하는 란이 있으니 비밀번호 입력

    3 .profile 을 열어서 경로 설정해주기

    nano 열어서 했었는데, 그냥 vim으로 해도 된다.

    홈디렉토리로 이동한 후,

    4 vim .profile해서

    하단에 저 코드를 입력하고

    5 source .profile

    6 그 다음에 go version으로 확인하니 설치되었단 걸 확인했다.

    그리고 돌아가는 걸 확인하기 위해서

    여기 샘플 코드가 있어서 원하는 폴더로 이동 후

    touch hello.go

    만들고

    vim hello.go

    로 들어가서

    그대로 입력해주고 저장했다.

    그 다음으로 터미널에서

    go run hello.go를 쳐주면 되었다.

    그냥 python3 생각해서 python hello.py 처럼 go hello.go 로 쳤다가 에러가 났다.

    go run hello.go 

    였고,

    실행 파일로 빌드하는 건

    go mod init example/hello
    go build
    만들어진 (초록색) 실행 파일

    로 치면 실행파일이 바로 만들어져서

    ./hello

    등으로 치면 실행 되었다.

    설치 끝.

  • Mac) 터미널 꾸미기, iterm2, 터미널 사용자 이름 변경하기

    Mac) 터미널 꾸미기, iterm2, 터미널 사용자 이름 변경하기

    맥북 터미널 사용자 이름을 좀 변경하고 싶어졌습니다. 예전부터 변경하고 싶었는데 이번 기회에 좀 더 바꿔보았습니다.

    Mac 터미널 사용자 이름 변경

    원래는 사용자 이름@사용기기macbook air~ $ ~~ 이런 형태로 되어 있는데 너무 길기도 하고, 이름도 좀 변경해보고 싶었습니다.

    1. 터미널 – 환경설정

    2. 프로파일 – 셀

    에 들어가서 시동 명령어 실행에 export PROMPT=”명령프롬프트에표시되는이름($ 등등)”; clear;

    을 치고 저장하고 다시 들어가면 변경되어 있는 걸 볼 수 있습니다.

    이렇게 꾸미는 것 말고 좀 더 색깔이나 날짜나 이런 것 등등도 집어넣을 수 있을 것 같습니다.

    일단 터미널은 이정도로 수정하고, 실제 터미널로 좀 더 자주쓰는 iterm2에서도 사용자명을 바꿔보기로 했습니다.

    Mac iterm2에서 사용자명 변경

    다음과 같이 수정했습니다. 최종은 맨 하단 란,

    .zshrc 에서 수정했습니다. 수없이 많이 수정했던 흔적들… 이런 거 하면서 약간 재밌다고 생각합니다ㅋㅋㅋ 꾸미는 게 시간 있을 때는 은근히 즐겁더라구요. 시간없으면 귀찮은 작업일 뿐이지만,

    코드는 다음과 같이 수정했습니다.

    PROMPT="%S%B%F{yellow}[summerorange]%f%b%s%S%F{cyan}[%1~]%f%s%S%F{red}[%#]%f%s%S%F{blue}[%D]%f%s%S%F{51}[%T]%f%s"" "

    어느 곳에 적어도 상관없는데 전 주로 하단에 작성합니다. 그리고 mac 카탈리나 os는 .zshrc입니당. vim .zshrc했는데 아무 코드도 적혀져 있지않다면 .bash인지도 한 번 확인을 해보시길.

    PROMPT = “여기에 적힌 게 프롬프트 창에 뜹니다. $ 만 적으면 $만 뜸”

    처음에는 PROMPT= “[사용자이름][working directory][관리자인지 아닌지][날짜][시간]”

    이런 형태로 작성했습니다.

    [] 요 괄호는 없어도 상관없습니다. 개인적으론 깔끔한 게 좋아서 [] 붙였을 뿐.

    %n -> 사용자 이름을 표시합니다

    %m -> 맥북 모델 이름이 표시됩니다 ~ macbook~air~ 이런 형태

    %1~ -> 현재 작업중인 디렉토리 명이 표시됩니다. Downloads 이런 식으로

    %# -> 만약 루트 권한으로 작업하면 # 이 표시되고, 아니라면 일반적으로는 %로 표시됩니다

    %T -> 현재 시간을 24시간을 형태로 표시

    %t -> 12시간 형태로시간이 표시

    %D -> 년도-월-일 형태로 표시

    %W -> 월/일/년도 형태로 표시

    색상 넣기:

    PROMPT = ‘%F{yellow}%n%f”

    이런식으로 한다면

    프롬프트에 사용자 이름이 노란색으로 표시됩니다. %F 가 색상을 넣을 처음 위치를 표시하고 %f는 마지막 위치를 지정하기 때문에 %F ~ %f 사이에 {색상 이름}과 해당 내용을 넣어줍니다

    만약 굵은 글씨로 표시하고 싶다면

    %B ~ %b로 표시

    PROMPT = ‘%B%F{yellow}%n%f%b’

    밑줄 표시는 %U ~ %u

    요런 하이라이트는

    %S ~ %s

    으로 표시합니다.

    그렇게 이것 저것 테스트 해보니 이런 형태로 되었습니다.

    맨 마지막의 ” “으로 공백 넣은 것은 명령어 칠 때 [시간]명령어 치면 불편하니 [시간] 명령어 이런식으로 한 칸 뛰어서 치려고 넣었습니다.

    PROMPT=”%S%B%F{yellow}[summerorange]%f%b%s%S%F{cyan}[%1~]%f%s%S%F{red}[%#]%f%s%S%F{blue}[%D]%f%s%S%F{51}[%T]%f%s”” “

  • 두려움을 가라앉히는 가장 좋은 방법은

    두려움을 가라앉히는 가장 좋은 방법은

    불안을 줄이는 법

    “Nothing diminishes anxiety faster than action.”

    고등학교 때, 영어 문장을 해석할 때 앞에 부정문이 나오면 어떻게 해석해야하는지 늘 어려워했던 기억이 납니다.

    Nothing이 앞에 있잖아. 그럼 어떻게 해석해야하지? 반대로 읽으면 된다고 하는데 그 말도 어려워했었습니다.

    diminishes 줄이다. anxiety를… faster than action 행동보다 더 빠르게?

    조합해보면 행동이 불안을 가장 빠르게 줄인다라는 의미가 되네? 이렇게 야매로 영어를 하나씩 해석했던 기억이 새록새록

    행동보다 더 빠르게 불안을 줄일 수 있는 건 아무것도 없다. 입니다.

    오늘도 퇴근 후에 글 하나씩 완료 했습니다. 끗.

  • Python) Reeborg’s World Maze – 알고리즘

    Python) Reeborg’s World Maze – 알고리즘

    일요일에는 Maze 부분 못 풀었는데 정답 보기는 싫고 어떻게든 알아서 풀어보고자 했고,

    퇴근하고 와서 다시 Maze 부분 붙들고 풀다가 풀었습니다.

    뭐 만들 때 안 풀리면 하루 잠을 자고 다음 날 풀거나 산책하고 와서 풀거나, 커피 마시고 돌아와서 풀고, 수학 문제처럼 머리 속에 두고두고 있다가 어떻게 하다보면 풀리는 것 같습니다.

    Reeborg’s World – Maze 편

    python 함수 move() 를 넣으면 움직이고, turn_left()하면 왼쪽으로 돕니다.

    front_is_clear(), wall_in_front(), right_is_clear(), wall_on_right(), at_goal() 이 부분은 True / False 로 반환 받을 수 있습니다받는 부분입니다.

    while로 루프 써서,

    저 미로를 로봇이 도착지점까지 올 수 있도록 코드를 짜는 것이 요 미로 편이였습니다.

    미로 풀기는 하단 링크에서 할 수 있습니다.

    https://reeborg.ca/reeborg.html?lang=en&mode=python&menu=worlds%2Fmenus%2Freeborg_intro_en.json&name=Maze&url=worlds%2Ftutorial_en%2Fmaze1.json

    주어지는 미로 속에서 로봇이 잘 헤쳐나갈 수 있도록 많은 경우의 수를 고려해서 코드를 짜는 걸 알고리즘이라고 합니다.

    로봇이 보는 곳은 동서남북 중 랜덤으로 방향이 정해집니다.

    풀었던 코드:

    이렇게 저렇게 풀어보다가 풀었던 코드는 이 방법이었습니다.

    def turn_north():
        while is_facing_north() != True:
            turn_left()
    
    def turn_west():
        turn_north()
        turn_left()
        turn_left()
        turn_left()
            
    turn_west()            
    while at_goal() != True:
        if front_is_clear() and wall_on_right():
            move()
        if wall_in_front() and right_is_clear():
            turn_left()
            turn_left()
            turn_left()
            move()
        if wall_in_front() and wall_on_right():
            turn_left()
        if front_is_clear() and right_is_clear():
            turn_left()
            turn_left()
            turn_left()
            move()
        elif front_is_clear():
            move()

    이 중에서 약간 핵심이라고 생각하는 조건이 front_is_clear() and right_is_clear()일 때 어느 방향으로 움직일 지 설정해 주는 거였습니다. 미로를 푸는 방법은 벽을 따라 오른쪽으로 쭉 돌다보면 나가는 곳이 보일테니 오른쪽으로 가도록 설정을 하고, 하지만 벽이 막혀 있다면 왼쪽으로 틀어주는 방법. 으로.

    이렇게 저렇게 실험하 듯 짜다보니 코드가 정리되지 않았는데,

    저 turn_left() 3번 쓰는 걸 함수로 묶는

    def turn_right():
       turn_left()
       turn_left()
       turn_left()

    대략 어떻게 움직일지 동작하는 걸 구현했지만 좀 더 깔끔한 코드 리팩토링이 필요할 것 같네요.

    깊이 우선 탐색, 넓이 우선 탐색 이런 걸 뭔가 몸으로 체득하듯이 코드를 짜는 것 같아서 저 사이트 정말 유용하다고 생각합니다.

    문제는 답지 없이 꼭 풀고. 어떻게든 혼자 힘으로 풀어내는 걸 추천합니다 🤖🤖🤖🤖🤖

    굳었던 머리가 말랑해지는?? 좋아지는 느낌도 듭니다.

    치매 예방! 두뇌 회전!

    (무슨 광고 같아ㅋㅋㅋㅋ)

  • tistory 현재 상황 22.10.17

    tistory 현재 상황 22.10.17

    엄… 티스토리도 일단 들어가는 지는데,

    완전히 복구된 건 아닌 듯합니다.

    15일은 아예 접속이 안되었고, 어제 저녁(16일)은 관리자 페이지에 아예 안들어가졌고.

    지금은 뜨기는 하는데 파비콘을 불러오지는 못하는 것 같네요.

    음… 그리고 포스팅이 모두 m 으로 시작하는 주소로 봐서는 모바일 형식으로 불러와 집니다.

    가로 길이를 모니터 크기에 맞춰서 max로 늘렸는데 여전히 모바일 형태로 나타납니다.

    반응형 부분은 아직 안 먹히는 것 같단 생각이 듭니다.

    블로그… 이전에도 다음카카오는 블로그 운영에 관심을 점점 안 두고 있다는 느낌이 강해서 좀 슬퍼지려고 했는데…🥲

    구글 검색창으로 이것저것 치면 개발과 관련해서 나름 양질의 글은 티스토리가 그래도 선방하는 편이라고 생각했습니다.

    궁금한 거 구글 검색창에 치면 그래도 나름 이런 저런 방향이나 정보 글은 티스토리가 많을 거예요. 네이버는 잘 안들어가서 모르겠지만요.

    아예 접속이 안되다보니 좀 멘붕이 왔습니다. 열심히 포스팅해서 올려놓은 글들이니까요.

    티스토리 방문자 수 추이

    15일과 16일 부분은 아예 접속이 안되었던 것 같은데 방문자 수가 있어서 신기했습니다. 0으로 예상했었거든요.

    그리고 반응형 웹 부분이 확실히 안되니 구글 애드센스 부분도 공란이 많이 보입니다.

    사실 들어가지는데 뭐 건드리는 게 겁납니다.

    (열심히 복구하시는 엔지니어 분들 화이팅🥲)

error: Content is protected !!