{"version":1,"pages":[{"id":"-MO2-0Pv1YnTCrLF3Bgg","title":"README.md","pathname":"/blog","siteSpaceId":"sitesp_VsOvw","description":"안녕하세요 남상혁입니다."},{"id":"-MOWs2a3IoYnJH2Le3_3","title":"ft_transcendence","pathname":"/blog/42seoul-1/ft_transcendence","siteSpaceId":"sitesp_VsOvw","description":"초월","breadcrumbs":[{"label":"프로젝트"}]},{"id":"-MS8mEMGHUfgrOdIBrFj","title":"설계","pathname":"/blog/42seoul-1/ft_transcendence/undefined","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"프로젝트"},{"label":"ft_transcendence"}]},{"id":"-MSEJPZF4X1BoNqUcUvt","title":"0. 프론트 디자인","pathname":"/blog/42seoul-1/ft_transcendence/undefined/0.","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"프로젝트"},{"label":"ft_transcendence"},{"label":"설계"}]},{"id":"-MSEIwmn5BKuufTVlh7i","title":"1. BackboneJS 뷰 객체","pathname":"/blog/42seoul-1/ft_transcendence/undefined/1.-backbonejs","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"프로젝트"},{"label":"ft_transcendence"},{"label":"설계"}]},{"id":"-MSEJ4pNpyKPsUU3Ntq9","title":"2. API 설계","pathname":"/blog/42seoul-1/ft_transcendence/undefined/2.-api","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"프로젝트"},{"label":"ft_transcendence"},{"label":"설계"}]},{"id":"-MSENmt_KC5S3HmXSCXs","title":"3. 레일즈 라우팅 구현","pathname":"/blog/42seoul-1/ft_transcendence/undefined/3.","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"프로젝트"},{"label":"ft_transcendence"},{"label":"설계"}]},{"id":"-MSEOICti_ZVuu64LyEF","title":"4. DB 설계","pathname":"/blog/42seoul-1/ft_transcendence/undefined/4.-db","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"프로젝트"},{"label":"ft_transcendence"},{"label":"설계"}]},{"id":"-MW4ctzuoMqKUconLETk","title":"5. 채널 설계","pathname":"/blog/42seoul-1/ft_transcendence/undefined/5.","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"프로젝트"},{"label":"ft_transcendence"},{"label":"설계"}]},{"id":"-MfDGf7zsDNVKUyGixv5","title":"slab-saver","pathname":"/blog/42seoul-1/slab-saver","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"프로젝트"}]},{"id":"-MfG0rJlmMn4bWLCAweq","title":"react-payment","pathname":"/blog/42seoul-1/react-payment","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"프로젝트"}]},{"id":"-MVgNFg4n8D_TtREzU2-","title":"HTML, CSS","pathname":"/blog/undefined/html-css","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"}]},{"id":"-MfvpvgnMjsQ1GzSf2Xc","title":"GRID","pathname":"/blog/undefined/html-css/grid","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"HTML, CSS"}]},{"id":"-MVgNmqRCTHSDENlsRo6","title":"emmet","pathname":"/blog/undefined/html-css/emmet","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"HTML, CSS"}]},{"id":"-MVgNJo_05LHX0v_V9Ru","title":"position","pathname":"/blog/undefined/html-css/position","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"HTML, CSS"}]},{"id":"-MVgNZMSmq4u-a6BAYWc","title":"CSS Unit","pathname":"/blog/undefined/html-css/css-unit-7","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"HTML, CSS"}]},{"id":"-MW7xaekob1IdHCi5d0H","title":"단위 정리","pathname":"/blog/undefined/html-css/css-unit-7/undefined","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"HTML, CSS"},{"label":"CSS Unit"}]},{"id":"-MW7xiwi0LhnykUJx-q-","title":"기준을 정해보자","pathname":"/blog/undefined/html-css/css-unit-7/undefined-2","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"HTML, CSS"},{"label":"CSS Unit"}]},{"id":"-MW7yQbNmoKv5LPp1kSZ","title":"em의 정확한 기준은 뭐야?","pathname":"/blog/undefined/html-css/css-unit-7/em","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"HTML, CSS"},{"label":"CSS Unit"}]},{"id":"-MVgNbCbLJvswe4Ydhve","title":"flex","pathname":"/blog/undefined/html-css/flex","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"HTML, CSS"}]},{"id":"-MVkZdWCRRZsFowfEDoa","title":"NAVBAR 실습","pathname":"/blog/undefined/html-css/navbar","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"HTML, CSS"}]},{"id":"-MVzbSLuGAh1NuB4gYeX","title":"유튜브 화면 만들어보기","pathname":"/blog/undefined/html-css/undefined","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"HTML, CSS"}]},{"id":"-MO21mKfl_0XMb-lO-J1","title":"SQL","pathname":"/blog/undefined/sql","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"}]},{"id":"-MO6chUjJYj0_CKFqDa6","title":"이론","pathname":"/blog/undefined/sql/theory","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"SQL"}]},{"id":"-MO21sDaZrts75PGlTgJ","title":"1강 데이터베이스","pathname":"/blog/undefined/sql/theory/chapter1","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"SQL"},{"label":"이론"}]},{"id":"-MO21s52uR2vkAL3xyVl","title":"2강 다양한 데이터 베이스","pathname":"/blog/undefined/sql/theory/chapter2","siteSpaceId":"sitesp_VsOvw","description":"DBMS에는 여러 종류가 있따 데이터베이스의 사용 용도나 이를 제어하는 프로그래밍 환경 등 각각의 조건에 들어맞는 다양한 DBMS가 고안되었기 때문. DB중에서도 SQL로 데이터를 다루는 DB를 관계형 데이터베이스 라고 한다.","breadcrumbs":[{"label":"공부"},{"label":"SQL"},{"label":"이론"}]},{"id":"-MO21rtGbd11WijIU9-B","title":"3강 데이터베이스 서버","pathname":"/blog/undefined/sql/theory/chapter3","siteSpaceId":"sitesp_VsOvw","description":"많은 RDBMS가 클라이언트 - 서버 모델을 채택해 가동중","breadcrumbs":[{"label":"공부"},{"label":"SQL"},{"label":"이론"}]},{"id":"-MO6cyYQ3jcue14aW-lj","title":"명령어","pathname":"/blog/undefined/sql/practice","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"SQL"}]},{"id":"-MO6eOFVOvBXhfsM00ny","title":"DB 관리","pathname":"/blog/undefined/sql/practice/db","siteSpaceId":"sitesp_VsOvw","description":"DB를 생성하고 삭제하는 명령에 대해 학습합니다.","breadcrumbs":[{"label":"공부"},{"label":"SQL"},{"label":"명령어"}]},{"id":"-MO6eNsywxhnMY6MihYF","title":"TABLE 관리","pathname":"/blog/undefined/sql/practice/table","siteSpaceId":"sitesp_VsOvw","description":"테이블의 생성과 삭제, 열을 관리하는 명령에 대해 학습합니다.","breadcrumbs":[{"label":"공부"},{"label":"SQL"},{"label":"명령어"}]},{"id":"-MO6dt3cOHKf5DL0-o5F","title":"Constraints","pathname":"/blog/undefined/sql/practice/constraints","siteSpaceId":"sitesp_VsOvw","description":"제약들에 대해 학습합니다.","breadcrumbs":[{"label":"공부"},{"label":"SQL"},{"label":"명령어"}]},{"id":"-MO21r8ftp0y_3BH0he6","title":"SQL 명령어 - 1","pathname":"/blog/undefined/sql/practice/untitled-2","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"SQL"},{"label":"명령어"}]},{"id":"-MO21qSPW3ns7KmLyRTs","title":"SQL 명령어 - 2","pathname":"/blog/undefined/sql/practice/untitled-1","siteSpaceId":"sitesp_VsOvw","description":"JOIN, UNION, GROUP BY, HAVING 에 대해 학습합니다.","breadcrumbs":[{"label":"공부"},{"label":"SQL"},{"label":"명령어"}]},{"id":"-MO21on8ELPXH3Vuc7R_","title":"SQL 명령어 - 3","pathname":"/blog/undefined/sql/practice/untitled","siteSpaceId":"sitesp_VsOvw","description":"서브쿼리에 대해 학습합니다.","breadcrumbs":[{"label":"공부"},{"label":"SQL"},{"label":"명령어"}]},{"id":"-MO6d5yIMiMhyS0UnmKL","title":"SQL 명령어 - 4","pathname":"/blog/undefined/sql/practice/sql-4","siteSpaceId":"sitesp_VsOvw","description":"ANY, ALL, SELECT INTO, INSERT INTO SELECT 를 학습합니다.","breadcrumbs":[{"label":"공부"},{"label":"SQL"},{"label":"명령어"}]},{"id":"-MO6d3dbmJ8gIyRcYa0D","title":"SQL 명령어 - 5","pathname":"/blog/undefined/sql/practice/sql-5","siteSpaceId":"sitesp_VsOvw","description":"CASE, NULL에 대해 학습합니다.","breadcrumbs":[{"label":"공부"},{"label":"SQL"},{"label":"명령어"}]},{"id":"-MOWXxrYvMg2UzvTPlAG","title":"Ruby","pathname":"/blog/undefined/ruby","siteSpaceId":"sitesp_VsOvw","description":"루비 언어를 학습합니다.","breadcrumbs":[{"label":"공부"}]},{"id":"-MQ2VlIbYWeay0ecmO0S","title":"루비 객체와 클래스","pathname":"/blog/undefined/ruby/undefined","siteSpaceId":"sitesp_VsOvw","description":"'루비를 깨우치다' 책의 5장을읽고 정리했습니다.","breadcrumbs":[{"label":"공부"},{"label":"Ruby"}]},{"id":"-MOWYwWNrDv6kH8NeMKZ","title":"곡괭이","pathname":"/blog/undefined/ruby/1","siteSpaceId":"sitesp_VsOvw","description":"루비 언어를 학습합니다.","breadcrumbs":[{"label":"공부"},{"label":"Ruby"}]},{"id":"-MOWZA3RMmoFJmutu9h4","title":"Chapter2. Ruby.new","pathname":"/blog/undefined/ruby/1/chapter2","siteSpaceId":"sitesp_VsOvw","description":"간단히 루비 맛을 본다.","breadcrumbs":[{"label":"공부"},{"label":"Ruby"},{"label":"곡괭이"}]},{"id":"-MOWZP1kvPza7bVKNsdf","title":"Chapter3. 클래스, 객체, 변수","pathname":"/blog/undefined/ruby/1/chapter3","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"Ruby"},{"label":"곡괭이"}]},{"id":"-MOWZVmg_U4D8niwU33P","title":"Chapter4. 컨테이너, 블록, 반복자","pathname":"/blog/undefined/ruby/1/chapter4","siteSpaceId":"sitesp_VsOvw","description":"참 신기해","breadcrumbs":[{"label":"공부"},{"label":"Ruby"},{"label":"곡괭이"}]},{"id":"-MOZ_Eo4MtLnB10HbzQh","title":"Chapter5. 기능 공유하기","pathname":"/blog/undefined/ruby/1/chapter5.","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"Ruby"},{"label":"곡괭이"}]},{"id":"-MOZ_cksb6UmiuC3ENSF","title":"Chapter6. 표준 타입","pathname":"/blog/undefined/ruby/1/chapter6.","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"Ruby"},{"label":"곡괭이"}]},{"id":"-MOZ_kzi2aGHMyhTSUYN","title":"Chapter8. 메서드 파헤치기","pathname":"/blog/undefined/ruby/1/chapter8.","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"Ruby"},{"label":"곡괭이"}]},{"id":"-MWMU9xVJLbAEZBRsEt0","title":"Python","pathname":"/blog/undefined/undefined-2","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"}]},{"id":"-MWMUDXEp9tiNd9eTsi2","title":"유용한 링크","pathname":"/blog/undefined/undefined-2/untitled","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"Python"}]},{"id":"-MOpu-rIfMkhMakDwhys","title":"RubyOnRails","pathname":"/blog/undefined/rubyonrails","siteSpaceId":"sitesp_VsOvw","description":"ROB를 학습합니다.","breadcrumbs":[{"label":"공부"}]},{"id":"-MV4Zr7C_siyojx4f6D1","title":"아직 정리하지 못한 것들","pathname":"/blog/undefined/rubyonrails/undefined-4","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"RubyOnRails"}]},{"id":"-MVbCtehr1-pKLZ9jSIE","title":"RSPEC 을 이용한 테스트 완전 자동화","pathname":"/blog/undefined/rubyonrails/undefined-4/rspec","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"RubyOnRails"},{"label":"아직 정리하지 못한 것들"}]},{"id":"-MVbCOHcq81CAA26Jmul","title":"레일즈 이니셜라이징 과정","pathname":"/blog/undefined/rubyonrails/undefined-4/undefined-1","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"RubyOnRails"},{"label":"아직 정리하지 못한 것들"}]},{"id":"-MVbBs5fM7cecytIJ65b","title":"액션케이블 구체적으로 정리하기","pathname":"/blog/undefined/rubyonrails/undefined-4/undefined","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"RubyOnRails"},{"label":"아직 정리하지 못한 것들"}]},{"id":"-MVbC4UYxDDEMbe53DaR","title":"웹팩으로 자바스크립트 모듈 관리하기","pathname":"/blog/undefined/rubyonrails/undefined-4/untitled","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"RubyOnRails"},{"label":"아직 정리하지 못한 것들"}]},{"id":"-MVb3kkCNBpFUM_0oJDL","title":"ACTIVE JOB","pathname":"/blog/undefined/rubyonrails/active-job","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"RubyOnRails"}]},{"id":"-MVb3xCt-MMd9I3WQbWU","title":"액티브잡의 기본","pathname":"/blog/undefined/rubyonrails/active-job/undefined","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"RubyOnRails"},{"label":"ACTIVE JOB"}]},{"id":"-MVb4MpSLIq3fbGiwvGT","title":"실전! 액티브 잡을 이용한 스케쥴링","pathname":"/blog/undefined/rubyonrails/active-job/undefined-2","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"RubyOnRails"},{"label":"ACTIVE JOB"}]},{"id":"-MVbA0PC26Z-LLJBovYN","title":"서버를 껏다 키면 스케쥴링 된 이벤트가 사라진다!","pathname":"/blog/undefined/rubyonrails/active-job/undefined-1","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"RubyOnRails"},{"label":"ACTIVE JOB"}]},{"id":"-MV4ZXdyiNibkfPekegy","title":"ACTION CABLE","pathname":"/blog/undefined/rubyonrails/undefined-6","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"RubyOnRails"}]},{"id":"-MShkBI40l5yo-Df13p6","title":"액션케이블 Consumer를 이용해서 문제 해결","pathname":"/blog/undefined/rubyonrails/undefined-6/consumer","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"RubyOnRails"},{"label":"ACTION CABLE"}]},{"id":"-MSwmP8l4Bvt_ZyLwhVK","title":"액션케이블 연결 순서","pathname":"/blog/undefined/rubyonrails/undefined-6/undefined-4","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"RubyOnRails"},{"label":"ACTION CABLE"}]},{"id":"-MV4ZI5yFUU0YRKJlyRM","title":"ACTIVE STORAGE","pathname":"/blog/undefined/rubyonrails/undefined-2","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"RubyOnRails"}]},{"id":"-MVH7hkO9QMvUfrxnSO4","title":"모델","pathname":"/blog/undefined/rubyonrails/undefined-7","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"RubyOnRails"}]},{"id":"-MUnJwHaRiFv9cSU-TQT","title":"validation","pathname":"/blog/undefined/rubyonrails/undefined-7/validation-1","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"RubyOnRails"},{"label":"모델"}]},{"id":"-MVMahcLCHpW0FUBZDLo","title":"seeds 데이터 validation 스킵","pathname":"/blog/undefined/rubyonrails/undefined-7/validation-1/seeds-validation","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"RubyOnRails"},{"label":"모델"},{"label":"validation"}]},{"id":"-MVH8vwNPXH7A_eBfvvY","title":"validation 검사가 save, update, create 모든 경우에 일어난다","pathname":"/blog/undefined/rubyonrails/undefined-7/validation-1/validation-save-update-create","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"RubyOnRails"},{"label":"모델"},{"label":"validation"}]},{"id":"-MUsWAD43Mb5A-12HIy0","title":"validator 클래스","pathname":"/blog/undefined/rubyonrails/undefined-7/validation-1/validator","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"RubyOnRails"},{"label":"모델"},{"label":"validation"}]},{"id":"-MTzte7L9wuci9n6VBoK","title":"커스텀Validation","pathname":"/blog/undefined/rubyonrails/undefined-7/validation-1/validation","siteSpaceId":"sitesp_VsOvw","description":"너무 오랜만이다...","breadcrumbs":[{"label":"공부"},{"label":"RubyOnRails"},{"label":"모델"},{"label":"validation"}]},{"id":"-MUnJIqGc-jXKVleBYU3","title":"validates format(정규표현식)","pathname":"/blog/undefined/rubyonrails/undefined-7/validation-1/validates-format","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"RubyOnRails"},{"label":"모델"},{"label":"validation"}]},{"id":"-MT6L7eZktrQ1Bwd0ret","title":"액티브레코드 find의 다양한 활용","pathname":"/blog/undefined/rubyonrails/undefined-7/find","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"RubyOnRails"},{"label":"모델"}]},{"id":"-MVWhZJwvgVqX3_LPfw1","title":"한 레코드에 동시 접속 막자!! with_lock","pathname":"/blog/undefined/rubyonrails/undefined-7/with_lock","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"RubyOnRails"},{"label":"모델"}]},{"id":"-MSYLE0vTul-auxsv_rw","title":"레일즈 where 사용법","pathname":"/blog/undefined/rubyonrails/undefined-7/where","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"RubyOnRails"},{"label":"모델"}]},{"id":"-MScce_Gsv5g22pliEK6","title":"레일즈에서 모델 관련 이슈","pathname":"/blog/undefined/rubyonrails/undefined-7/undefined-3","siteSpaceId":"sitesp_VsOvw","description":"컨트롤러는 가볍게 모델은 두껍게","breadcrumbs":[{"label":"공부"},{"label":"RubyOnRails"},{"label":"모델"}]},{"id":"-MSEHGmuzTOw0moNM5bY","title":"모델이름바꿀때명심할것","pathname":"/blog/undefined/rubyonrails/undefined-7/undefined-1","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"RubyOnRails"},{"label":"모델"}]},{"id":"-MT1GaAvq5WZ8dE2rB24","title":"모델의 includes 메서드","pathname":"/blog/undefined/rubyonrails/undefined-7/includes","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"RubyOnRails"},{"label":"모델"}]},{"id":"-MVH7lDRitVIDJWtbbGc","title":"연관 모델을 다른 이름으로 설정하고 가져오기","pathname":"/blog/undefined/rubyonrails/undefined-7/undefined","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"RubyOnRails"},{"label":"모델"}]},{"id":"-MVbBQ5SJAuXsHFX2Sg0","title":"기본 상식","pathname":"/blog/undefined/rubyonrails/undefined-3","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"RubyOnRails"}]},{"id":"-MP8oIDCg8Rfxf-IRdQE","title":"form으로 전달되는 params를 분석해보자","pathname":"/blog/undefined/rubyonrails/undefined-3/form-params","siteSpaceId":"sitesp_VsOvw","description":"동작하는 순서를 따라가면서 분석함","breadcrumbs":[{"label":"공부"},{"label":"RubyOnRails"},{"label":"기본 상식"}]},{"id":"-MSYJNS7xi2iyZh8mDY0","title":"StrongParameter 쿼리 배열 받기","pathname":"/blog/undefined/rubyonrails/undefined-3/strongparameter","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"RubyOnRails"},{"label":"기본 상식"}]},{"id":"-MPU9k0PaYOaDofJTpHE","title":"view helper로 디버깅 하는 방법","pathname":"/blog/undefined/rubyonrails/undefined-3/view-helper","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"RubyOnRails"},{"label":"기본 상식"}]},{"id":"-MT5ZnpBJ8EDRHiHBDvf","title":"css 파일을 수정했는데 적용이 안된다?","pathname":"/blog/undefined/rubyonrails/undefined-3/css","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"RubyOnRails"},{"label":"기본 상식"}]},{"id":"-MSmg5rryeQa7O6VVFmV","title":"StrongParameter 일반데이터와 객체 데이터 한번에 받기","pathname":"/blog/undefined/rubyonrails/undefined-3/strongparameter-1","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"RubyOnRails"},{"label":"기본 상식"}]},{"id":"-MU6tVsCizNp_X9E-bNI","title":"wrap-parameter body가 두 번씩 날라오는 이유","pathname":"/blog/undefined/rubyonrails/undefined-3/wrap-parameter-body","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"RubyOnRails"},{"label":"기본 상식"}]},{"id":"-MU8pOgItVtgVzmGAv-l","title":"컬렉션 map에서 요소 스킵하는법","pathname":"/blog/undefined/rubyonrails/undefined-3/map","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"RubyOnRails"},{"label":"기본 상식"}]},{"id":"-MUUK1GJjbqx6QNm4iJd","title":"CASE를 이용해서 정렬(일반적인 정렬 X)","pathname":"/blog/undefined/rubyonrails/undefined-3/case-x","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"RubyOnRails"},{"label":"기본 상식"}]},{"id":"-MUcP3G6NJagUKvjiVSd","title":"문자열(정규표현식)","pathname":"/blog/undefined/rubyonrails/undefined-3/undefined-5","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"RubyOnRails"},{"label":"기본 상식"}]},{"id":"-MV1kwJt2JEeaqTwQuqf","title":"TIME ZONE 설정하기","pathname":"/blog/undefined/rubyonrails/undefined-3/time-utc-vs-local","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"RubyOnRails"},{"label":"기본 상식"}]},{"id":"-MUxpXz7ppKdCFOhC3bU","title":"커스텀exception","pathname":"/blog/undefined/rubyonrails/undefined-3/exception","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"RubyOnRails"},{"label":"기본 상식"}]},{"id":"-MUnMu1BbxejWk2ny6Qt","title":"RSPEC으로 모델 테스트하기","pathname":"/blog/undefined/rubyonrails/rspec","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"RubyOnRails"}]},{"id":"-MP3RFZnsVoqfR1fcyT8","title":"한 눈에 읽는 루비 온 레일즈","pathname":"/blog/undefined/rubyonrails/undefined","siteSpaceId":"sitesp_VsOvw","description":"구름에서 제공하는 강의입니다","breadcrumbs":[{"label":"공부"},{"label":"RubyOnRails"}]},{"id":"-MOpuAaA3y_n4WmSQfBW","title":"Perfect RubyOnRails","pathname":"/blog/undefined/rubyonrails/perfect-rubyonrails","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"RubyOnRails"}]},{"id":"-MOpuFgfKvXjemRDtKX7","title":"Chapter1. 소개","pathname":"/blog/undefined/rubyonrails/perfect-rubyonrails/chapter1.","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"RubyOnRails"},{"label":"Perfect RubyOnRails"}]},{"id":"-MOqBbrTaEfMx5LjRxv7","title":"Chapter2. RubyOnRails 기본","pathname":"/blog/undefined/rubyonrails/perfect-rubyonrails/chapter2.-rubyonrails","siteSpaceId":"sitesp_VsOvw","description":"기본이 중요하다..!","breadcrumbs":[{"label":"공부"},{"label":"RubyOnRails"},{"label":"Perfect RubyOnRails"}]},{"id":"-MP3mmheGaN298vpoXTu","title":"Chapter3. 스캐폴딩","pathname":"/blog/undefined/rubyonrails/perfect-rubyonrails/untitled","siteSpaceId":"sitesp_VsOvw","description":"스캐폴딩은 한번에 아주 기초적인 CRUD를 만들어줍니다.","breadcrumbs":[{"label":"공부"},{"label":"RubyOnRails"},{"label":"Perfect RubyOnRails"}]},{"id":"-MPlXn_j5YSJSW1R4lxx","title":"Chapter7. 라우팅","pathname":"/blog/undefined/rubyonrails/perfect-rubyonrails/chapter7.","siteSpaceId":"sitesp_VsOvw","description":"라우팅은 요청 URL에 따라 응답 처리 대상(액션)을 결정하는 것 또는 그 구조 자체를 말한다.","breadcrumbs":[{"label":"공부"},{"label":"RubyOnRails"},{"label":"Perfect RubyOnRails"}]},{"id":"-MQ2-wuJeajTSHvOHaW3","title":"Chapter8. 테스트","pathname":"/blog/undefined/rubyonrails/perfect-rubyonrails/chapter8.","siteSpaceId":"sitesp_VsOvw","description":"아주 재밌었다. 앞으로 자주 사용해야겠다.","breadcrumbs":[{"label":"공부"},{"label":"RubyOnRails"},{"label":"Perfect RubyOnRails"}]},{"id":"-MQHswKJHt1Hgj5Fs3_8","title":"Javascript","pathname":"/blog/undefined/javascript","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"}]},{"id":"-MhIIG_pj3Ioar2NBP3a","title":"var, let, const 차이","pathname":"/blog/undefined/javascript/var-let-const","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"Javascript"}]},{"id":"-Mh33p2GVquLvjIQ2JDy","title":"브라우저 동작 원리","pathname":"/blog/undefined/javascript/undefined-6","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"Javascript"}]},{"id":"-MgQ_kWRICGT909JeDEH","title":"디바운싱과 쓰로틀링","pathname":"/blog/undefined/javascript/undefined-1","siteSpaceId":"sitesp_VsOvw","description":"로대쉬의 DOC 을 보면 매우 쉽게 이해, 사용이 가능하다.","breadcrumbs":[{"label":"공부"},{"label":"Javascript"}]},{"id":"-McyBEIV2l6867qh549z","title":"Tagged Template Literal(styled-components)","pathname":"/blog/undefined/javascript/tagged-template-literal-styled-components","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"Javascript"}]},{"id":"-MXGiXe1uAM0aJyVkDLL","title":"IntersectionObserver 를 사용해서 스크롤 이벤트의 부하 줄여주기","pathname":"/blog/undefined/javascript/intersectionobserver","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"Javascript"}]},{"id":"-MX5-XJHzij68x6uMBWE","title":"EVENT LOOP","pathname":"/blog/undefined/javascript/event-loop","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"Javascript"}]},{"id":"-MX5-aU7ti_T13lLnZz3","title":"자바스크립트에서 어떻게 비동기적인 실행이 가능한걸까?","pathname":"/blog/undefined/javascript/event-loop/undefined","siteSpaceId":"sitesp_VsOvw","description":"브라우저에게 맡긴다.","breadcrumbs":[{"label":"공부"},{"label":"Javascript"},{"label":"EVENT LOOP"}]},{"id":"-MX502YM2VQE2CxuTpHN","title":"이벤트 루프의 동작","pathname":"/blog/undefined/javascript/event-loop/undefined-1","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"Javascript"},{"label":"EVENT LOOP"}]},{"id":"-MX50_O4IV8K0apbmE39","title":"setTimeout이 실행되면 어떤 동작이 일어날까?","pathname":"/blog/undefined/javascript/event-loop/settimeout","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"Javascript"},{"label":"EVENT LOOP"}]},{"id":"-MX51FGV08vHjRjXYtoe","title":"블록은 실행이 보장된다","pathname":"/blog/undefined/javascript/event-loop/undefined-3","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"Javascript"},{"label":"EVENT LOOP"}]},{"id":"-MX533wg62WTBlIzBpey","title":"콜스택에 있는 블록이 보장된다는 점을 이용해서 브라우저 죽이기","pathname":"/blog/undefined/javascript/event-loop/undefined-2","siteSpaceId":"sitesp_VsOvw","description":"콜백메서드는 가볍게 만들자","breadcrumbs":[{"label":"공부"},{"label":"Javascript"},{"label":"EVENT LOOP"}]},{"id":"-MX55tUbmWxipV28H-Bt","title":"setTimeout 무한반복으로 브라우저는 죽을까?","pathname":"/blog/undefined/javascript/event-loop/settimeout-1","siteSpaceId":"sitesp_VsOvw","description":"setTimeout의 콜백은 TASK QUEUE에 쌓인다. 결론은 죽지 않는다.","breadcrumbs":[{"label":"공부"},{"label":"Javascript"},{"label":"EVENT LOOP"}]},{"id":"-MX5AcWgG5c95EPhi_9m","title":"Promise 무한반복으로는 브라우저를 죽일 수 있을까?","pathname":"/blog/undefined/javascript/event-loop/untitled-1","siteSpaceId":"sitesp_VsOvw","description":"Promose로 전달된 call back 은 micro task queue로 전달된다.","breadcrumbs":[{"label":"공부"},{"label":"Javascript"},{"label":"EVENT LOOP"}]},{"id":"-MX55YQKEMcQNrvpX9hI","title":"RAF는 그럼 뭐야?","pathname":"/blog/undefined/javascript/event-loop/untitled","siteSpaceId":"sitesp_VsOvw","description":"RAF는 Request Animation Frame 의 약자. 렌더링 되기전에 수행되어야 하는 콜백을 지정하는 Web API 다.","breadcrumbs":[{"label":"공부"},{"label":"Javascript"},{"label":"EVENT LOOP"}]},{"id":"-MX4n47tvSc8WhxnmdTZ","title":"forEach는 반복도중 멈출 방법이 throw 밖에 없다!","pathname":"/blog/undefined/javascript/foreach-throw","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"Javascript"}]},{"id":"-MWyOpjvq4eiO_X1SAJk","title":"임시","pathname":"/blog/undefined/javascript/undefined-5","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"Javascript"}]},{"id":"-MW-bGRiTA3Rv3eYXeYw","title":"정리할 것 목록","pathname":"/blog/undefined/javascript/undefined-5/undefined-1","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"Javascript"},{"label":"임시"}]},{"id":"-MW9fbEaX5jj0L86Ccn6","title":"자바스크립트 기본 문법","pathname":"/blog/undefined/javascript/undefined-5/undefined-1/undefined","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"Javascript"},{"label":"임시"},{"label":"정리할 것 목록"}]},{"id":"-MX2b2DgFAC0Nbz6q4S9","title":"이벤트 임시 정리","pathname":"/blog/undefined/javascript/undefined-5/undefined","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"Javascript"},{"label":"임시"}]},{"id":"-MWWutHfhFI0cSIXOvhC","title":"유용한 링크","pathname":"/blog/undefined/javascript/undefined-3","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"Javascript"}]},{"id":"-MX1GHcwfesMZA4jRVxd","title":"arrow function 을 이용한 bind 이슈 해결","pathname":"/blog/undefined/javascript/arrow-function-bind","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"Javascript"}]},{"id":"-MWt8NK86jR93zAxaDsL","title":"preventDefault - passive","pathname":"/blog/undefined/javascript/preventdefault-passive","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"Javascript"}]},{"id":"-MWn_NmZRvBC663R6-Ik","title":"CRITICAL-RENDERING-PATH","pathname":"/blog/undefined/javascript/critical-rendering-path","siteSpaceId":"sitesp_VsOvw","description":"명심하고 성능에 유의해서 코드를 짜도록하자.","breadcrumbs":[{"label":"공부"},{"label":"Javascript"}]},{"id":"-MWxzV3AmIRJaTlSiKq2","title":"setInterval에 클로져 개념 사용하기","pathname":"/blog/undefined/javascript/setinterval","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"Javascript"}]},{"id":"-MWy2rtNrSLtlk-Pe6Eo","title":"오디오 문제 이슈","pathname":"/blog/undefined/javascript/undefined-4","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"Javascript"}]},{"id":"-MW4YDbK6WhOBaU1N43p","title":"자바스크립트의 식과 문","pathname":"/blog/undefined/javascript/undefined-2","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"Javascript"}]},{"id":"-MW4Ypc2uFzKocuoeo-t","title":"식과 문이란 무엇인가...","pathname":"/blog/undefined/javascript/undefined-2/...","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"Javascript"},{"label":"자바스크립트의 식과 문"}]},{"id":"-MW4ZTVN0Hy5Lchm_Oo-","title":"식","pathname":"/blog/undefined/javascript/undefined-2/undefined-1","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"Javascript"},{"label":"자바스크립트의 식과 문"}]},{"id":"-MW4ZVByj-a9PrSZPl1Z","title":"1. 기본값과 래퍼객체","pathname":"/blog/undefined/javascript/undefined-2/undefined-1/1.","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"Javascript"},{"label":"자바스크립트의 식과 문"},{"label":"식"}]},{"id":"-MW4_Sc-P4kdad6csUuk","title":"2. 참조값과 가비지컬렉팅","pathname":"/blog/undefined/javascript/undefined-2/undefined-1/2.","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"Javascript"},{"label":"자바스크립트의 식과 문"},{"label":"식"}]},{"id":"-MW4YFw-8o3O20lZUgic","title":"식을 조금 더 자세히 알아보자","pathname":"/blog/undefined/javascript/undefined-2/undefined","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"Javascript"},{"label":"자바스크립트의 식과 문"}]},{"id":"-MVAH5oC5M9jZ3WD3COx","title":"prototype, [[Prototype]] 차이","pathname":"/blog/undefined/javascript/prototype-prototype","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"Javascript"}]},{"id":"-MSx3yBNUFHFlRfUPvod","title":"export, import 학습","pathname":"/blog/undefined/javascript/export-import","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"Javascript"}]},{"id":"-MS6wKUb5CydZmLxJiWw","title":"ESlint","pathname":"/blog/undefined/javascript/eslint","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"Javascript"}]},{"id":"-MQHszZfHs9MkLI-PcT6","title":"아주아주기본","pathname":"/blog/undefined/javascript/undefined","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"Javascript"}]},{"id":"-MQHt3etVJejXq8-zbnU","title":"Chatper1. 기본","pathname":"/blog/undefined/javascript/undefined/chatper1.","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"Javascript"},{"label":"아주아주기본"}]},{"id":"-MQHtMwOisPYJRB8cJmy","title":"Chapter2. 타입","pathname":"/blog/undefined/javascript/undefined/chapter2.","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"Javascript"},{"label":"아주아주기본"}]},{"id":"-MQHtSs3mhobqZ6Pk6-H","title":"Chapter3. 연산자","pathname":"/blog/undefined/javascript/undefined/chapter3.","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"Javascript"},{"label":"아주아주기본"}]},{"id":"-MQHtZwkrHXRF53BCp-J","title":"Chapter4. 제어문","pathname":"/blog/undefined/javascript/undefined/chapter4.","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"Javascript"},{"label":"아주아주기본"}]},{"id":"-MQHtkTJK5mO1R2HLhEh","title":"Chapter5. 배열","pathname":"/blog/undefined/javascript/undefined/chapter5.","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"Javascript"},{"label":"아주아주기본"}]},{"id":"-MQHtr8TVSKnaMqq7fII","title":"Chapter6. 함수","pathname":"/blog/undefined/javascript/undefined/chapter6.","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"Javascript"},{"label":"아주아주기본"}]},{"id":"-MQMbCXxjnn1ljtPovYY","title":"Chapter7-1. 객체","pathname":"/blog/undefined/javascript/undefined/chapter7-1.","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"Javascript"},{"label":"아주아주기본"}]},{"id":"-MQMbQU2PeWJptSLVW79","title":"Chapter7-2. 객체","pathname":"/blog/undefined/javascript/undefined/chapter7-2.","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"Javascript"},{"label":"아주아주기본"}]},{"id":"-MQMbX7Y8gmIVAcWvz6m","title":"Chapter8. 표준객체","pathname":"/blog/undefined/javascript/undefined/chapter8.","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"Javascript"},{"label":"아주아주기본"}]},{"id":"-MQMbb6Rxvql7ed5Y2gR","title":"Chapter9. DOM","pathname":"/blog/undefined/javascript/undefined/chapter9.-dom","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"Javascript"},{"label":"아주아주기본"}]},{"id":"-MQHt2_dip_v4K1NDFKC","title":"이벤트 위임","pathname":"/blog/undefined/javascript/untitled","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"Javascript"}]},{"id":"-MW-VssqKjt0FxkgYqF6","title":"이벤트가 버블링 되서 root 까지 가다보면... 부모의 부모의 ... 모든 click 이벤트를 발동시키는거 아니야?","pathname":"/blog/undefined/javascript/root-...-...-click","siteSpaceId":"sitesp_VsOvw","description":"자바스크립트의 세계는 정말...","breadcrumbs":[{"label":"공부"},{"label":"Javascript"}]},{"id":"-MWS2R6f8VzMNmoE_1A5","title":"classList","pathname":"/blog/undefined/javascript/classlist","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"Javascript"}]},{"id":"-MQqq3m-QJplmg_6Pqpg","title":"BackboneJS","pathname":"/blog/undefined/backbonejs","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"}]},{"id":"-MVWb6EfmShhVygDX9YZ","title":"Backbone Model 프로토타입에 메서드 구현하기","pathname":"/blog/undefined/backbonejs/backbone-model","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"BackboneJS"}]},{"id":"-MT1EYsRl9aBSfef8_64","title":"BackboneJS의 각 요소의 역할과 책임을 확실히 이해하자","pathname":"/blog/undefined/backbonejs/backbonejs","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"BackboneJS"}]},{"id":"-MT1DlnSVztFPqmsdYPX","title":"Window 이벤트를 listenTo로 감시하기","pathname":"/blog/undefined/backbonejs/window-listento","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"BackboneJS"}]},{"id":"-MSwmpAUV9iZgN5tl2Oh","title":"뷰 자신이 자신을 지워야 할 때를 감지하려면 어떻게 해야하는가?","pathname":"/blog/undefined/backbonejs/undefined","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"BackboneJS"}]},{"id":"-MSmdZOeWBYkSDajdWRB","title":"백본 VIEW의 remove와 jquery의 remove 는 다르다!","pathname":"/blog/undefined/backbonejs/view-remove-jquery-remove","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"BackboneJS"}]},{"id":"-MSYJ6HmQY5QgOwrny92","title":"백본 컬렉션 URL에 쿼리 붙이기","pathname":"/blog/undefined/backbonejs/url","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"BackboneJS"}]},{"id":"-MSEH4Dk7OtzcNOIl32F","title":"index.html.erb와 BackboneJS의 결합","pathname":"/blog/undefined/backbonejs/index.html.erb-backbonejs","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"BackboneJS"}]},{"id":"-MSEGc7Rzi6RdojyRfvH","title":"백본 모델과 컬렉션에서 fetch 를 통해 JSON 가져오기!","pathname":"/blog/undefined/backbonejs/fetch-json","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"BackboneJS"}]},{"id":"-MSEGAx6gSyqGSBBM2T3","title":"모델은 urlRoot, 컬렉션은 url","pathname":"/blog/undefined/backbonejs/urlroot-url","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"BackboneJS"}]},{"id":"-MQqr5AJKXYqH_-juuwY","title":"ISSUE","pathname":"/blog/undefined/backbonejs/issue","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"BackboneJS"}]},{"id":"-MQqq8DLtgk7vEosH8RS","title":"Absolute Beginner","pathname":"/blog/undefined/backbonejs/absolute-beginner","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"BackboneJS"}]},{"id":"-MQqqJiSHfh_E0pvel0W","title":"Part1","pathname":"/blog/undefined/backbonejs/absolute-beginner/part1","siteSpaceId":"sitesp_VsOvw","description":"Backbone은 프레임워크가 아니라 라이브러리다.","breadcrumbs":[{"label":"공부"},{"label":"BackboneJS"},{"label":"Absolute Beginner"}]},{"id":"-MQqqb793wZ6B499Mor5","title":"Part2","pathname":"/blog/undefined/backbonejs/absolute-beginner/part2","siteSpaceId":"sitesp_VsOvw","description":"Models, Collection and Views","breadcrumbs":[{"label":"공부"},{"label":"BackboneJS"},{"label":"Absolute Beginner"}]},{"id":"-MQqqoDFe1cpLBq4CExf","title":"Part3","pathname":"/blog/undefined/backbonejs/absolute-beginner/part3","siteSpaceId":"sitesp_VsOvw","description":"CRUD!","breadcrumbs":[{"label":"공부"},{"label":"BackboneJS"},{"label":"Absolute Beginner"}]},{"id":"-MQqqwj9ID7fNQQ1cKcc","title":"Part4","pathname":"/blog/undefined/backbonejs/absolute-beginner/part4","siteSpaceId":"sitesp_VsOvw","description":"Router","breadcrumbs":[{"label":"공부"},{"label":"BackboneJS"},{"label":"Absolute Beginner"}]},{"id":"-MW6zypMzU3PVrNwqR_n","title":"문제풀이","pathname":"/blog/undefined/undefined-1","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"}]},{"id":"-MW7--xyUexJeF8JPXgD","title":"01. 유효한 팰린드롬(leetcode: 125)","pathname":"/blog/undefined/undefined-1/01.-leetcode-125","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"문제풀이"}]},{"id":"-MWMSiMBEzaWHvaReCy6","title":"02. 문자열 뒤집기(leetcode: 344)","pathname":"/blog/undefined/undefined-1/02.-leetcode-344","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"문제풀이"}]},{"id":"-MWMSoiuxXqGb9Xmltrn","title":"03. 로그파일 재정렬(leetcode 937)","pathname":"/blog/undefined/undefined-1/03.-leetcode-937","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"문제풀이"}]},{"id":"-MWUZsWq_rF2dgSljxYd","title":"04. 가장 흔한 단어(leetcode: 819)","pathname":"/blog/undefined/undefined-1/04.-leetcode-819","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"문제풀이"}]},{"id":"-MWWkcNKlG9YM55NEFKS","title":"05. 그룹 애너그램(leetcode: 49)","pathname":"/blog/undefined/undefined-1/05.-leetcode-49","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"문제풀이"}]},{"id":"-MWb20h7aOukUqFN0kWm","title":"06. 가장 긴 팰린드롬 문자열(leetcode: 5)","pathname":"/blog/undefined/undefined-1/06.-leetcode-5","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"문제풀이"}]},{"id":"-MX4nPTYRcmgzlZIFyc_","title":"07. 두 수의 합(leetcode: 1)","pathname":"/blog/undefined/undefined-1/07.-leetcode-1","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"문제풀이"}]},{"id":"-MXAK2NNIzZuYvJheeV1","title":"08. 빗물 트래핑","pathname":"/blog/undefined/undefined-1/08.","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"문제풀이"}]},{"id":"-MXFHPws8ZgzMT98aAQE","title":"09. 세 수의 합(leetcode: 15)","pathname":"/blog/undefined/undefined-1/09.-leetcode-15","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"문제풀이"}]},{"id":"-MXgm0jvqOIiMqsJBUR3","title":"BlackCoffeeStudy","pathname":"/blog/undefined/blackcoffeestudy","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"}]},{"id":"-MXgozd6ygIvj1PMtARE","title":"level1","pathname":"/blog/undefined/blackcoffeestudy/zzz","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"BlackCoffeeStudy"}]},{"id":"-MXgp6k8knmy5Epn0i7N","title":"1주차","pathname":"/blog/undefined/blackcoffeestudy/zzz/1","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"BlackCoffeeStudy"},{"label":"level1"}]},{"id":"-MaRfm0zg2jTN9FCSGw1","title":"express","pathname":"/blog/undefined/express","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"}]},{"id":"-MappFXjfWCoAPjHVLcA","title":"Untitled","pathname":"/blog/undefined/express/untitled","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"express"}]},{"id":"-MagrpDj7xXvfkBkh9ap","title":"구글 애널리틱스 연결하기","pathname":"/blog/undefined/express/undefined-1","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"express"}]},{"id":"-MaRfssq4At-Wfo5Oc2j","title":"passport를 활용한 로그인","pathname":"/blog/undefined/express/passport","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"express"}]},{"id":"-MaRgjxTiLgoRQ8OgKjY","title":"express-init 명령어 사용","pathname":"/blog/undefined/express/express-init","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"express"}]},{"id":"-MaRg3LWj-QAaqeZGips","title":"ec2와 DBeaver","pathname":"/blog/undefined/express/ec2-dbeaver","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"express"}]},{"id":"-MaRfnZNsmP6MNMzWZct","title":"mariadb 설치","pathname":"/blog/undefined/express/mariadb","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"express"}]},{"id":"-MaRfqWSsHB4mEjsG3Tk","title":"sequelize 설치 및 사용법","pathname":"/blog/undefined/express/sequelize","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"express"}]},{"id":"-MaRft_PFTAcPYnEsKK2","title":"sequelize 설치","pathname":"/blog/undefined/express/sequelize/sequelize","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"express"},{"label":"sequelize 설치 및 사용법"}]},{"id":"-MaRfuygux5lfyRMBOVL","title":"sequelize-cli 사용법","pathname":"/blog/undefined/express/sequelize/sequelize-cli","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"express"},{"label":"sequelize 설치 및 사용법"}]},{"id":"-MaRfwfATGj5LdJjx5FQ","title":"모델 간 연관관계 맺기","pathname":"/blog/undefined/express/sequelize/undefined","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"express"},{"label":"sequelize 설치 및 사용법"}]},{"id":"-MaRgW-A7xulztlhmrkB","title":"Hook 사용하기","pathname":"/blog/undefined/express/sequelize/hook","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"express"},{"label":"sequelize 설치 및 사용법"}]},{"id":"-MaRg6hYZHRDxOVBinxn","title":"express-ejs-layout 활용하기","pathname":"/blog/undefined/express/express-ejs-layout","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"express"}]},{"id":"-MaRgBopy-Qe5MrDsxKj","title":"Bootstrap","pathname":"/blog/undefined/express/bootstrap","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"express"}]},{"id":"-MaRgE5MQc7IDo0lA7oT","title":"npm install로 설치한 모듈 ejs에서 사용하기","pathname":"/blog/undefined/express/npm-install-ejs","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"express"}]},{"id":"-MaRgHzyiRxMtSMfldAJ","title":"미들웨어","pathname":"/blog/undefined/express/undefined","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"express"}]},{"id":"-MalNloh1R1H-xDe4IMk","title":"cypress","pathname":"/blog/undefined/cypress","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"}]},{"id":"-MamLjp0IjrIPIBJ2ZZ9","title":"window.alert 테스트는 어떻게 하지?","pathname":"/blog/undefined/cypress/window.alert","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"cypress"}]},{"id":"-MamKYQUyti3Y0MRRypS","title":"상수를 어디에 저장할건가?","pathname":"/blog/undefined/cypress/undefined","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"cypress"}]},{"id":"-MalNocwFFX0-tnDmhZe","title":"before()와 beforeEach()","pathname":"/blog/undefined/cypress/before-beforeeach","siteSpaceId":"sitesp_VsOvw","description":"before와 beforeEach","breadcrumbs":[{"label":"공부"},{"label":"cypress"}]},{"id":"-MamY01lmY-79BHhD5Jb","title":"aws","pathname":"/blog/undefined/aws","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"}]},{"id":"-MamY3mpZ7gKeqael5ut","title":"aws로 프로젝트를 배포해보자!","pathname":"/blog/undefined/aws/aws","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"aws"}]},{"id":"-MaqHZm3Geu0LhAJkY8-","title":"nginx로 리버스프록시 서버를 만들자","pathname":"/blog/undefined/aws/nginx","siteSpaceId":"sitesp_VsOvw","description":"이전시간에 EC2 인스턴스에 필요한 프로그램을 설치하고 실제 프로젝트까지 배포해봤다. 하지만 우리의 프로젝트는 4000번 포트로 배포가 되고 있기 때문에 외부 웹브라우저로 접근하기 위해서는 IP:4000 이라는 아주 불편한 형태로 들어와야만 했다. 물론, 포트를 80으로 바꾸면 되긴하지만, 더 좋은 방법이 없는걸까?","breadcrumbs":[{"label":"공부"},{"label":"aws"}]},{"id":"-MappHhsBsbrtJOWkU2U","title":"github actions 로 푸쉬되면 자동으로 업데이트 하는 기능 만들어보기","pathname":"/blog/undefined/aws/github-actions","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"aws"}]},{"id":"-Me0EjTpxn1yTI6cjRgv","title":"react","pathname":"/blog/undefined/react","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"}]},{"id":"-MhdN0YjVxA-IRAXzzsK","title":"Drag & Drop 를 이용해서 리스트 요소 순서 바꾸기","pathname":"/blog/undefined/react/drag-and-drop","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"react"}]},{"id":"-MfwpsConEQY9F7WK1xI","title":"CRA에서 CRACO 사용하지 않고 절대경로 import(NODE_PATH)","pathname":"/blog/undefined/react/cra-craco-import-node_path","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"react"}]},{"id":"-MfcWpMtfi5Cx1mLsAy_","title":"useEffect내에서 state의 dependency 문제","pathname":"/blog/undefined/react/useeffect-state-dependency","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"react"}]},{"id":"-MfcWWWdLnvYylSRCvY6","title":"IntersectionObserverAPI로 무한스크롤 구현","pathname":"/blog/undefined/react/intersectionobserverapi","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"react"}]},{"id":"-Mf3-8vH_kFmX6KxJKnE","title":"react-testing-library","pathname":"/blog/undefined/react/react-testing-library","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"react"}]},{"id":"-Mf3-CEF6cqr0htsUIPo","title":"기본","pathname":"/blog/undefined/react/react-testing-library/undefined","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"react"},{"label":"react-testing-library"}]},{"id":"-Mf3-uyyhkfVDqJWrdVy","title":"react-router-dom 에서의 에러","pathname":"/blog/undefined/react/react-testing-library/react-router-dom","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"react"},{"label":"react-testing-library"}]},{"id":"-Mf30Vg5FOBGzAxzmyLK","title":"event 발생시키기","pathname":"/blog/undefined/react/react-testing-library/event","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"react"},{"label":"react-testing-library"}]},{"id":"-Mf30rBpWSbrbBt_AFxE","title":"Integration testing하기","pathname":"/blog/undefined/react/react-testing-library/integration-testing","siteSpaceId":"sitesp_VsOvw","description":"별거 없다","breadcrumbs":[{"label":"공부"},{"label":"react"},{"label":"react-testing-library"}]},{"id":"-Mf32cLCfFpSeMd3isLt","title":"async하게 렌더링 되는 요소 잡기","pathname":"/blog/undefined/react/react-testing-library/async","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"react"},{"label":"react-testing-library"}]},{"id":"-Mf33A3sgernb_Jj-_p8","title":"Mocking 하기","pathname":"/blog/undefined/react/react-testing-library/mocking","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"react"},{"label":"react-testing-library"}]},{"id":"-Me0ErjlmA9otHpdB45S","title":"CRA로 만든 앱에서 절대경로로 import 해오기(alias하기)","pathname":"/blog/undefined/react/cra-import-alias","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"react"}]},{"id":"-MgQveeDEMgVIk-NAPYQ","title":"커스텀 훅 만들기","pathname":"/blog/undefined/react/undefined","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"react"}]},{"id":"-Mi_5yZaQYPJcQ3gZldu","title":"타입스크립트","pathname":"/blog/undefined/undefined-3","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"}]},{"id":"-Mi_61gtXuBmqoQPAkrK","title":"조건부타입 (Conditional types)","pathname":"/blog/undefined/undefined-3/conditional-types","siteSpaceId":"sitesp_VsOvw","description":"들어오는 input 에 따라 타입을 결정하는건 아주 중요한 작업이다. 꼭 내껄로 만들자","breadcrumbs":[{"label":"공부"},{"label":"타입스크립트"}]},{"id":"-Mifs_cgDAASf-qgJR8Z","title":"Generics","pathname":"/blog/undefined/undefined-3/generics","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"타입스크립트"}]},{"id":"-Mig8Gc7NICmIQz1gfU3","title":"Keyof 타입 오퍼레이터","pathname":"/blog/undefined/undefined-3/keyof","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"타입스크립트"}]},{"id":"-MigBqG3qsFh6SbHAduY","title":"Indexed Access Types","pathname":"/blog/undefined/undefined-3/indexed-access-types","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"타입스크립트"}]},{"id":"-Mi_7N9u94ibdyQE0Ipg","title":"타입 챌린지","pathname":"/blog/undefined/undefined-3/undefined","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"타입스크립트"}]},{"id":"-MjdigszsrCfC5r5Ik0D","title":"easy","pathname":"/blog/undefined/undefined-3/undefined/easy","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"타입스크립트"},{"label":"타입 챌린지"}]},{"id":"-Mi_7bmcnloMsch3zq4E","title":"00. Awaited","pathname":"/blog/undefined/undefined-3/undefined/easy/0.-awaited","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"타입스크립트"},{"label":"타입 챌린지"},{"label":"easy"}]},{"id":"-MifQwpGaSQ9H0IW9XMf","title":"01. Concat","pathname":"/blog/undefined/undefined-3/undefined/easy/1.-concat","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"타입스크립트"},{"label":"타입 챌린지"},{"label":"easy"}]},{"id":"-MifRAEkHbfr0as-W2Vr","title":"02. Exclude","pathname":"/blog/undefined/undefined-3/undefined/easy/untitled","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"타입스크립트"},{"label":"타입 챌린지"},{"label":"easy"}]},{"id":"-MisxXDKsPdTfqGFU38O","title":"03. First Of Array","pathname":"/blog/undefined/undefined-3/undefined/easy/03.-first-of-array","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"타입스크립트"},{"label":"타입 챌린지"},{"label":"easy"}]},{"id":"-MisxaYF5nbndcPgSx3E","title":"04. If","pathname":"/blog/undefined/undefined-3/undefined/easy/04.-if","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"타입스크립트"},{"label":"타입 챌린지"},{"label":"easy"}]},{"id":"-MisxfBBMPm4iLi8cYVZ","title":"05. Includes","pathname":"/blog/undefined/undefined-3/undefined/easy/05.-includes","siteSpaceId":"sitesp_VsOvw","description":"이번 문제는 업데이트되면서 난이도가 상승했다. 업데이트 이전으로 작성한다.","breadcrumbs":[{"label":"공부"},{"label":"타입스크립트"},{"label":"타입 챌린지"},{"label":"easy"}]},{"id":"-Mj-fmbWQhfnh7DWzH56","title":"06. Pick","pathname":"/blog/undefined/undefined-3/undefined/easy/06.-pick","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"타입스크립트"},{"label":"타입 챌린지"},{"label":"easy"}]},{"id":"-Mj4lAv79-0hFy-m6dSA","title":"07. Readonly","pathname":"/blog/undefined/undefined-3/undefined/easy/07.-readonly","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"타입스크립트"},{"label":"타입 챌린지"},{"label":"easy"}]},{"id":"-Mj7VEPkjuxb55iPke0g","title":"08. Length","pathname":"/blog/undefined/undefined-3/undefined/easy/08.-length","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"타입스크립트"},{"label":"타입 챌린지"},{"label":"easy"}]},{"id":"-Mj7VJtT1uDTzKYfwrIm","title":"09. Tuple to Object","pathname":"/blog/undefined/undefined-3/undefined/easy/09.-tuple-to-object","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"타입스크립트"},{"label":"타입 챌린지"},{"label":"easy"}]},{"id":"-MjdiqjjndwDBPVjYseV","title":"mediun","pathname":"/blog/undefined/undefined-3/undefined/mediun","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"타입스크립트"},{"label":"타입 챌린지"}]},{"id":"-MjdiuK3CI_lUFuUhZVj","title":"01. Absolute","pathname":"/blog/undefined/undefined-3/undefined/mediun/01.-absolute","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"타입스크립트"},{"label":"타입 챌린지"},{"label":"mediun"}]},{"id":"-MkNY92yuEpRUMW8m5bj","title":"Firebase","pathname":"/blog/undefined/firebase","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"}]},{"id":"-MkNYC2lGUprxuoRXerf","title":"파이어스토어 규칙","pathname":"/blog/undefined/firebase/undefined","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"Firebase"}]},{"id":"-MUUFXs0KsdjzfDjOC0K","title":"기타","pathname":"/blog/undefined/undefined","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"}]},{"id":"-Mi_jXntbN5-KRMgzRRD","title":"협업 프로세스","pathname":"/blog/undefined/undefined/undefined-2","siteSpaceId":"sitesp_VsOvw","description":"협업을 어떻게 진행할지에 대해 정리한다.","breadcrumbs":[{"label":"공부"},{"label":"기타"}]},{"id":"-MhfxBFflsuyJTfdVNZQ","title":"UUID","pathname":"/blog/undefined/undefined/uuid","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"기타"}]},{"id":"-MalRXsmuMdML6Q-79Fg","title":"구글애널리틱스 설치하기","pathname":"/blog/undefined/undefined/undefined-1","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"기타"}]},{"id":"-MWUXlxoo-8GiEHZSNon","title":"드림코딩 강의","pathname":"/blog/undefined/undefined/undefined","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"기타"}]},{"id":"-MWPQpanMpzVvcyYuMc7","title":"포트폴리오","pathname":"/blog/undefined/undefined/undefined/undefined-1","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"기타"},{"label":"드림코딩 강의"}]},{"id":"-MWXNwSiNXA5KwuKhQY_","title":"CSS","pathname":"/blog/undefined/undefined/undefined/undefined-1/css-1","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"기타"},{"label":"드림코딩 강의"},{"label":"포트폴리오"}]},{"id":"-MWXNzShsVPHMinXH5r_","title":"nth-child","pathname":"/blog/undefined/undefined/undefined/undefined-1/css-1/nth-child","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"기타"},{"label":"드림코딩 강의"},{"label":"포트폴리오"},{"label":"CSS"}]},{"id":"-MWPQtP52XwWBRBDhik8","title":"CSS 팁","pathname":"/blog/undefined/undefined/undefined/undefined-1/css-1/css","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"기타"},{"label":"드림코딩 강의"},{"label":"포트폴리오"},{"label":"CSS"}]},{"id":"-MWUXwcJN2hkEYD6xBZI","title":"자바스크립트","pathname":"/blog/undefined/undefined/undefined/undefined-1/undefined","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"기타"},{"label":"드림코딩 강의"},{"label":"포트폴리오"}]},{"id":"-MWWv2rmboHAUew98X2M","title":"1. 스크롤에 따른 navbar 의 색 변경하기","pathname":"/blog/undefined/undefined/undefined/undefined-1/undefined/1.-navbar","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"기타"},{"label":"드림코딩 강의"},{"label":"포트폴리오"},{"label":"자바스크립트"}]},{"id":"-MWWz08LBEp8B7STfYcL","title":"2. navbar 버튼을 누르면 해당 페이지로 스크롤링 되게 만들자","pathname":"/blog/undefined/undefined/undefined/undefined-1/undefined/untitled","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"기타"},{"label":"드림코딩 강의"},{"label":"포트폴리오"},{"label":"자바스크립트"}]},{"id":"-MWX4t1H69VYEECQSpBt","title":"3. 스크롤 다운 하면 arrow-up 버튼 나오게 하기","pathname":"/blog/undefined/undefined/undefined/undefined-1/undefined/arrow-up","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"기타"},{"label":"드림코딩 강의"},{"label":"포트폴리오"},{"label":"자바스크립트"}]},{"id":"-MWXC0WkC6q4hpeUqIro","title":"4. project 필터링 구현","pathname":"/blog/undefined/undefined/undefined/undefined-1/undefined/4.-project","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"기타"},{"label":"드림코딩 강의"},{"label":"포트폴리오"},{"label":"자바스크립트"}]},{"id":"-MWXJT42klbEJWn1WsOh","title":"5. project 필터링에 transition 효과 넣기","pathname":"/blog/undefined/undefined/undefined/undefined-1/undefined/5.-project-transition","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"기타"},{"label":"드림코딩 강의"},{"label":"포트폴리오"},{"label":"자바스크립트"}]},{"id":"-MUUFcfGiujz3juWNJi9","title":"GIT","pathname":"/blog/undefined/undefined/git","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"기타"}]},{"id":"-MfwqB7nG2URMW5YMuah","title":"기본 사용법 정리","pathname":"/blog/undefined/undefined/git/undefined","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"기타"},{"label":"GIT"}]},{"id":"-MUUG-wO4XLxNXrnLyuo","title":"git remote update - remote 브랜치 가져오기","pathname":"/blog/undefined/undefined/git/git-remote-update-remote","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"공부"},{"label":"기타"},{"label":"GIT"}]},{"id":"-MO6pO48E_Xho1fge0Fu","title":"이것저것","pathname":"/blog/undefined-1/odds_and_ends","siteSpaceId":"sitesp_VsOvw","description":"이것저것.. 아무거나 쓰는 곳입니다.","breadcrumbs":[{"label":"기타"}]},{"id":"-MP4jnWKcsQD1d94YqPP","title":"독서","pathname":"/blog/undefined-1/odds_and_ends/undefined","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"이것저것"}]},{"id":"-MO2-QPP-i1jDxhzdpFU","title":"클린코드","pathname":"/blog/undefined-1/odds_and_ends/undefined/clean_code","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"이것저것"},{"label":"독서"}]},{"id":"-MO2-Sct2wxQs4y7YxQh","title":"Chapter0. 나는 왜 클린코드 책을 읽는가?","pathname":"/blog/undefined-1/odds_and_ends/undefined/clean_code/chapter0","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"이것저것"},{"label":"독서"},{"label":"클린코드"}]},{"id":"-MO20VDwSF2vTuSispNP","title":"Chapter1. 클린코드","pathname":"/blog/undefined-1/odds_and_ends/undefined/clean_code/chapter1","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"이것저것"},{"label":"독서"},{"label":"클린코드"}]},{"id":"-MOHG4mJDcSD3094rekw","title":"Chapter2. 의미있는 이름","pathname":"/blog/undefined-1/odds_and_ends/undefined/clean_code/chapter2","siteSpaceId":"sitesp_VsOvw","description":"이름 하나 만으로 맥락을 파악할 수 있어야 한다.ß","breadcrumbs":[{"label":"기타"},{"label":"이것저것"},{"label":"독서"},{"label":"클린코드"}]},{"id":"-MOaD8otqzX9BILcKMNq","title":"Chapter3. 함수","pathname":"/blog/undefined-1/odds_and_ends/undefined/clean_code/chapter3","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"이것저것"},{"label":"독서"},{"label":"클린코드"}]},{"id":"-MP4b1hjvGdw69IvooP-","title":"Chapter4. 주석","pathname":"/blog/undefined-1/odds_and_ends/undefined/clean_code/chapter4.","siteSpaceId":"sitesp_VsOvw","description":"주석을 달 시간에 어떻게 코드를 더 잘 표현할지에 대해 고민하자.","breadcrumbs":[{"label":"기타"},{"label":"이것저것"},{"label":"독서"},{"label":"클린코드"}]},{"id":"-MP4jfCZnj6U-CscSyVZ","title":"Chapter5. 형식 맞추기","pathname":"/blog/undefined-1/odds_and_ends/undefined/clean_code/undefined","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"이것저것"},{"label":"독서"},{"label":"클린코드"}]},{"id":"-MOH2875_XaZqpSMzjIk","title":"용어","pathname":"/blog/undefined-1/odds_and_ends/untitled","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"이것저것"}]},{"id":"-MOBv-aVr-7e2BUdo7u6","title":"IDE","pathname":"/blog/undefined-1/odds_and_ends/ide","siteSpaceId":"sitesp_VsOvw","description":"그래도 VIM이 최고다..","breadcrumbs":[{"label":"기타"},{"label":"이것저것"}]},{"id":"-MOBv8K0sFEerkZh-uor","title":"RubyMine","pathname":"/blog/undefined-1/odds_and_ends/ide/rubymine","siteSpaceId":"sitesp_VsOvw","description":"IDE를 공부합니다...?","breadcrumbs":[{"label":"기타"},{"label":"이것저것"},{"label":"IDE"}]},{"id":"-MOBxwI4NaWwaQZovgjZ","title":"실전이 중요!","pathname":"/blog/undefined-1/odds_and_ends/ide/rubymine/untitled","siteSpaceId":"sitesp_VsOvw","description":"IDE를 사용하면서 자주 사용하는 단축키를 정리합니다.","breadcrumbs":[{"label":"기타"},{"label":"이것저것"},{"label":"IDE"},{"label":"RubyMine"}]},{"id":"-MOBwhw41OMYB66Nz3tp","title":"1. Editor Basic","pathname":"/blog/undefined-1/odds_and_ends/ide/rubymine/1.-editor-basic","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"이것저것"},{"label":"IDE"},{"label":"RubyMine"}]},{"id":"-MOBx3MDocVpSgmraRjZ","title":"2. Navigation","pathname":"/blog/undefined-1/odds_and_ends/ide/rubymine/2.-navigation","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"이것저것"},{"label":"IDE"},{"label":"RubyMine"}]},{"id":"-MOBxHbFXIUfsyT96946","title":"3. Completion","pathname":"/blog/undefined-1/odds_and_ends/ide/rubymine/3.-completion","siteSpaceId":"sitesp_VsOvw","description":"기본적으로 자동완성 기능은 동작함.","breadcrumbs":[{"label":"기타"},{"label":"이것저것"},{"label":"IDE"},{"label":"RubyMine"}]},{"id":"-MOBxZNX_6lGtOPfrjcE","title":"4. Refactoring","pathname":"/blog/undefined-1/odds_and_ends/ide/rubymine/4.-refactoring","siteSpaceId":"sitesp_VsOvw","description":"VIM을 유일하게 압도하는 기능","breadcrumbs":[{"label":"기타"},{"label":"이것저것"},{"label":"IDE"},{"label":"RubyMine"}]},{"id":"-MOBxW6sWahLVf76NBZI","title":"5. Code Assistance","pathname":"/blog/undefined-1/odds_and_ends/ide/rubymine/5.-code-assistance","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"이것저것"},{"label":"IDE"},{"label":"RubyMine"}]},{"id":"-MOBhlquKJwAk6kaj1le","title":"MAC에서 살아남기","pathname":"/blog/undefined-1/odds_and_ends/mac","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"이것저것"}]},{"id":"-MOWiToudgrK_HxH0Tvz","title":"Alfred - Spotlight 업그레이드","pathname":"/blog/undefined-1/odds_and_ends/mac/alfred-spotlight","siteSpaceId":"sitesp_VsOvw","description":"웹서핑이 너무 쉬워진다","breadcrumbs":[{"label":"기타"},{"label":"이것저것"},{"label":"MAC에서 살아남기"}]},{"id":"-MOGw1Uomk-qgMgPi57d","title":"Vimium","pathname":"/blog/undefined-1/odds_and_ends/mac/vimium","siteSpaceId":"sitesp_VsOvw","description":"VIM 은 너무 대단한 텍스트 편집기다. 이 VIM을 편집기 이상으로 사용하고 싶은데.. 그 방법이 없을까?","breadcrumbs":[{"label":"기타"},{"label":"이것저것"},{"label":"MAC에서 살아남기"}]},{"id":"-MOC0l_ADXjkJ96TWVM9","title":"BetterTouchTool - 트랙패드","pathname":"/blog/undefined-1/odds_and_ends/mac/undefined","siteSpaceId":"sitesp_VsOvw","description":"14만원...","breadcrumbs":[{"label":"기타"},{"label":"이것저것"},{"label":"MAC에서 살아남기"}]},{"id":"-MOBtLUjJV37u3Hlfim7","title":"구름 입력기 - ESC, `","pathname":"/blog/undefined-1/odds_and_ends/mac/esc","siteSpaceId":"sitesp_VsOvw","description":"구름이 최고! 다만 입력할 때 버벅이는게 보인다...","breadcrumbs":[{"label":"기타"},{"label":"이것저것"},{"label":"MAC에서 살아남기"}]},{"id":"-MO6pT9CSHp2GAUyvRNr","title":"Spectacle - 화면 분할","pathname":"/blog/undefined-1/odds_and_ends/mac/bettertouchtool-spectacle","siteSpaceId":"sitesp_VsOvw","description":"순정맥은 정말 도리도리...","breadcrumbs":[{"label":"기타"},{"label":"이것저것"},{"label":"MAC에서 살아남기"}]},{"id":"-MfwurKVRDURTf_DVHvW","title":"원티드 프리온보딩","pathname":"/blog/undefined-1/undefined","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"}]},{"id":"-Mfwuww04MKEh6ljTFHt","title":"1주차","pathname":"/blog/undefined-1/undefined/1","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"원티드 프리온보딩"}]},{"id":"-Mfwv6TeVrHfDA2xz-Bp","title":"월요일","pathname":"/blog/undefined-1/undefined/1/undefined","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"원티드 프리온보딩"},{"label":"1주차"}]},{"id":"-MfwvFqIhdDIYjlAJMQ7","title":"목요일","pathname":"/blog/undefined-1/undefined/1/undefined-1","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"원티드 프리온보딩"},{"label":"1주차"}]},{"id":"-MgQafXfI2aGBCbYUd-5","title":"2주차","pathname":"/blog/undefined-1/undefined/2","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"원티드 프리온보딩"}]},{"id":"-Mh3JeTKFRVam9XOX-Oh","title":"3주차","pathname":"/blog/undefined-1/undefined/3","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"원티드 프리온보딩"}]},{"id":"-MhJFFUshnbfuZ9p8cvx","title":"4주차","pathname":"/blog/undefined-1/undefined/4","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"원티드 프리온보딩"}]},{"id":"-Mi_jLvW4Hv5bfNnJkxF","title":"5주차","pathname":"/blog/undefined-1/undefined/5","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"원티드 프리온보딩"}]},{"id":"-MikywzBJHP0mVeAovT9","title":"6주차","pathname":"/blog/undefined-1/undefined/6","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"원티드 프리온보딩"}]},{"id":"-MO29kH_9YeYmMoC-WPN","title":"일기장","pathname":"/blog/undefined-1/diary","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"}]},{"id":"-MOqK0tr0MwxFC0IPadu","title":"2020","pathname":"/blog/undefined-1/diary/2020","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"}]},{"id":"-MOqK8Egw1gEUoqGSGkz","title":"December","pathname":"/blog/undefined-1/diary/2020/12","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2020"}]},{"id":"-MO29nvx3QWnVR7wxQ00","title":"20201208(화)","pathname":"/blog/undefined-1/diary/2020/12/20201208","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2020"},{"label":"December"}]},{"id":"-MO6ormwNOSuA-9gtYX8","title":"20201209(수)","pathname":"/blog/undefined-1/diary/2020/12/20201209","siteSpaceId":"sitesp_VsOvw","description":"드디어 웹서버 끝!!!","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2020"},{"label":"December"}]},{"id":"-MOC2sm_8U3ICkmRIgYo","title":"20201210(목)","pathname":"/blog/undefined-1/diary/2020/12/20201210","siteSpaceId":"sitesp_VsOvw","description":"루비는 어렵다.","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2020"},{"label":"December"}]},{"id":"-MOGvn0lKeHFRt9yr3qX","title":"20201211(금)","pathname":"/blog/undefined-1/diary/2020/12/20201211","siteSpaceId":"sitesp_VsOvw","description":"흠.. 루비는 뭔가 이상하다","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2020"},{"label":"December"}]},{"id":"-MOWiE8sVqL4deIkf3YR","title":"20201214(월)","pathname":"/blog/undefined-1/diary/2020/12/20201214","siteSpaceId":"sitesp_VsOvw","description":"루비 재밌구먼!","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2020"},{"label":"December"}]},{"id":"-MOamUXDdNWk8eAvxuRv","title":"20201215(화)","pathname":"/blog/undefined-1/diary/2020/12/20201215","siteSpaceId":"sitesp_VsOvw","description":"루비온레일즈.... 하나도 모르겠다 ㅜ","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2020"},{"label":"December"}]},{"id":"-MOfvZUxfGoR1aNnnP65","title":"20201216(수)","pathname":"/blog/undefined-1/diary/2020/12/20201216","siteSpaceId":"sitesp_VsOvw","description":"해커톤 시작!","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2020"},{"label":"December"}]},{"id":"-MOlKHfN97cxDg7c9dOT","title":"20201217(목)","pathname":"/blog/undefined-1/diary/2020/12/20201217","siteSpaceId":"sitesp_VsOvw","description":"너무 아쉽다","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2020"},{"label":"December"}]},{"id":"-MOoluNkqQZK7aHj_sfE","title":"20201218(금)","pathname":"/blog/undefined-1/diary/2020/12/20201218","siteSpaceId":"sitesp_VsOvw","description":"해커톤 2등이다!!","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2020"},{"label":"December"}]},{"id":"-MOvFfgIn8nUbFJdFqJ5","title":"20201219(토)","pathname":"/blog/undefined-1/diary/2020/12/20201219","siteSpaceId":"sitesp_VsOvw","description":"집중력을 높이자..!","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2020"},{"label":"December"}]},{"id":"-MP4mod2egMrkdX4wDCK","title":"20201221(월)","pathname":"/blog/undefined-1/diary/2020/12/20201221","siteSpaceId":"sitesp_VsOvw","description":"스캐폴딩 마스터!","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2020"},{"label":"December"}]},{"id":"-MP9zs4oABjSREofaVGh","title":"20201222(화)","pathname":"/blog/undefined-1/diary/2020/12/20201222","siteSpaceId":"sitesp_VsOvw","description":"아무것도 안했다","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2020"},{"label":"December"}]},{"id":"-MPF3BoI_BeCODQxbtKU","title":"20201223(수)","pathname":"/blog/undefined-1/diary/2020/12/20201223","siteSpaceId":"sitesp_VsOvw","description":"Webserv 끝인가...?","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2020"},{"label":"December"}]},{"id":"-MPK6jbJmbiDllKgNrLT","title":"20201224(목)","pathname":"/blog/undefined-1/diary/2020/12/20201224","siteSpaceId":"sitesp_VsOvw","description":"이브의 밤...","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2020"},{"label":"December"}]},{"id":"-MPU9_b1zP0vKzSUGc69","title":"20201226(토)","pathname":"/blog/undefined-1/diary/2020/12/20201226","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2020"},{"label":"December"}]},{"id":"-MPdVqa-fDjhe8ZJbVzy","title":"20201228(월)","pathname":"/blog/undefined-1/diary/2020/12/20201228","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2020"},{"label":"December"}]},{"id":"-MPisUdLGuKw2Kmeu8OI","title":"20201229(화)","pathname":"/blog/undefined-1/diary/2020/12/20201229","siteSpaceId":"sitesp_VsOvw","description":"레일즈 재밌는데?ㅋㅋㅋ","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2020"},{"label":"December"}]},{"id":"-MPnptZpPabLzv5gq48u","title":"20201230(수)","pathname":"/blog/undefined-1/diary/2020/12/20201230","siteSpaceId":"sitesp_VsOvw","description":"스캐폴딩을 사용하지 않으면 기본적인 모델, 컨트롤러도 생성하지 못하는 남상혁....","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2020"},{"label":"December"}]},{"id":"-MPtCuxdiescDaiMhXai","title":"20201231(목)","pathname":"/blog/undefined-1/diary/2020/12/20201231","siteSpaceId":"sitesp_VsOvw","description":"2020년의 마지막... 많은 시간 공부하고 집중하지도 않았지만... 책상에 앉아있는 내가 자랑스럽다.","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2020"},{"label":"December"}]},{"id":"-MPxvvbDH5MRJBwoNtOZ","title":"2021","pathname":"/blog/undefined-1/diary/2021","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"}]},{"id":"-MPxvynqBcRFbfycuqEv","title":"January","pathname":"/blog/undefined-1/diary/2021/january","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"}]},{"id":"-MPxw15w11RKf_3ENLwL","title":"20210101(금)","pathname":"/blog/undefined-1/diary/2021/january/20200101","siteSpaceId":"sitesp_VsOvw","description":"새로운 시작. 열심히 하자!","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"January"}]},{"id":"-MQ23zBCsmgiM0RkvupI","title":"20210102(토)","pathname":"/blog/undefined-1/diary/2021/january/20210102","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"January"}]},{"id":"-MQHsZOxTkUFc-QB6x1O","title":"20210105(화)","pathname":"/blog/undefined-1/diary/2021/january/20210105","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"January"}]},{"id":"-MQMauwZ3HXXe4sdtBOG","title":"20210106(수)","pathname":"/blog/undefined-1/diary/2021/january/20210106","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"January"}]},{"id":"-MQS6vRM2XNpGzT5Btar","title":"20210107(목)","pathname":"/blog/undefined-1/diary/2021/january/20210107","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"January"}]},{"id":"-MQXA2-pD0a8se6eKDUP","title":"20210108(금)","pathname":"/blog/undefined-1/diary/2021/january/20210108","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"January"}]},{"id":"-MQavM-f5VZr2SgD2E1t","title":"20210109(토)","pathname":"/blog/undefined-1/diary/2021/january/20210108-1","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"January"}]},{"id":"-MQqwQ0uKpmkWgzWlgXr","title":"20210112(화)","pathname":"/blog/undefined-1/diary/2021/january/20210112","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"January"}]},{"id":"-MQw6RcrUmKfQZEJSGL1","title":"20210113(수)","pathname":"/blog/undefined-1/diary/2021/january/20210113","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"January"}]},{"id":"-MR0O0RmpqfBorsaLaby","title":"20210114(목)","pathname":"/blog/undefined-1/diary/2021/january/20210114","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"January"}]},{"id":"-MR5zB1V3ltHASVySyqD","title":"20210115(금)","pathname":"/blog/undefined-1/diary/2021/january/20210115","siteSpaceId":"sitesp_VsOvw","description":"웹서버는 역시 지옥이야..","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"January"}]},{"id":"-MRFn2h3Y6FDDGmz3H6D","title":"20210117(일)","pathname":"/blog/undefined-1/diary/2021/january/20210117","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"January"}]},{"id":"-MRKwxP2Admgm32Wr5c0","title":"20210118(월)","pathname":"/blog/undefined-1/diary/2021/january/20210118","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"January"}]},{"id":"-MRQe4KOMIFAHBTbCUpq","title":"20210119(화)","pathname":"/blog/undefined-1/diary/2021/january/20210119","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"January"}]},{"id":"-MRVQTfr_5QmmIA2ORhJ","title":"20210120(수)","pathname":"/blog/undefined-1/diary/2021/january/20210120","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"January"}]},{"id":"-MR_v7c1Io_vJO7jpGwy","title":"20210121(목)","pathname":"/blog/undefined-1/diary/2021/january/20210121","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"January"}]},{"id":"-MRtsq6S9wFTn_KKICAT","title":"20210125(월)","pathname":"/blog/undefined-1/diary/2021/january/20210125","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"January"}]},{"id":"-MRzUAkjs2Lrl3x7HgRj","title":"20210126(화)","pathname":"/blog/undefined-1/diary/2021/january/20210126","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"January"}]},{"id":"-MS3Xacw4nxJqzewbYxQ","title":"20210127(수)","pathname":"/blog/undefined-1/diary/2021/january/20210127","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"January"}]},{"id":"-MS8lcqqM9gy2tm84Lpz","title":"20210128(목)","pathname":"/blog/undefined-1/diary/2021/january/20210128","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"January"}]},{"id":"-MSEG52NJP0Ny2KA7cPW","title":"20210129(금)","pathname":"/blog/undefined-1/diary/2021/january/20210129","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"January"}]},{"id":"-MSTL7VSnFM27Wn4lpPY","title":"February","pathname":"/blog/undefined-1/diary/2021/february","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"}]},{"id":"-MSTLEbtJWL8qqIoJ3nS","title":"20210201(월)","pathname":"/blog/undefined-1/diary/2021/february/20210201","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"February"}]},{"id":"-MSYNYnIYOcH7a43d2qH","title":"20210202(화)","pathname":"/blog/undefined-1/diary/2021/february/20210202","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"February"}]},{"id":"-MScgPn5_IHv5eCurA6i","title":"20210203(수)","pathname":"/blog/undefined-1/diary/2021/february/20210203","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"February"}]},{"id":"-MShlidp2yfZHWvGI07H","title":"20210204(목)","pathname":"/blog/undefined-1/diary/2021/february/20210204","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"February"}]},{"id":"-MSmkJhCgSBok6rKAHL1","title":"20210205(금)","pathname":"/blog/undefined-1/diary/2021/february/20210205","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"February"}]},{"id":"-MSwoZrIPF6wIYyddMrl","title":"20210207(일)","pathname":"/blog/undefined-1/diary/2021/february/20210207","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"February"}]},{"id":"-MT1DjmJowxPerIBwoB2","title":"20210208(월)","pathname":"/blog/undefined-1/diary/2021/february/untitled","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"February"}]},{"id":"-MT6NxBqOtWf1CbqXNvR","title":"20210209(화)","pathname":"/blog/undefined-1/diary/2021/february/20210209","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"February"}]},{"id":"-MTkUBQar393w_jo7Ye9","title":"20210217(수)","pathname":"/blog/undefined-1/diary/2021/february/20210217","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"February"}]},{"id":"-MTpobvL4zM3sX0MJff6","title":"20210218(목)","pathname":"/blog/undefined-1/diary/2021/february/20210218","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"February"}]},{"id":"-MTvK9kx6qxD-2ad7WOr","title":"20210219(금)","pathname":"/blog/undefined-1/diary/2021/february/20210219","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"February"}]},{"id":"-MTzvDhXJpXperaJaiGu","title":"20210220(토)","pathname":"/blog/undefined-1/diary/2021/february/20210220","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"February"}]},{"id":"-MU8rzDslDZQhuNo6rAT","title":"20210222(월)","pathname":"/blog/undefined-1/diary/2021/february/20210221","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"February"}]},{"id":"-MUE_MISlAacYRI9hrLs","title":"20210223(화)","pathname":"/blog/undefined-1/diary/2021/february/20210222","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"February"}]},{"id":"-MUJSgpLuAgTFrYE0rfM","title":"20210224(수)","pathname":"/blog/undefined-1/diary/2021/february/20210224","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"February"}]},{"id":"-MUUMGrVKr7-H7PFTgaL","title":"20210226(금)","pathname":"/blog/undefined-1/diary/2021/february/20210226","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"February"}]},{"id":"-MUcR42Vfl0Lyc-l8sFp","title":"20210228(일)","pathname":"/blog/undefined-1/diary/2021/february/20210228","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"February"}]},{"id":"-MUnNTcPtHIvObK9Yw8S","title":"March","pathname":"/blog/undefined-1/diary/2021/march","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"}]},{"id":"-MUnNbZ5jxKMYE6P2Vi7","title":"20210302(화)","pathname":"/blog/undefined-1/diary/2021/march/20210302","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"March"}]},{"id":"-MUsZN29IL3cKhX_Qg0X","title":"20210303(수)","pathname":"/blog/undefined-1/diary/2021/march/20210303","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"March"}]},{"id":"-MUxrSorGifC5YeUXlA2","title":"20210304(목)","pathname":"/blog/undefined-1/diary/2021/march/20210304","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"March"}]},{"id":"-MV2-sZiwoQpsh7wmXRs","title":"20210305(금)","pathname":"/blog/undefined-1/diary/2021/march/20210305","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"March"}]},{"id":"-MV6uOCu2VMDy8BTSV4I","title":"20210306(토)","pathname":"/blog/undefined-1/diary/2021/march/20210306","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"March"}]},{"id":"-MVHBVNhuDQYcuW-7UQv","title":"20210308(월)","pathname":"/blog/undefined-1/diary/2021/march/20210308","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"March"}]},{"id":"-MVMceLXqI2w-9yZvaHO","title":"20210309(화)","pathname":"/blog/undefined-1/diary/2021/march/20210309","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"March"}]},{"id":"-MVRm-orV9IX1FAUqON7","title":"20210310(수)","pathname":"/blog/undefined-1/diary/2021/march/20210310","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"March"}]},{"id":"-MVWwm2cwxYjfMJ1RsVG","title":"20210311(목)","pathname":"/blog/undefined-1/diary/2021/march/20210311","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"March"}]},{"id":"-MVbF_aT4CEfI5Zk1WtD","title":"20210312(금)","pathname":"/blog/undefined-1/diary/2021/march/20210312","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"March"}]},{"id":"-MVgOv1UcvspTVtJFvPi","title":"20210313(토)","pathname":"/blog/undefined-1/diary/2021/march/20210313","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"March"}]},{"id":"-MVqcP1xq2FKcDEJ5AK2","title":"20210315(월)","pathname":"/blog/undefined-1/diary/2021/march/20210315","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"March"}]},{"id":"-MVvFsygosFwXYq7CqXP","title":"20210316(화)","pathname":"/blog/undefined-1/diary/2021/march/20210316","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"March"}]},{"id":"-MW-dWUdqTm0oEKNRHql","title":"20210317(수)","pathname":"/blog/undefined-1/diary/2021/march/20210317","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"March"}]},{"id":"-MW4OTyvV53Mr-qLats7","title":"20210318(목)","pathname":"/blog/undefined-1/diary/2021/march/20210318","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"March"}]},{"id":"-MW9h6WZqKNe-2seBp9M","title":"20210319(금)","pathname":"/blog/undefined-1/diary/2021/march/20210319","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"March"}]},{"id":"-MWPThIdr1wOM5DtEnBU","title":"20210322(월)","pathname":"/blog/undefined-1/diary/2021/march/20210322","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"March"}]},{"id":"-MWUauGSrfa6qeeGoNw3","title":"20210323(화)","pathname":"/blog/undefined-1/diary/2021/march/20210323","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"March"}]},{"id":"-MWZX5UXwMiEEEqzFqNi","title":"20210324(수)","pathname":"/blog/undefined-1/diary/2021/march/20210324","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"March"}]},{"id":"-MWy7-OiG7J-7YUV6CdC","title":"20210325(목)","pathname":"/blog/undefined-1/diary/2021/march/20210325","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"March"}]},{"id":"-MWy78ZOdCpwgksJgowo","title":"20210327(토)","pathname":"/blog/undefined-1/diary/2021/march/20210327","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"March"}]},{"id":"-MWy6uIoPQXiOS4Xra8Z","title":"20210329(월)","pathname":"/blog/undefined-1/diary/2021/march/20210329","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"March"}]},{"id":"-MX2iWrgHucZVHDg2s9B","title":"20210330(화)","pathname":"/blog/undefined-1/diary/2021/march/20210330","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"March"}]},{"id":"-MX7ObTc3wA_cSoEBr-r","title":"20210331(수)","pathname":"/blog/undefined-1/diary/2021/march/20210331","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"March"}]},{"id":"-MXbU8uXCUKYv4DsFu6Q","title":"April","pathname":"/blog/undefined-1/diary/2021/april","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"}]},{"id":"-MXbUGDTBBuwsAJdarzg","title":"20210406(화)","pathname":"/blog/undefined-1/diary/2021/april/20210406","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"April"}]},{"id":"-MXgqf6flFkhFRB0St0B","title":"20210407(수)","pathname":"/blog/undefined-1/diary/2021/april/20210407","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"April"}]},{"id":"-MXlHZPseslQffifc7xI","title":"20210408(목)","pathname":"/blog/undefined-1/diary/2021/april/20210408","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"April"}]},{"id":"-MXrBYMjsPbp_tIraUZL","title":"20210409(금)","pathname":"/blog/undefined-1/diary/2021/april/20210409","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"April"}]},{"id":"-MXw1xv0_fHYxVzMl-1S","title":"20210410(토)","pathname":"/blog/undefined-1/diary/2021/april/20210410","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"April"}]},{"id":"-MY5ZkalPOGV9G_xWvDt","title":"20210412(월)","pathname":"/blog/undefined-1/diary/2021/april/20210412","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"April"}]},{"id":"-MYBJwJkFUDovQMJ5nVA","title":"20210413(화)","pathname":"/blog/undefined-1/diary/2021/april/20210413","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"April"}]},{"id":"-MYKuDadCblBZItkmzCW","title":"20210414(수)","pathname":"/blog/undefined-1/diary/2021/april/20210414","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"April"}]},{"id":"-MYKuIlzp2n35qWKJoqV","title":"20210415(목)","pathname":"/blog/undefined-1/diary/2021/april/20210415","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"April"}]},{"id":"-MYQ3Z2DjgqGEDxnAJyC","title":"20210416(금)","pathname":"/blog/undefined-1/diary/2021/april/20210416","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"April"}]},{"id":"-MYVfYTSapn1RqGWyBaj","title":"20210417(토)","pathname":"/blog/undefined-1/diary/2021/april/20210417","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"April"}]},{"id":"-MYjtvL7RhghQg1wjUgU","title":"20210419(월)","pathname":"/blog/undefined-1/diary/2021/april/20210419","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"April"}]},{"id":"-MYjtjYZF1i4fEQFRtiB","title":"20210420(화)","pathname":"/blog/undefined-1/diary/2021/april/20210420","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"April"}]},{"id":"-MYogozX4lEuEs_NtbJY","title":"20210421(수)","pathname":"/blog/undefined-1/diary/2021/april/20210421","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"April"}]},{"id":"-MYtArFRbyXXZuWPt--r","title":"20210422(목)","pathname":"/blog/undefined-1/diary/2021/april/20210422","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"April"}]},{"id":"-MfcW9a4P4-dho7DzneB","title":"July","pathname":"/blog/undefined-1/diary/2021/july","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"}]},{"id":"-MfcWL-LS90-FrpuWNLH","title":"20210728(수)","pathname":"/blog/undefined-1/diary/2021/july/20210708","siteSpaceId":"sitesp_VsOvw","description":"","breadcrumbs":[{"label":"기타"},{"label":"일기장"},{"label":"2021"},{"label":"July"}]}]}