webdeveloping의 등록된 링크

키자드에 등록된 총 737개의 포스트를 확인하실 수 있습니다.

Naver Blog

[PS4/PS5] () 어쌔신크리드 발할라 2회차 후기

안녕하세요. 아오금입니다. 이번에 리뷰할 게임은 어쌔신 크리드 발할라 2회차입니다. 먼저 어쌔신크리드 발할라는 새게임+ (뉴게임+)가 없습니다. (다만 이전 회차에서 온라인 구매를 한 아이템은 소지 가능합니다) 게임의 진행 방식은 고대 삼부작인 오리진, 오디세이와 유사합니다. 다만 키 매핑이 좀 달라졌고 O가 확인 X가 취소가 되었습니다. 원래 플스에서 확인 취소와 어크의 확인 취소가 달랐는 데 이걸 유비에서 맞춰놓으니 PS5에서 확인 취소키가 변경된 아이러니한 상황이죠 ㅎㅎ PS5기준으로 프레임 모드와 그래픽 모드로 변경이 가능합니다. 프레임 모드 시 간헐적인 프레임 드랍 현상이 일어나긴 하더라구요. 위에서 말씀드린 대로 이전 작품들과 전체적인 방식은 유사합니다. 대신 레벨 시스템이 아닌 전투력 시스템입니다. 경험치가 쌓이면 스킬을 찍을 수 있는 포인트를 주고 그 포인트로 전투력을 올릴 수 있습니다. 이전 고대 시리즈 작품들과 같이 무기와 방어구도 낄 수 있습니다. 저 무기는 제가

Naver Blog

[신도림 맛집] 온더보더 (맥시코 음식)

사실 다녀온 지는 거의 한 달 됐는 데 깜빡하고 있다가 이제서야 글을 올린다...ㅎ 원래는 태국 음식을 먹으러 갔다가 웨이팅이 너무 길어 다시 온더보더로! 온더보더도 웨이팅이 꽤 있는 편이다. 두 번째로 방문한 온더보더는 맥시코 음식점으로 신도림 디큐브 시티 안에 있다. 디큐브 시티에서 바깥쪽에 있어 길을 잘 보고 가야한다. 메뉴를 주문하면 먼저 나쵸를 준다. 나쵸는 리필도 한 번 해주는 걸로 알고 있다. 세진쓰는 역시나 맥주도 시켰다^^; 맥주 잔이 겁나 크다. 다양한 메뉴들이 있는 데 이번엔 보더 샘플러와 보더볼 쉬림프를 시켰다. 보더 샘플러는 이것 저것 온더보더의 시그니처 메뉴들을 맛볼 수 있다. 느끼해 보이시쥬? 느끼하긴 하지만 그렇게 느끼하진 않다!? 보더볼 쉬림프는 요로코롬 생겼다. 안에는 밥이 들어가 있다. 2명에서 먹기에는 샘플러만 먹어도 충분할 것 같다. 배가 불러서 보더볼은 많이 먹지 못했다. (풀 싫어해서 그런거 절대 아님) 신도림 디큐브시티에 갈 일이 있으면 추

Naver Blog

K8 하브 계약 200일 기념(?)

차를 계약한 지 200일이란 시간이 지났다... 근데 문제는...? 앞으로 100일은 더 기다려야 된다는 거다. 무슨 차를 10개월을 기다려야 하냐... 그래도 지금 계약하면 1년 기다려야 된다는 데 그나마 낫다 ㅎ;; 언넝 케팔이가 내 곁으로 왔으면 좋겠다. 오면 자동 세차로 혼내줘야겠다. 차량용 반도체 문제 때문에 신차 출고가 어마어마하게 지연되고 있다. 거기에 화물 연대 파업의 여파까지 아직 남아있다고 한다. 쏘렌토 하브는 18개월이 대기라니 뭐 K8하브는 양반이다. 딜러 말로는 재수없으면 앞으로 4개월 더 기다려야 할지도 모른다고 한다. 중간에 감가차 전시차도 많이 도전해 봤지만 경쟁률이 너무 빡세서 항상 실패... 차를 계약할 땐 딜러의 마우스 클릭 속도를 미리 테스트 해봐야 하나? 이 차 저 차 돌고 돌아 최종 대기하는 차인 만큼 빨리 나왔으면 좋겠다. 그래도 차 나오면 세진쓰가 100만원 어치 사고 싶은 거 사준다고 했다. 나중에 딴 말 할까봐 미리 박제해 놔야지ㅋ_ㅋ

Naver Blog

[국회의사당 / 여의도 점심] 너섬 (청국장, 김치찌개, 고추장찌개)

어제는 비도 오고 날씨도 꽤나 선선해서 찌개가 땡기는 날이었다. 오랜만에 바로 옆 건물에 있는 너섬에 갔다. 원래는 보통 김치찌개가 먹고 싶으면 그 옆에 여의도식당에 갔었는 데 김치찌개 가격이 많이 올라서 요새는 잘 안 간다... 나는 김치찌개를 먹고 리밍짜이는 고추장 찌개를 먹었다. 어제 집에 가니 저녁이 고추장찌개였는 데 큰일날뻔;; 김치 찌개는 요렇게 생겼다. 고기도 꽤 많이 들었다. 근데 왜 얼마전에 갔을 때보다 뚝배기 크기가 작아진 거 같지??? 고추장 찌개는 요렇게 생겼다. 나는 여기서 청국장, 김치찌개, 고추장찌개를 다 먹었는 데 셋다 맛있다! 다 먹고 나올 때 후식으로 요구르트도 준다. 점심 메뉴로 아주 적당하다! 가격은 찌개류 8천원이다. 그리고 공기밥 대신 돌솥으로 하면 2천원이 추가되어 만원이다. http://naver.me/xAtkNBLN 너섬 : 네이버 방문자리뷰 264 · 블로그리뷰 32 naver.me

Naver Blog

[국회의사당 / 여의도 점심] 이자카야 쇼부 (돈카츠, 카레)

오랜만에 이자카야 쇼부를 갔다. 지난번에 실장님이 안 나와서 거의 30분 넘게 기다렸었는 데 이번에는 그래도 15분정도 만에 나왔다. 돈가스는 원래 좀 걸리니 이 정도면 양호하다. 이번엔 리밍짜이는 히레카츠(안심 돈가스) 나는 돈카츠 카레를 먹었다. 앞에 앉아 있는 사람은 죄수가 아니라 리밍짜이다. 먼저 히레카츠 단독 샷! 역시 돈가스는 로스카츠(등심 돈가스)보단 히레카츠다! 내가 먹진 않았지만 양도 꽤 적당해 보였고 리밍짜이도 맛있게 먹은 듯 가격도 9500원이라 적당한 편이다. 다음은 내가 먹은 돈카츠 카레 맛은 그럭 저럭 괜찮았고 먹다보니 양도 생각보다 많았다. 그리고 여기는 김치가 꽤 매운 편이다. 맵찔이한테는 맵다고 느낄 정도? 그리고 이번에는 꼭 메뉴판을 찍는 다는 게 나와서야 기억이 났다. 그래서 우선 밖에서 찍긴 했는 데, 실제 식당 안에 가면 더욱 더 다양한 메뉴가 있다. 저번 탄탄멘보단 나은 거 같다. 다음엔 돈가스 먹어 봐야지~ http://naver.me/Fsl

Naver Blog

[국회의사당 / 여의도 점심] 김명자굴국밥 (막국수)

오늘은 날씨가 너무 너무 더워서 김명자 굴국밥에 막국수를 먹으러 갔다. 굴국밥이 메인인 집이지만 이것 저것 많이 판다. 메뉴는 식사 메뉴 위주로 사진을 찍었다. 나는 굴을 싫어해서 여기서 굴 관련된 음식은 한 번도 안 먹어봤다. 거의 막국수를 먹으려고 온다. 맵찔이 리밍짜이는 오늘도 물 막국수를 시켰다. 나는 비빔 막국수 사진 찍고 블로그 올려야지 생각하고 있는 데 또 앞에서 보고 있던 리밍짜이가 "너 또 블로그에 올리면서 막국수는 비빔 막국수가 국룰인데 물막 시킨 리밍짜이 이런말 쓸거지?" 라고 했다. 응 아니야~ 사내놈이 쫑알 쫑알 말도 많길래 걍 무시했다. 이건 물막 비막 비교 샷 비막은 취향에 맞게 육수를 넣어서 먹으면 된다. 여름이라 웨이팅이 조금 있기는 하지만 본관 별관 크기가 커서 회전이 빠른 편이다. 그래도 확실히 비수기보단 오래 걸리긴한다. 다음엔 다른 메뉴도 먹어봐야겠다(굴 종류 제외 ㅎㅎ) http://naver.me/I5F4iVBE 김명자굴국밥 : 네이버 방문자

Naver Blog

[PS4] () 쉐도우 워리어 3(Shadow Warrior 3)

안녕하세요 아오금입니다. 이번에 리뷰할 게임은 쉐도우워리어3입니다. 7월 5일부터 PSN PLUS 스페셜 카탈로그 리스트에서 내려갈 예정이라 부랴부랴 다운받고 엔딩을 봤습니다. 쉐도우 워리어3는 폴란드의 게임 개발사에서 개발한 쉐도우 워리어 시리즈 중 세 번째 작품입니다. 플탐이 짧고 다시 1편의 시스템으로 돌아가며 그리 좋은 평을 받지는 못했습니다. 병맛 1인칭 FPS 액션 게임으로 전편을 플레이 하지 않아도 크게 이해하는 데 어려움은 없습니다. 초반 컷씬을 보고 꽤 그래픽이 훌륭한데? 라고 생각을 했지만 인게임에선 비교적 처참한 편입니다.ㅎㅎ 저는 PS5로 플레이하여 인 게임 60프레임이 지원됐지만 PS4는 어떨지 모르겠습니다. 검색해 보시면 둠 이터널과 매우 비슷한 시스템이라고 합니다. 저는 둠 이터널은 안 해서 ㅎㅎ;; 먼저 주인공인 루 왕입니다.(king 아님) 전반적인 스토리는 세계를 파괴하려는 드래곤을 막는 이야기입니다.(병맛 컨셉) 게임 플레이는 방식은 매우 심플합니다

Naver Blog

[PS5] () 데스 스트랜딩(DEATH STRANDING) 디렉터스 컷

안녕하세요. 아오금입니다. 이번에 리뷰할 게임은 호불호가 심하기로 유명한 쿠팡맨 게임 데스 스트랜딩입니다. PS4에서 처음 출시됐을 때 하다가 중도 하차하고 이번에 PS5 디렉터스컷으로 플레이했습니다. 엔딩본 게임만 리뷰를 올리고 있기 때문에 이전에 따로 리뷰는 작성을 안 했었습니다. 최초 발매일은 PS4로 2019년 11월이며, 메탈 기어 시리즈의 코지마 히데오가 만든 신생 코지마 프로덕션에서 만든 게임입니다. 배경은 데스 스트랜딩이라는 재앙이 휩쓸고 난 후 해체된 미국을 다시 재건하는 내용입니다. 독특한 분위기와 수 많은 떡밥을 회수하며 재미를 느낄 수 있는 게임이기 때문에 이 이상의 스토리 언급은 자제하겠습니다. 아마 데스 스트랜딩을 플레이하지 않으신 많은 분들이 쿠팡맨 게임으로 알고 계실겁니다. 쿠팡맨이 맞냐구요? 네 맞습니다 ㅎㅎ 이 게임의 메인은 화물 '배송'이기 때문입니다. 단지 이 배송의 목적이 미국의 재건과 카이랄 네트워크 연결일 뿐이죠. 기본적인 게임의 흐름은 고객

Naver Blog

[부천 옥길동 맛집] 옥길장터식당 세 번째 방문

지난 주말에 세진쓰와 함께 옥길동에 있는 옥길 장터 식당을 다녀왔다. 벌써 세 번째 방문인데 저번엔 묵은지 매운 소갈비 정식을 먹었다.(맛있다) 일단 맛있는 건 당연하고 사장님과 직원분들이 엄청 친절하다. 과하지 않은 친절함이라 더 친절하게 느껴진다. 메뉴는 아래 이미지와 같이 다양하다. 묵은지매운소갈비 정식, 삼겹살, 양념 돼지갈비 등을 판매한다. 이번에는 한돈 수제 돼지갈비를 먹었다. 기본 상차림인데 몇 가지가 짤렸다.ㅎㅎ;; 맛있는 돼지 갈비를 불판에 올린다. 지글지글 고기가 크고 두툼하다. 양념도 잘 베어있다. 이제 잘 익은 고기를 슥슥 자른다. 크~~ 다시 침이 고인다. 한국인은 밥심이기 때문에 밥과 후식 된장찌개도 시켰다. 된장 찌개도 적당히 간이 되어 있어서 맛있다. 그리고 갈비에는 빠질 수 없는 냉면도 시켰다. 비냉인데 맛있긴 한데 조금 매워서 매운 걸 잘 못드시는 분들은 물냉을 드시길! 깜빡하고 사진을 먹다가 찍었다...(음쓰 아님) 갈잘알이면 마지막엔 갈비대를 잡고

Naver Blog

[PS4/PS5] 어쌔신 크리드 오리진 주말 무료 플레이(2022.06.16 ~ 2022.06.20)

안녕하세요. 아오금입니다. 어쌔신 크리드 15주년을 기념하여 유비소프트에서 주말간 무료 플레이를 제공합니다. 어쌔신 크리드 오리진만 해당되며 주말만 무료로 가능하기 때문에 라이브러리에 담아두셔도 지속 이용은 불가합니다. 최근 60프레임 패치도 되었고, 고대 3부작의 첫 작품인 만큼 관심있으셨던 분들이라면 플레이 해보시길 추천합니다. 출처 : https://news.ubisoft.com/ko-kr/article/4e9KdRlYOzhkqT6iGahh5E/15 고대 이집트의 모습을 잘 담아낸 게임이기 때문에 꽤나 수작의 평을 받았습니다. 플레이해보고 괜찮으시면 정식 구매 후 오디세이와 발할라도 플레이해보시길 추천합니다. 보다 자세한 사항은 아래 주소를 참조하시기 바랍니다. https://news.ubisoft.com/ko-kr/article/4e9KdRlYOzhkqT6iGahh5E/15 어쌔신 크리드의 15주년 기념 행사가 시작됩니다. 먼저 어쌔신 크리드 오리진 업데이트와 무료 주말을 함

Naver Blog

[Vue] 폼 입력 바인딩 - v-model 수식어

먼저 input태그의 입력된 값이 div 태그에 실시간으로 나오는 기본 소스를 작성한다. <!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Vue test</title> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> </head> <body> <div id="app"> <input type="text" v-model="message"> <div>{{ message }}</div> </div> <script> const vm = new Vue({ el: '#app', data : { message : 'Hello~'

Naver Blog

도로에서 프라이드 1세대 목격!

지난주 토요일에 세진쓰를 만나러 가는 길에 항동에서 신기한(?) 차량을 목격했다. 보자마자 어? 저거 뭐지? 프라이드 같이 생기긴 했는 데... 진짜 처음 보는 차였다. 알고보니 이 차는 프라이드 1세대 5도어 차량이었다. 출처:https://namu.wiki/w/%EA%B8%B0%EC%95%84%20%ED%94%84%EB%9D%BC%EC%9D%B4%EB%93%9C/1%EC%84%B8%EB%8C%80 기아가 1987년부터 1999년까지 생산한 차량이라는 데 그 중 5도어 모델이 초기 모델이라고 한다. 그러면 대략 저 차는 87~90년 초 라는 걸텐데 91년생인 내가 모르는 건 당연한 건가...? 나무 위키를 찾아보니 프라이드 1세대는 트림을 제외하고 차체 형태 및 분류만으로도 3도어, 3도어 밴, 5도어 헤치백, 4도어 세단, 5도어 왜건으로 나왔었다고 한다. 저 차는 차주가 정말 관리를 잘 한 거 같다. 외관 상태도 깔끔했고 무엇보다 88년도에 생산되었던 차를 지금까지 유지하다니.

Naver Blog

[PS5/XBOX] 바이오하자드 7, RE:2, RE:3 업그레이드 소식

안녕하세요. 오늘 반가운 소식이 나왔네요. 바로 바이오하자드(레지던트 이블) 차세대 기기 업그레이드 입니다. 캡콤에서 바이오하자드 7, 바이오하자드 RE 2, 바이오하자드 RE 3를 무료 업그레이드를 제공한다고 합니다. 차세대 기기는 PS5와 XBOX SERIES X|S 입니다. 아직 한국 플스 블로그에는 소식이 올라 오지 않았습니다. 업그레이드는 금일(2022.06.14) 예정이라고 합니다. 업그레이드는 레이 트레이싱 비주얼, 3D 오디오, 듀얼센스 햅틱 피드백 및 적응형 트리거 등의 적용이라고 합니다. 아래는 플스 공식 블로그에 있는 gif 들입니다. https://thumbs.gfycat.com/BlueOpulentIguanodon-size_restricted.gif https://thumbs.gfycat.com/MarvelousVeneratedAsp-size_restricted.gif https://thumbs.gfycat.com/DismalAdoredBluebottle-si

Naver Blog

[국회의사당 / 여의도 점심] 자금성 요일 메뉴 (feat 순두부차돌짬뽕)

오늘은 새로운 식당을 갔다. 요새 미스터 선샤인을 보면 자꾸 삼계탕이 나와서 그것만 보면 삼계탕이 먹고 싶어 진다. 리밍짜이도 최근에 미스터 선샤인을 다시 본다고 해서 그거 보고 반계탕 땡긴대서 원래는 반계탕 집을 가고 있었다. 근데 삼계탕 집 바로 앞에 중국집 간판이 있었고 중국인(?) 리밍짜이는 그걸 그냥 지나치지 못하고 메뉴판을 확인하게 됐다. (리밍짜이는 한국인이다) 결국 어쩌다 보니 메뉴가 반계탕 -> 순두부차돌짬뽕으로 순식간에 변경됐다. 여기는 특이한 게 요일 메뉴가 있다. 요일메뉴 8,000원 월 새우볶음밥 화 순두부차돌짬뽕 수 잡채밥 목 라조육밥 금 자금성특밥 오늘은 화요일이라 순두부차돌짬뽕이었다. 그래서 순두부차돌짬뽕이라고 주문했는 데 담부터는 요일 메뉴라고 주문하면 된다고 하셨다. 나는 무심결에 순두부차돌짬뽕... 이라고 따라했는 데 그걸 들은 리밍짜이가 군대냐고 복명복창을 왜 하냐고 했다. 야수교 위병조장 서면서 21개월 꿀만 빨다 온게 어디 감히 강원도 양구 정

Naver Blog

[Vue] 이벤트 핸들링 - 키 수식어

이번 예제는 키와 관련된 이벤트들이다. input 태그에 텍스트를 입력하고 엔터를 쳤을 때 done! 이라는 메시지를 띄우고 싶다고 가정하자. 만약 우리가 key 수식어를 모른다고 하면 아래와 같은 방법을 사용할 것이다. <!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Vue test</title> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> </head> <body> <div id="app"> <input type="text" @keydown="keydownHandler"> </div> <script> con

Naver Blog

[Vue] 폼 입력 바인딩 - v-model과 한글 사용

input 태그의 데이터 바인딩 테스트를 위해 먼저 아래와 같이 소스를 작성한다. <!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Vue test</title> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> </head> <body> <div id="app"> <input type="text" :value="message"> </div> <script> const vm = new Vue({ el: '#app', data: { message: 'hello~' } }) </script> </body> </html>

Naver Blog

[국회의사당 / 여의도 점심] 이화그릴 한우된장찌개

이화그릴만 벌써 세 번째로 올리는 글이다. https://blog.naver.com/webdeveloping/222729757357 [국회의사당 / 여의도 점심] 이화그릴 오늘은 한 달전부터 가야지 가야지 하다가 드디어 이화그릴에 갔다. 금룡이랑 같은 건물이어서 알고 있던 ... blog.naver.com https://blog.naver.com/webdeveloping/222738356945 [국회의사당 / 여의도 점심] 이화그릴 매콤깍두기볶음밥 오늘은 지난번에 갔던 이화그릴에서 매콤깍두기볶음밥을 먹었다. 저번 직화제육이 성공적이어서 이번에 새... blog.naver.com 메뉴를 한 번씩 다 먹어보고 싶어서 오늘은 한우 된장찌개를 먹었다. 이름은 한우 된장찌개인데 고기는 차돌박이로 보이는? 쪼가리 몇개 들어가 있다. 합쳐도 이차돌 한우된장찌개 한조각도 안 될 듯...? 맛도 약간 밍밍하고 이화그릴에서 먹었던 것 중에 제일 별로였다. 1등 직화제육 2등 깍두기 볶음밥 3등 된장찌

Naver Blog

[PS4/PS5] PSN 스페셜 카탈로그에서 다수 게임이 구독 종료될 예정입니다.

안녕하세요. 얼마전에 레데리2가 9월 20일까지 구독이 가능하다는 정보를 공유했었습니다. 이외에 7~8월에 3개 게임이 더 종료될 예정입니다.(총 4종) 리스트는 아래와 같습니다. 1. 쉐도우 워리어 3(PS4) / 2022.07.05 / AM 10:00 2. NBA 2K22(PS4/5) / 2022.08.31 / AM 10:00 3. WRC 10(PS4/5) / 2022.08.31 / AM 10:00 4. 레드 데드 리뎀션 2(PS4) / 2022.09.20 / AM 10:00 아직 플레이하지 않으셨고 관심있는 게임이 있으시다면 기간 내에 꼭 플레이하시길 바랍니다. 특히 쉐도우 워리어3는 한 달도 채 남지 않았네요. 그닥 평이 좋은 게임은 아닌 걸로 알고는 있습니다. 레데리는 꼭 해보시길 추천드립니다! 제외되는 게임이 있는 만큼 더 많은 게임이 빨리 추가 되었으면 좋겠네요. 게임 패스 따라가려면 아직 멀었습니다... 휴

Naver Blog

[PS4/PS5] 장르별 플스 게임 추천 총 정리 (2022.06.10)

안녕하세요. 지극히 개인적인 플스 게임 추천리스트 업그레이드(?)판입니다. 장르별로 나눠봤는 데요, RPG, TPS, FPS 이런식으로 나누려다가 사실 너무 애매한 게임도 많고... 입문자들을 위한 글이다 보니 이해하기 더 어려울 수도 있을 거 같아 아래와 같이 나눠봤습니다. 기준은 입문 대표작, 스토리가 뛰어난 게임, 오픈월드 게임, 2인 이상 협동 게임, 턴제 게임, 어려운 난이도 게임, 스포츠 게임, 공포 게임, 1인칭 게임, 액션, 퍼즐, 로그라이크, 무쌍으로 분류하였습니다. 1인칭 게임에 메기솔과 좀비아미 같은 경우는 1인칭이 아닌데 수정을 못했네요... 원본 엑셀 파일을 못 찾아서... 중복되는 리스트들도 많습니다. 예를 들어 고오쓰는 입문 대표작이면서 액션 게임이기도 하고 오픈월드 개념도 갖고 있으니깐요 해당 이미지는 PC에 최적화 되어 있습니다. 아이폰 12PRO 기준(블로그앱 or 크롬 브라우저 이용 시)으로는 모바일에서도 깨짐 현상은 없네요. 현재 리뷰 페이지는 엔

Naver Blog

[PS5] The Last Of Us (라오어) 1 리메이크 소식 대박!

안녕하세요. 루머로 계속 떠돌던 라오어1이 갑작스럽게 발표되었습니다. 출시 예정일은 2022년 9월 2일입니다. 리마스터가 아닌 리메이크입니다. 제목은 THE LAST OF US PART 1 입니다. 찾아보니 PC도 동시 출시하는 걸로 보이네요 PS3로 나왔던 라오어1이 리메이크되어 PS5로 나올 예정입니다. 리마스터와 리메이크는 다릅니다. 리메이크는 말 그대로 다시 만드는 것으로 컨셉을 유지하되 완전히 다른 소스로 개발됩니다. 라오어 2 엔진으로 만들어질 것으로 예상되며, 추가 스토리도 예상됩니다. 하지만 스토리가 중요한 라오어의 특성상 스토리 부분은 큰 변화가 없지 않을까 예상되네요 (추가 스토리 정도) 아래부터 라오어 1 리마스터 정보입니다. 출처 : https://blog.playstation.com/tachyon/2022/06/9ff638052e06ef766a4c32959e2193fe814aab58.png?resize=2160%2C2160&zoom=1 출처: https://

Naver Blog

[DB / SQL] 최댓값을 가진 로우(row)들 추출하기(단일 맥스 값 아님)

여기에서 일하면서 진짜 오랜만에 쿼리를 작성했다. 오랜만에 짜려니깐 머리가 굳어버림... 특정 키 값을 가진 데이터들 중에서 보험 갱신 회차가 최대인 녀석들만 골라서 추출해야 하는 건이었다. (예 차량번호가 동일한 차량으로 여러 번 보험이 갱신되는 데 이 중 가장 마지막으로 갱신된 회차인 데이터 추출) 특정 테이블에서 최댓값만 뽑는 건 뭐 워낙 쉬우니... 이번 케이스도 예전 같았으면 고민도 안 하고 짰을 텐데 확실히 안 하면 잊나 보다. 각설하고 나는 같은 테이블을 이너 조인해서 작성했다. 셀프 조인으로도 가능하긴 하지만 뭐 사실 셀프 조인보단 이너 조인이 사용 빈수도 월등히 많고 익숙할 거 같아서 이너 조인으로 했다. SELECT a.colname1, a.colname2 FROM table A, (SELECT colname1, Max(colname2) AS colName2 FROM table B GROUP BY colname1) B WHERE a.colname1 = b.colna

Naver Blog

[국회의사당 / 여의도 점심] 한방대가삼계탕

오늘은 오랜만에 반계탕을 먹으러 갔다. 원래 순대국 먹으러 가는 길이었는 데 그저께부터 보기 시작한 미스터 선샤인에서 닭다리 뜯어 먹는 게 급 생각나서 점심 메뉴를 바꿨다. 오랜만에 사진 찍으려니깐 깜빡했는 데 리밍짜이가 말해줘서 기억났다. 꼬붕 하나 델꼬 다니면 이래서 편함 ㅋㅋ 급하게 찍느라 사진이 초점이 나갔다. 맛은 그냥 반계탕 맛이다. 반계탕은 8천원이고 한방 반계탕은 9천원이다. 나는 일반 반계탕 먹었다. 뚝배기 닭볶음탕도 파는 데 다음엔 그걸 꼭 먹어봐야겠다. 뚝닭볽음탕도 가격표 보니깐 8천원이었다. 근데 반계탕은 양이 좀 적다. 먹는 양이 좀 되는 사람은 삼계탕 혹은 반계탕에 찹쌀을 추가해야 할 거 같다. 점심시간에 사람이 굉장히 많은 편이지만 홀이 커서 웨이팅도 없고 있어도 잠깐 기다리면 다 빠진다. 여기도 두 번째 방문이다. http://naver.me/xqf3tF9Q 한방대가삼계탕 여의도점 : 네이버 방문자리뷰 218 · 블로그리뷰 31 naver.me

Naver Blog

[Excel] 엑셀로 대량의 INSERT / UPDATE 문 생성하기

얼마전에 개발원 코드라는 게 생겨나서 2500개의 UPDATE문을 만들어야 하는 일이 생겼다. 각각 차량별로 개발원 코드가 다르기 때문에 SQL문을 무조건 2500개를 작성해야 하는 상황이다. 이거를 일일이 하나 하나 치고 있으면 그건 정신 나간 짓이다. 내가 써놓은 예시는 UPDATE문이지만 보면 INSERT 문도 간단하게 만들 수 있다. Excel을 수식을 이용하여 아주 간단하게 대량의 update, insert 문을 만드는 방법이다. 예) ="update table set col2 ='"&C3&"' where col1 ='"&B3&"';" 이런식으로 하나의 셀에만 데이터를 넣어주고 우측 하단 끝 부분을 마우스로 쭈욱 드래그하거나 더블 클릭하면 수천개도 순식간에 만들 수 있다.

Naver Blog

[Vue] 이벤트 핸들링 - 이벤트 수식어

이벤트 핸들러 내부에서 event.preventDefault() 또는 event.stopPropagation()를 호출하는 것은 매우 보편적인 일입니다. 메소드 내에서 쉽게 이 작업을 할 수 있지만, DOM 이벤트 세부 사항을 처리하는 대신 데이터 로직에 대한 메소드만 사용할 수 있으면 더 좋을 것입니다. 이 문제를 해결하기 위해, Vue는 v-on 이벤트에 이벤트 수식어를 제공합니다. 수식어는 점으로 표시된 접미사 입니다. .stop .prevent .capture .self .once .passive 출처: <https://kr.vuejs.org/v2/guide/events.html#%EC%9D%B4%EB%B2%A4%ED%8A%B8-%EC%88%98%EC%8B%9D%EC%96%B4> 먼저 .stop은 이벤트 버블링을 막아주는 역할을 한다. .prevent는 preventDefault()와 같은 기능을 한다. .capture는 이벤트 캡처링을 옵션으로 두는 것과 동일한

Naver Blog

[신도림 맛집] 고동함박

지난주 금요일에 고동함박을 다녀왔다. 저번에 승정이형이 알려준 정육 식당 가는 길에 있어서 쉽게 찾을 수 있었다. 1번 출구로 나와서 그냥 쭉 걸어가면 된다. 그러면 신호등이 하나 나오고 고동함박이 바로 보인다. 눈에 엄청 띄어서 못 볼 수가 없다. 출처 : https://search.pstatic.net/common/?autoRotate=true&quality=95&type=w750&src=https%3A%2F%2Fldb-phinf.pstatic.net%2F20220221_129%2F1645430126319dSYJY_PNG%2F20220221_165501.png 메뉴는 엄청 다양하게 있다. 출처: https://search.pstatic.net/common/?autoRotate=true&quality=95&type=w750&src=https%3A%2F%2Fldb-phinf.pstatic.net%2F20220221_134%2F16454310283803V8jV_JPEG%2F22%25B

Naver Blog

[PS4/PS5] PSN 스페셜 카탈로그 레드데드리뎀션2가 내려갈 예정입니다.

안녕하세요. 안타까운 소식이 있네요. 6월 2일에 공개된 PSN 스페셜 카탈로그에서 레드데드리뎀션2(레데리2)가 내려갈 예정입니다. 역시 락스타 게임즈는 돈을 밝히는... 처음 공개 됐을 때부터 락스타의 레데리가 포함된 게 의아했는 데 역시나 금방 내려가는 군요 9월 20일부터 구독 카탈로그에서 제외될 예정이니 아직 플레이하지 않으신 분들은 꼭꼭 플레이하셔야 할 갓겜입니다. 초창기에 작성한 리뷰라 많이 허접하네요. 참고만 해주시면 될 것 같습니다. https://blog.naver.com/webdeveloping/222288140791 [ps4] () 레드데드리뎀션2 안녕하세요. 이번에 리뷰할 게임은 범죄 게임 전문 락스타의 레드데드리뎀션2(레데리2)입니다. 사실 별을 4... blog.naver.com

Naver Blog

[PS5] () 스파이더맨 마일즈 모랄레스 PS5로 2회차

안녕하세요. 이번에 리뷰할 게임은 스파이더맨 마일즈 모랄레스입니다. 출시한지 얼마 안 되고 PS4로 플레이했었는데, 이번에 스페셜 카탈로그에 포함이 되어 PS5로 다시 해봤습니다. 원래도 좋은 게임이었지만 60프레임에 듀얼센스 햅틱 피드백과 적응형 트리거가 적용되고 나니 퀄리티가 급상승했습니다. 성능 모드와 품질 모드는 처음 시작할 때 고를 수 있고 옵션에서 언제든지 변경 가능합니다. 이번 스파이더맨의 주인공은 피터가 아닙니다. 제목에도 있듯이 마일즈가 주인공입니다. 마일즈 모랄레스의 특징은 전기를 사용합니다. 마치 스파이더맨 계의 피카츄랄까...? 그러다 보니 전투 이펙트 자체가 전작보다 더 화려해졌습니다. 또한 역시 스파이더맨의 가장 큰 장점은 배경입니다. 멋진 도시를 스파이더맨이 되어 활보하는 것 또한 이 게임의 가장 재밌는 요소 중 하나입니다. 지하철을 통해서 빠른 이동이 가능한데도 이상하게 거미줄을 쏘면서 이동하게 됩니다...ㅎㅎ 플레이 방식은 전작과 거의 동일합니다. 퀘스

Naver Blog

[Vue] 리스트 렌더링 - Vue.set, this.$set

바로 지난번에 포스트에서 만들었던 todos의 배열 데이터 부분을 set이라는 메소드를 통해 반응성을 가지게 값을 할당하는 예제다. 소스는 이전 포스트에 작성했던 소스를 가져와 추가한다. 아래 예제는 배열에 동적으로 데이터를 추가하는 소스다.(Vue.set 사용) <!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Vue test</title> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> </head> <body> <div id="app"> <ul class="todos"> <button @click="pushTo

Naver Blog

[Vue] 이벤트 핸들링 - 메소드 이벤트 핸들러

테스트 환경을 구축하기 위해 todos라는 배열을 선언하고 그것을 화면에 뿌려주는 기본 소스를 작성한다. <!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Vue test</title> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> </head> <body> <div id="app"> <ul> <li v-for="(todo, index) in todos" :key="index"> {{ todo.title }} </li> </ul> </div> <script> const vm = new Vue({ el: '#app'

Naver Blog

[PS4/PS5] PSN PLUS 2022년 6월 무료 게임 공개

PSN 6월 무료 게임이 드디어 공개되었습니다. 루머와 게임 하나 빼고는 동일하게 나왔네요~ 보통 무료 게임은 매월 마지막 주 목요일에 공개되고 그 다음주 화요일부터 라이브러리에 담을 수 있습니다. 아직 지난 5월 무료 게임을 라이브러리에 담지 않은 분들은 미리 미리 담아두시기 바랍니다. 다들 무료 게임이라고 하지만 엄밀히 보자면 무료 게임이 아닌 PSN PLUS 에센셜 이상의 구독자에게만 제공됩니다. 라이브러리에 한 번 담아두시면 psn+ 구독을 하는 도중엔 언제든지 다운 및 플레이하실 수 있습니다. PS4/5 - CAN'T DRIVE THIS PS4 - God Of War PS4 - Naruto Boruto : shinobi Striker 출처 : https://blog.ko.playstation.com/2022/06/02/20220602-psplus/ 개인적으로 이번 6월 게임은 매우 매우 실망적이네요... 갓오브워가 대작 갓겜인 건 인정하지만 PSN 에센셜의 PSN 컬렉

Naver Blog

[부천 옥길동 맛집] 세컨디포레스트 파스타, 피자

다녀온 지는 좀 됐지만 부천 옥길동에 있는 세컨디포레스트를 다녀왔다. 서빙하시는 분이 과하게 친절한 편이다. 주문을 하고 나면 먼저 식전빵이 나온다. 좋아하는 사람들은 엄청 좋아하겠지만 난 시큼한 맛이 싫어서 저 소스를 별로 좋아하진 않는다. 세진쓰는 엄청 좋아하는 듯ㅎㅎ;; 메뉴는 두 개를 시켰다. 청양 크림 파스타와 스테이크 샐러드 롱기 피자 일단 청양 크림 파스타는 청양의 매콤한 맛 때문에 느끼함을 거의 느끼지 못했다. ㅎㅎ... 똥손이라 사진은 잘 못 찍는다... 그리고 바로 이어서 피자가 나왔다. 비주얼은 일단 합격쓰 맛은 풀 맛이 좀 강하다. 나 같은 고기파를 위해 스테이크도 올라가 있지만 풀 향이 좀 더 쎈 거 같다. (1년치 채소 다 먹은 듯) 피자가 그리고 생각보다 꽤 컸다. 가게 인테리어도 깔끔하고 다음에 한 번쯤 다시 갈만한 곳이었다. (다음엔 풀 없는 피자 먹을 거다.) 그리고 주차장은 따로 없지만 주말 기준으로는 근처 길가에 댈 곳이 많았다. http://na

Naver Blog

[PS4/PS5] () 컨트롤 (Control)

안녕하세요. 이번에 리뷰할 게임은 컨트롤(Control)입니다. 출시하고 얼마 안 돼서 psn 무료 게임으로 풀렸었던 게임입니다. 중반부부터는 약간 억지로 해서 그런지 초반부 스샷밖에 없네요... 그 당시에는 안 받았고 이번에 스페셜 구독 리스트에 포함되어 있어서 플레이하게 되었습니다. 게임 카탈로그에는 PS5 기준 얼티메이트 에디션으로 플레이 가능합니다. 메타스코어는 얼티 기준으로 84점 유저 스코어는 6.8점을 기록하고 있습니다. (일반판은 이거보다 조금 낮네요) 유저 스코어가 낮은 이유는 특유의 호불호 때문인 것 같습니다. 호불호 요소를 고르자면 첫 번째로 매우 난해한 스토리입니다. 뭐 대충 동생을 찾으려는 거는 알겠는 데 그거 이외에는 단순 컷씬만 봐서는 스토리가 전혀 이해되지 않습니다. 주인공이 뭔가를 알아챘을 때마다 독백을 하는 데 그것 조차 이해가 안 갑니다. 스토리에 대한 이해를 하려면 맵을 돌아다니면서 얻는 단서들을 꼼꼼하게 읽어봐야지 가능합니다. 두 번째로 난이도

Naver Blog

[PS5] () 더 라스트 오브 어스 2(The Last of us 2) PS5로 2회차 후기

안녕하세요. 이번에 리뷰할 게임은 라오어2의 2회차 플레이 후기입니다. 1회차를 발매일에 구매하여 플레이 했으니 어느새 거의 일년 반이라는 시간이 지났네요. PS5 60프레임 패치 소식 이후 계속 미루다가 드디어 다시 플레이했습니다. 라오어2의 스토리 논란과 기타 논란 요소들 때문에 특정 지점부터는 초 강력 스포가 있으니 보시는 분들은 주의하시기 바랍니다. 특정 지점은 제가 따로 표시해 두겠습니다. 먼저 결론부터 말씀드리면 1회차 보다 훨씬 쾌적한 환경에서 플레이 가능합니다. 저는 프레임에 꽤나 예민한 편인데 프레임 드랍을 느끼지 못했습니다. 너티독 게임의 그래픽은 정말 뭐 말로 표현할 것도 없죠. 컷씬과 인 게임에서의 인물 표현이 큰 차이가 없습니다. 그만큼 인 게임에서의 모델링이 매우매우 훌륭합니다. 스토리와 특정 불편한 요소를 빼고는 깔 것이 없다라는 말에 전적으로 동감합니다. 아직 플레이하지 않으신 분들에겐 마음을 내려놓고 하면 강추할 수 있는 게임입니다. 다만 1의 여운을

Naver Blog

[PS4/PS5] PSN PLUS 2022년 6월 무료 게임(루머)

++ 추가 PSN 6월 게임이 공식 공개되었습니다. https://blog.naver.com/webdeveloping/222756265637 [PS4/PS5] PSN PLUS 2022년 6월 무료 게임 공개 PSN 6월 무료 게임이 드디어 공개되었습니다. 루머와 게임 하나 빼고는 동일하게 나왔네요~ 보통 무료 ... blog.naver.com 보통 무료 게임은 매월 마지막 주 목요일에 공개되고 그 다음주 화요일부터 라이브러리에 담을 수 있습니다. 간혹 마지막주 목요일이 5월 말경이 아닐 경우 그 다음주 목요일에 풀립니다. 아직 지난 5월 무료 게임을 라이브러리에 담지 않은 분들은 미리 미리 담아두시기 바랍니다. 다들 무료 게임이라고 하지만 엄밀히 보자면 무료 게임이 아닌 PSN PLUS 에센셜 이상의 구독자에게만 제공됩니다. 라이브러리에 한 번 담아두시면 psn+ 구독을 하는 도중엔 언제든지 다운 및 플레이하실 수 있습니다. 참고로 해당 게임 리스트는 정식 공개가 아닌 유출 루머이기

Naver Blog

[PS5] 어쌔신 크리드 오리진 60프레임 소식 및 배포 일정

어쌔신크리드 오디세이에 이어 오리진도 60 FPS로 업데이트 됩니다. 예정 일정은 6월 2일입니다. 오디세이 때와 마찬가지로 신세대 콘솔인 XSX, XSS, PS5만 대상이며 업데이트 형식으로 배포될 것 같습니다. 오디세이도 60프레임 패치 후 2회차를 돌렸는데 오리진도 해봐야겠습니다. 엑박 진영은 다음주에 게임 패스에도 등록됩니다 6월 7일로 알고 있습니다. 플스 진영도 좀 힘냈으면 좋겠네요...

Naver Blog

[국회의사당 / 여의도 점심] 이자카야 마중 (돈가스 정식)

오늘은 이자카야 마중에서 오랜만에 돈가스를 먹었다. 코로나 거리두기 해제 후 여의도에 사람이 너~~무 많아져서 갔다가 맨날 돌아왔었는 데 오늘은 사람이 별로 없어서 웨이팅이 없었다. 왜 돈가스 정식이냐면 카레도 나오고 나가사끼 짬뽕 국물도 나온다. 돈가스는 맛있고 나머지는 그럭 저럭 쏘쏘 먹을만하다. 근데 밥을 쥐똥만큼 주긴한다. 그래서 예전에 밥을 좀 만 더 달라고 했는데 밥 양 확인해 보고 말씀드릴게요 하더니 갑자기 입 싹 닫고 안 줬던 기억이 있다. 아니 부족해서 안 되면 안 된다고 말이라도 해주지... 왜 입 꾹닫하지...? 강요한 것도 아니고;; 근데 오랜만에 오늘 거기 가니깐 그 아줌마가 없었다. 짤린듯ㅋㅋ 개꿀딱 가격은 모든 구성 합쳐서 9,500원이다. 요새 일식 돈가스는 거의 만원 시작인데 그런 곳에 비해 여기는 많이 저렴한 편이다. 사람만 많지 않으면 자주가고 싶다... 근데 웨이팅이 너무 잦다... 맛은 있다 자주가는 식당 중 하나 http://naver.me/F

Naver Blog

[PS4/PS5] PSN + 구독 서비스 게임 카탈로그(이미지)

해당 리스트는 스페셜을 구독하는 구독자에게만 제공됩니다. 변경된 구독 정보는 아래 링크에서 확인 가능합니다. https://blog.naver.com/webdeveloping/222735531234 [PS4/PS5] PSN + 구독 서비스 변경 플스 유저분들이라면 대부분 PSN+ 구독 서비스를 알고 계실 겁니다. PSN+ 구독 서비스 이용 시 온라... blog.naver.com 며칠전에 구독이 공개되고 A-Z 리스트를 올렸습니다만, 실제 해당 카테고리에서 빠진 게 몇 개 있더군요 대표적으로 이스8과 나루토 등이었습니다. 해당 이미지 참고하세요~ 출처 : https://m.ruliweb.com/ps/board/300421/read/30990675

Naver Blog

[PS4/PS5] PSN + 구독 개편 가격 오류 수정 완료

현지시간 기준 2022.05.24일 psn 구독 서비스가 개편되었습니다. 개편 되자마자 게임 수도 생각보다 많이 적고 무엇보다 업그레이드 비용이 이상하여 많은 논란이 있었습니다. 우선 기존 psn plus 이용자들은 모두 에센셜 등급이 되었습니다. 이제 취향에 따라 스페셜 혹은 디럭스로 업글을 해야합니다. 업글을 하려고 보니 어라? 금액이 이상한 겁니다. 우선 에센셜은 연간 이용권 기준으로 44,900원이고 스페셜은 75,300원입니다. 제 경우는 미리 사둔 구독권 때문에 560일 정도가 남아 있었습니다. 1년 해당 구독권의 차액은 30,400원 입니다. 그래서 저도 당연히 4~5 만원을 예상하고 있었습니다. 하지만 오픈을 하고 나니 ?? 비용이 6만 9천원이라고 나옵니다. 아니 2년이 안 되는 데 아무리 보수적으로 계산을 해도 도저히 나올 수 없는 수치인데? 하고 검색을 해보니 저와 같은 현상이 많았으며 알고보니 소니에서 결제 금액을 기준으로 계산을 했습니다. 예를들어 내가 구독권

Naver Blog

[국회의사당 / 여의도 점심] 여의도 버섯 칼국수

오늘은 오랜만에 여의도 버섯 칼국수에 갔다. 리밍짜이가 휴가라서 백수인 기성쿤을 불러서 먹었다. 그냥 해본말인데 구디에서 진짜 국의당까지 왔다. (백수 만세) 항상 사람이 많아서 줄을 서야되는 데 기성이 시켜서 10분 일찍 가서 앉아 있으라고 했다(낄낄) 근데 그 사이에 가격이 천 원이 오른 거 같다. 일년도 안 되는 사이에 식당들이 다 1~2천원 올랐다... 어쨌든 버칼은 항상 맛있다. 맛있는 칼국수와 김치를 먹으면 사장님이 볶음밥도 해주신다. 칼국수에 버섯도 엄청 많이 들어가 있다. 볶음밥은 약간 싱거운데 덜어줬던 버섯 칼국수 육수를 살짝 넣어서 먹으면 더 맛있다. 근데 이거 보고 나기성이 그건 음식물 쓰레기 아니냐고 했다(ㅂㄷㅂㄷ) 암튼 여의도 찐맛집이다.

Naver Blog

[Vue] 리스트 렌더링 - 객체 (Object)

객체 데이터로 테스트를 하기 위해 소스를 작성한다. 편의 및 이전 배열 방식과 비교하기 위해 바로 전 포스트에서 작성했던 배열 예제를 가져와서 객체를 추가한다. <!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Vue test</title> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> </head> <body> <div id="app"> <ul class="todos"> <button @click="pushTodo">Push</button> <li v-for="(todo, index) in todos" :key=

Naver Blog

[Vue] watch

watch는 특정한 데이터를 vue가 감시하고 있다가 데이터가 변경되는 순간 어떠한 로직을 실행하는 역할을 한다. 그래서 특정한 데이터를 작성하고 그 데이터가 변경되는 시점마다 무언가 수행되는 로직을 만들고 싶다면 watch를 이용하면 된다. <!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Vue test</title> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> </head> <body> <div id="app"> <div>{{ msg }}</div> <div>{{ reversedMsg }}</div> </d

Naver Blog

[Vue] 조건부 렌더링 v-if

이전 포스트에서 v-if에 대해서 정리한 적이 있었는 데 v-if에 대해서 좀 더 자세히 알아보는 내용이다. 하단의 소스는 colorState의 값에 따라 다른 class를 바인딩하는 예제이다. <!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Vue test</title> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> </head> <body> <style> .box { width: 100px; height: 100px; } .box--red { background-color: red; } .box--blue {

Naver Blog

[Vue] v-show

v-show를 테스트하기 전에 v-if와 비교하기 위해 아래 소스를 먼저 실행해 본다. 해당 소스는 toggle버튼을 클릭하여 div 박스를 렌더링 하거나 렌더링 하지 않거나를 결정 짓는 소스다. <!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Vue test</title> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> </head> <body> <style> .box { width: 200px; height: 150px; background-color: red; } </style> <div id="app"> <

Naver Blog

[Vue] 리스트 렌더링 - 배열(Array) (feat 배열변이메소드)

배열은 이전 포스트들에서 여러 번 테스트 했던 적이 있다. 그래서 배열 데이터를 뿌릴 때 주의사항 위주로 정리할 예정이다. 먼저 todo 리스트를 뿌리는 간단한 소스다. <!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Vue test</title> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> </head> <body> <div id="app"> <ul class="todos"> <!-- data에 정의된 todos에 키 값이 없어 (todo, index) 방식 사용 --> <li v-for="(todo, ind

Naver Blog

[국회의사당 / 여의도 점심] 한촌 설렁탕

요 근래 날씨가 많이 더워졌다가 어제 비가 오면서 조금 쌀쌀해졌다. 그래서 뜨끈한 국물이 생각나서 한촌에 갔다. 한촌은 본점이 부천이다 (낄낄 부천 부심) 어렸을 때는 부천역 가는 길에 있던 그냥 조금 큰 식당이었는 데 갑자기 중동역 근처에 건물을 하나 짓더니 1층에선 설렁탕/불고기 2층에선 돼지갈비 3층에선 소갈비를 팔기 시작했다. 나는 설렁탕을 엄청 좋아해서 본점에서도 자주 먹었다. 냉동된 설렁탕도 파는 데 이것도 집에 쟁여놓고 자주 먹는다. 이제 체인점이라 그런지 여의도점도 맛은 비슷하다. 무엇보다 한촌은 김치가 맛있다. 공기밥은 더 달라고 하면 돈을 받지 않는다. 본점도 그렇다. 원래 설렁탕에 깍두기 국물 혹은 김치 국물 넣어먹는 건 국룰인데 여의도점은 달라고 하면 ? _ ? 하고 쳐다볼 때가 있다. 본점에선 물통 같은 곳에 담아두고 달라고 하면 바로 주는 데... 오픈한지 얼마 안 돼서 그런가? 암튼 설렁탕은 항상 맛있다. http://naver.me/5jYmMPqw 한촌설

Naver Blog

[Vue] computed의 Getter, Setter

바로 이전 포스트에서 computed를 이용하여 문자를 거꾸로 출력하는 간단한 프로그램을 만들었었다. 하지만 computed를 사용할 때 보통 Getter와 Setter로 구분하여 사용한다. 왜냐하면 만약 data 값에 새로운 데이터를 할당해야 하는 데 Setter가 없게 되면 스크립트 에러가 발생하게 된다. 아래 소스가 예시다. 소스에 대한 설명은 주석으로 달아놨다. <!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Vue test</title> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> </head> <bo

Naver Blog

[Vue] computed Caching (캐싱)

만약 메시지를 반대로 생성하는 아래와 같은 뷰 소스가 있다고 가정한다. <!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Vue test</title> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> </head> <body> <div id="app"> <div>{{ reversMsg() }}</div> <div>{{ reversMsg() }}</div> <div>{{ reversMsg() }}</div> </div> <script> const vm = new Vue({ el: '#app', data: { msg:

Naver Blog

[국회의사당 / 여의도 점심] 장수집 (김치찌개, 두루치기)

오늘은 오랜만에 두루치기를 먹었다. 저번에 사진 찍는 거를 깜빡해서 먹다가 찍었는 데 음쓰 같아서 안 올림... 국의당 오고나서 리밍짜이랑 같이 두루치기 집을 엄청 찾았는 데 계속 못 찾다 다미에 돈가스 먹으러 갔다가 우연히 발견했다. 여기 직원한테도 두루치기 집 추천해 달라고 했는데 김치찌개 집이랑 제육 집만 추천해줬다.(ㅂㄷㅂㄷ) 식당 이름은 장수집이고 가격은 10,000원이다. 여의도 밥 값이 워낙 비싸다 보니 이정도는 뭐 ㅎㅎ 이것 저것 기본 반찬이랑 김도 나오고 콩나물 국도 준다. 두루치기는 고기가 꽤 있는 편이다. 앞으로도 자주가게 될 음식점이다. http://naver.me/5h3TW4Ld 장수집 : 네이버 방문자리뷰 113 · 블로그리뷰 6 naver.me

Naver Blog

[Vue] computed

예를 들어 const vm = new Vue({ el: '#app', data : { // 아이디가 없는 상태 todos: [ { title : '아침 먹기' }, { title : '점심 먹기' }, { title : '저녁 먹기' } ] } }) 라는 데이터가 있을 때 todos에 id가 없다. 만약 내가 프론트엔드 개발을 하는 데 서버에서 가져올 수 있는 데이터 자체가 id가 없는 경우가 발생할 수 있는 데 이럴 때 유용하게 사용할 수 있는 것이 computed다. 아래는 해당 소스 예시다. 소스에 대한 설명은 주석에 달려있다. 또한 Object.assign() 방식과 스프레드 방식이 둘 다 있는 소스가 있는 데 Object.assign()는 주석처리 하였다. <!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta

Naver Blog

[국회의사당 / 여의도 점심] 이자카야 쇼부 (돈가스, 덮밥, 카레, 라멘)

오늘은 원래 메밀 막국수를 먹으려 가려다가 예전부터 가야지 하고 안 갔던 쇼부를 갔다. 나는 탄탄멘을 시켰고 리밍짜이는 카츠동을 시켰다. 이외에 로츠카츠나 히레카츠 등 돈가스 류와 덮밥 종류가 꽤 있었다. 탄탄멘은 꽤 매웠다. 문제는 28분을 기다렸다... 15분만 기다리면 된다고 했는 데... 계산할 때 물어보니 실장님이 안 나왔다고 한다. 다음에 한 번 더 가봐야 겠다. 가격은 카츠동 8,500원 탄탄멘 9,000원 이거는 탄탄멘이고 이거는 카츠동이다. 카츠동도 나름 맛있었다고 한다. 이번처럼 너무 오래 걸리지만 않는 다면 자주 갈 것 같다.

Naver Blog

[Vue] 템플릿 문법

먼저 v-once Directive다. v-once는 반응성으로 매번 렌더링하지 않고 한 번만 렌더링하고 싶을 때 사용한다. <!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Vue test</title> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> </head> <body> <div id="app"> <!-- v-once는 한 번만 렌더링하고 반응성은 신경쓰지 않을 경우. --> <div v-once>{{ msg }}</div> <div>{{ msg }}</div> <div>{{ msg }}</div> </di

Naver Blog

[PS4/PS5] PSN + 구독 서비스 게임 카탈로그(리스트) 공개

이번에 새롭게 시행되는 psn plus 구독 시스템 게임 카탈로그가 드디어 공개되었습니다. 먼저 해당 서비스에 대한 설명이 필요하신 분들은 아래 글을 먼저 읽고 오시면 이해가 쉽게 되실 겁니다. https://blog.naver.com/webdeveloping/222735531234 [PS4/PS5] PSN + 구독 서비스 변경 플스 유저분들이라면 대부분 PSN+ 구독 서비스를 알고 계실 겁니다. PSN+ 구독 서비스 이용 시 온라... blog.naver.com https://blog.naver.com/webdeveloping/222735547678 [PS4/PS5] PSN plus 구독 서비스 게임 리스트 선공개 일부 선공개이며 엑스트라 기준 400여개의 게임이 추가될 예정입니다. psn plus 구독 시스템이 현지 시간 ... blog.naver.com 우선 공개된 게임 리스트는 선 공개된 리스트와 거의 차이가 없습니다. 다소 실망적인 리스트네요. 결국 400개를 제공하겠다가

Naver Blog

[국회의사당 / 여의도 점심] 이화그릴 매콤깍두기볶음밥

오늘은 지난번에 갔던 이화그릴에서 매콤깍두기볶음밥을 먹었다. 저번 직화제육이 성공적이어서 이번에 새로운 시도를 해봤는 데 역시나 괜찮았다. 볶음밥을 뚝배기에다가 주는 데 따뜻하게 먹을 수 있어서 좋았다. 배가 너무 고파서 허겁지겁 먹을 준비 하느라 사진을 제대로 못 찍었다. 다음에는 한우된장찌개 혹은 치즈깍두기볶음밥을 먹어봐야겠다.

Naver Blog

[Vue] 라이프사이클(lifecycle)

우리가 new Vue라는 코드를 삽입하여 vue 인스턴스를 생성하면 그 때부터 라이프 사이클이 돌기 시작한다. 출처 : https://kr.vuejs.org/v2/guide/instance.html#%EC%9D%B8%EC%8A%A4%ED%84%B4%EC%8A%A4-%EB%9D%BC%EC%9D%B4%ED%94%84%EC%82%AC%EC%9D%B4%ED%81%B4-%ED%9B%85 기본적인 이벤트와 라이프 사이클이 정의되면 brforeCreate라는 훅이 실행된다. 우리는 이 함수를 우리의 인스턴스의 옵션으로 정의하고 내부에 로직을 작성하게 되면 beforeCreate가 실행되는 시점에 액션을 시킬 수가 있다. 그 다음에 인젝션(외부 모듈, 기타 vue에서 필요한 기본적인 내용이 주입된 상태) 함수와 리액티비티(반응성)이 끝나면 created라는 훅이 발생하고 역시 해당 함수를 정의해 놓으면 그 시점에 실행된다. 일반적으로는 beforeCreate보다 created를 많이 사용한다. 왜

Naver Blog

[Vue] 컴포넌트를 사용한 작성 방법

컴포넌트 시스템은 Vue의 또 다른 중요한 개념입니다. 이는 작고 독립적이며 재사용할 수 있는 컴포넌트로 구성된 대규모 애플리케이션을 구축할 수 있게 해주는 추상적 개념입니다. 생각해보면 거의 모든 유형의 애플리케이션 인터페이스를 컴포넌트 트리로 추상화할 수 있습니다. 출처: <https://kr.vuejs.org/v2/guide/index.html#%EC%BB%B4%ED%8F%AC%EB%84%8C%ED%8A%B8%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%9C-%EC%9E%91%EC%84%B1%EB%B0%A9%EB%B2%95> 이미지 출처 : https://kr.vuejs.org/v2/guide/index.html#%EC%BB%B4%ED%8F%AC%EB%84%8C%ED%8A%B8%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%9C-%EC%9E%91%EC%84%B1%EB%B0%A9%EB%B2%95 컴포넌트로 만드는 예제 작성에 앞서 컴포넌트화 되지 않

Naver Blog

[Vue] Vue 인스턴스(instance)

먼저 아래 소스를 작성하고 console.log를 통해 상수 vm을 찍어본다. <!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Vue test</title> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> </head> <body> <div id="app"> <div>{{ msgA }}</div> <button>Change!</button> </div> <script> const vm = new Vue({ el: '#app', data : { msgA: 'Message A.' }, methods : { change

Naver Blog

[PS4/PS5] () 하데스(Hades)

안녕하세요. 이번에 리뷰할 게임은 하데스입니다. 쿼터뷰 핵 앤 슬래시 로그라이크 장르로 에픽 -> 스팀 -> 스위치 -> PS 순서로 발매되었습니다. 로그라이크 방식이 조금 생소하신 분들도 있으실텐데요. 로그라이크는 플레이하다가 죽으면 다시 맨 처음부터 시작해야합니다. 중간 저장이나 스테이지 저장이 아닌 아예 맨 처음부터요 ㅎㅎ 대신 중간 중간 얻는 재화들을 통해 캐릭터를 강화할 수 있어 점점 클리어 난이도가 하락하긴 합니다. 그렇기 때문에 죽음에 익숙해져야 하는 게임이죠. 스토리는 자그레우스가 저승을 탈출하는 이야기를 다루고 있습니다. 회차 수에 따라서 스토리도 조금씩 달라진다고 합니다. 뭐 하데스는 1회차 후 규약이 생기는 데 이때부터가 진짜 시작이라는 말도 있더라구요. 진엔딩은 14번정도 클리어 해야 한다고 들었습니다. 플레이 방식은 원하는 무기를 선택하고 각 스테이지를 클리어해 가며 강화를 하는 방식입니다. 예시로 올림푸스의 신들이 은혜를 주며 이 은혜들도 각각 다양한 버프

Naver Blog

[PS4/PS5] PSN 구독자 대상 유비소프트 플러스 (ubisoft +) 시행

현지 시간 기준 5월 24일부터 psn 구독 서비스가 변경됨에 따라 유비 소프트에서도 구독 시스템을 실시합니다. 해당 서비스는 PSN Plus 엑스트라 / 프리미엄을 대상으로 적용될 예정입니다. psn Plus 구독 시스템 변경 및 선 공개된 게임 리스트는 아래 포스트에서 확인하실 수 있습니다. https://blog.naver.com/webdeveloping/222735531234 [PS4/PS5] PSN + 구독 서비스 변경 플스 유저분들이라면 대부분 PSN+ 구독 서비스를 알고 계실 겁니다. PSN+ 구독 서비스 이용 시 온라... blog.naver.com https://blog.naver.com/webdeveloping/222735547678 [PS4/PS5] PSN plus 구독 서비스 게임 리스트 선공개 일부 선공개이며 엑스트라 기준 400여개의 게임이 추가될 예정입니다. psn plus 구독 시스템이 현지 시간 ... blog.naver.com 해당 구독 서비스는 향후

Naver Blog

[PS4] 라스트 오브어스2 (라오어2) 컬렉터즈 에디션 개봉기

언제산지 기억도 안 나는 라오어2 컬렉터즈 에디션을 창고 방에 짱박아 뒀다가 어제 드디어 개봉했다. 전설의 덤핑가로 판매된 제품으로 현재는 덤핑가로 파는 지는 모르겠다. 일단 박스 크기가 꽤 크다 앞면 뒷면 뒷면에 보면 어떤것들이 포함되어 있는 지 써있다. 스티커, 배지, 스틸북(게임 CD포함), 포토북...?, 엘리 피규어 등으로 구성되어 있다. 박스를 열면 박스가 하나 더 나온다. 그럼 위에서부터 하나씩 열어낼 수 있다. 배지, 스티커 등 스틸북 케이스 아까 저 위에 뒷면의 사진만 보고 엘리 피규어가 손 하나 정도 사이즈 인줄 알았는 데 생각보다 엄청 크다... 도저히 둘 곳이 없어서 스틸북만 꺼내고 나머지는 다시 박싱해서 창고 방에 박아버렸다 ㅎㅎ 아마 평생 저기에만 있다가 잊혀질 거 같다. 라오어2가 PS5에서 60프레임 지원이 된다고는 알고있지만 아직 다른 게임하느라 못했다. 아마 다음주 쯤에는 PS5로 2회차를 시작할 거 같다.

Naver Blog

[PS4/PS5] PSN + 구독 서비스 변경

플스 유저분들이라면 대부분 PSN+ 구독 서비스를 알고 계실 겁니다. PSN+ 구독 서비스 이용 시 온라인 멀티 플레이와 매월 2~3개의 게임을 제공합니다. 추가 ++++++ 추가 스페셜 기준 게임리스트가 전체 공개 되었습니다. 하단의 링크 클릭하시어 확인하시기 바랍니다. https://blog.naver.com/webdeveloping/222744021626 [PS4/PS5] PSN + 구독 서비스 게임 카탈로그(리스트) 공개 이번에 새롭게 시행되는 psn plus 구독 시스템 게임 카탈로그가 드디어 공개되었습니다. 먼저 해당 서비스... blog.naver.com 제공된 게임은 라이브러리에 담아둘 수 있으며 psn+를 이용하는 기간 동안은 언제든 다운로드 및 플레이가 가능합니다. psn 무료 게임이라고 흔히들 하지만 구독 비용을 내는 거기 때문에 따지고 보자면 무료는 아닙니다. 혜택이라고 보셔야 하죠. 이 구독 시스템이 아시아 기준 5월 23일(현지 시간 기준 24일)부터 변경됩

Naver Blog

[PS4/PS5] PSN plus 구독 서비스 게임 리스트 선공개

일부 선공개이며 엑스트라 기준 400여개의 게임이 추가될 예정입니다. 추가 ++++++ 추가 스페셜 기준 게임리스트가 전체 공개 되었습니다. 하단의 링크 클릭하시어 확인하시기 바랍니다. https://blog.naver.com/webdeveloping/222744021626 [PS4/PS5] PSN + 구독 서비스 게임 카탈로그(리스트) 공개 이번에 새롭게 시행되는 psn plus 구독 시스템 게임 카탈로그가 드디어 공개되었습니다. 먼저 해당 서비스... blog.naver.com psn plus 구독 시스템이 현지 시간 기준 5월 24일부터 변경될 예정입니다. 크게 세 단계로 변경될 예정이며 관련 내용은 해당 포스트를 참고하시기 바랍니다. https://blog.naver.com/webdeveloping/222735531234 [PS4/PS5] PSN + 구독 서비스 변경 플스 유저분들이라면 대부분 PSN+ 구독 서비스를 알고 계실 겁니다. PSN+ 구독 서비스 이용 시 온라...

Naver Blog

[Javascript] 비구조화 할당(객체 구조 분해)

function hello(name) { console.log('Hello' + name); } hello('kwkim'); 결과 : Hello kwkim! 위와 같은 방식을 es6 이상부터는 아래와 같은 방식으로 사용할 수 있다. function hello(name) { console.log(`Hello ${name}!`); } hello('kwkim'); 결과 : Hello kwkim! 다른 예시 const ironMan = { name: '토니 스타크', actor: '로버트 다우니 주니어', alias: '아이언맨' }; const captainAmerica = { name: '스티븐 로저스', actor: '크리스 에반스', alias: '캡틴 아메리카' }; function print(hero) { const text = `${hero.alias}(${hero.name}) 역할을 맡은 배우는 ${ hero.actor } 입니다.`; console.log(text); } p

Naver Blog

[Javascript] 변수와 상수

변수 : let 키워드 이용하여 선언 상수 : const 키워드 이용하여 선언 ** var 키워드는 권장하지 않는다 ** 주요 차이점으로 var는 똑같은 이름으로 여러 번 사용할 수 있다. let과 사용하는 범위가 다른데 이것은 나중에 별도로 정리할 예정이다. 아래는 let 과 var의 차이에 대한 예시다. let a = 1; if (a + 1 === 2) { let a = 2; console.log("if문 안의 a 값은 " + a); } console.log("if문 밖의 a 값은 " + a); let을 사용했을 때의 결과 var a = 1; if (a + 1 === 2) { var a = 2; console.log("if문 안의 a 값은 " + a); } console.log("if문 밖의 a 값은 " + a); var를 사용했을 때 결과 let과 const의 경우 구형 브라우저에서는 사용할 수 없다. 이 때 구형 브라우저에서 실행 가능하도록 하는 바벨이라는 도구가 있다. 참조

Naver Blog

[Javascript] 배열 내장 함수 정리(forEach, map)

forEach 구문 일반 for문 사용 const animals = ['호랑이', '사자', '사슴', '토끼', '거북이']; for (let i = 0; i < animals.length; i++) { console.log(animals[i]); } forEach 사용 const animals = ['호랑이', '사자', '사슴', '토끼', '거북이']; function print(animal) { console.log(animal); } animals.forEach(print); forEach 및 익명 함수 사용 const animals = ['호랑이', '사자', '사슴', '토끼', '거북이']; animals.forEach(function(animal) { console.log(animal); }); forEach 및 화살표 함수 사용 const animals = ['호랑이', '사자', '사슴', '토끼', '거북이']; animals.forEach(animal =>

Naver Blog

[Javascript] 배열 내장 함수 정리(indexOf, findIndex, find)

indexOf는 내가 원하는 텍스트 위치를 알려준다. const animals = ['호랑이', '사자', '사슴', '토끼', '거북이']; const index = animals.indexOf('사자'); console.log('사자의 위치는 : ' + index); indexOf의 결과 값 하지만 indexOf의 경우 대상이 객체이거나, 특정 대상의 값으로 찾는 것이 아닌 어떤 조건을 가지고 찾을 경우 값을 찾을 기 어렵다. 이럴 때 findIndex를 사용한다. findIndex는 파라미터 값으로 함수를 넘겨준다. 특정 조건을 확인하여 그 조건이 일치하면 일치하는 원소가 몇 번째인지 알려주는 함수다. const todos = [ { id: 1, text: '자바 입문', done: true }, { id: 2, text: '자바스크립트 입문', done: true }, { id: 3, text: '리액트 입문', done: true }, { id: 4, text: '노드 입문

Naver Blog

[Javascript] 배열 내장 함수 정리(splice, slice)

splice는 배열의 특정 항목을 자를 때 사용한다. splice에 대한 설명 splice를 사용할 때 첫 번째 인자 값에는 시작점이고 두 번째 인자는 시작점부터 몇개까지 지울지를 적어준다. const numbers = [10, 20, 30, 40]; // 배열 선언 const index = numbers.indexOf(30); // 삭제할 인덱스 추출 let delList = numbers.splice(index, 1); // 삭제 리스트 console.log(numbers); // 삭제 후 배열 출력 console.log(delList); // 삭제 항목 출력 splice에 대한 결과 값 3행과 같이 splice한 항목을 변수에 담게 되면 삭제된 항목이 무엇인지 알 수 있다. slice 는 splice와 같이 배열을 잘라내는 용도로 사용되나 기존의 배열을 건드리지 않는다는 특징이 있다. slice에 대한 설명 slice에는 두 가지 인자를 줄 수 있는데 첫 번째 인자는 어디서부터

Naver Blog

[Javascript] 배열 내장 함수 정리(shift & pop, unshift, concat, join)

shift 는 첫번째 원소를 배열에서 추출한다. shift에 대한 설명 const numbers = [10, 20, 30, 40]; const value = numbers.shift(); console.log(value); console.log(numbers); shift 결과 값 pop은 맨 마지막 원소를 배열에서 추출한다. pop에 대한 설명 const numbers = [10, 20, 30, 40]; const value = numbers.pop(); console.log(value); console.log(numbers); pop 결과 값 unshift는 shift의 반대 개념으로 배열의 맨 앞에 새 원소를 추가한. unshift에 대한 설명 const numbers = [10, 20, 30, 40]; numbers.unshift(5); console.log(numbers); unshift 결과 값 concat은 여러 개의 배열을 하나의 배열로 합쳐준다. cancat은 기존

Naver Blog

[Javascript]에서의 Truthy and Falsy

일반적인 Javscript에서 null 체크 코드는 아래와 같다. function print(person) { if (person === undefined || person === null) { console.log('person is null'); return; } console.log(person.name); } const person = null; print(person); 결과 위의 코드는 아래와 같이 축약하여 사용이 가능하다. function print(person) { if (!person) { console.log('person is null'); return; } console.log(person.name); } const person = null; print(person); 결과 위와 같은 방식이 작동하는 이유는 undefined 와 null 이 Falsy 한 값이고 Falsy 한 값 앞에 느낌표를 붙여주면 true 로 전환되기 때문이다. Javascript에서 Fa

Naver Blog

[Javascript] 단축 평가 논리 계산법

단축 평가 논리 계산법이란 이전 포스트에 게시된 truthy and falsy를 활용한 방법이다. 아래의 소스코드는 getName 의 파라미터에 제대로 된 객체가 주어지지 않아 에러가 발생한다. const dog = { name: '강아지' }; function getName(animal) { return animal.name; } const name = getName(); console.log(name); 에러 출력 물론 아래와 같이 if문을 사용하여 에러를 피할 수 있다. const dog = { name: '강아지' }; function getName(animal) { if (animal) { return animal.name; } return undefined; } const name = getName(); console.log(name); 결과 이 코드를 더 줄이고 싶다면 Truthy and Falsy를 활용한 논리연산자 사용이 가능하다. const dog = { name:

Naver Blog

[Javascript] 동기/비동기 처리와 callback

동기와 비동기를 나누는 가장 큰 차이점을 어떻게 실행 순서를 가지는 지에 있다. 아래 이미지와 같이 Syncronous 동기는 요청을 보낸 후 해당 요청의 응답을 받아야 다음 동작을 실행하는 방식을, Asynchronous 비동기는 요청을 보낸 후 응답과 관계없이 다음 동작을 실행할 수 있는 방식을 의미한다. 출처 : https://velog.io/@yejinh 아래와 같이 함수를 작성하여 호출했을 때 동기적으로 실행된다. function work() { const start = Date.now(); for (let i = 0; i < 1000000000; i++) {} const end = Date.now(); console.log(end - start + 'ms'); } work(); console.log('다음 작업'); 결과 위의 결과와 같이 함수 로직이 끝난 후에 다음 작업이라는 문구가 호출되었다. 이것을 비동기적으로 전환할 때 setTimeout을 사용하여 아래와 같이 변

Naver Blog

[Javascript] Every

every는 ES6부터 지원하는 문법으로 특정 배열이 어떤 조건에 대해서 모두 만족하는 지를 체크한다. every는 다양한 용도로 활용이 가능한데 백엔드 뿐만 아니라 프론트엔드에서도 페이지 랜더링을 할 때 설정한 모든 조건이 만족하는 것을 체크하는 것 등에 쓰일 수 있다. 예를 들어 UI 페이지를 만들었을 때 회원 가입이 되어있고, 로그인을 했고 회원이 추천코드를 받았을 때만 보여주는 화면을 만든다고 하면 여러번의 if문 처리가 필요하다. 이럴 때 every를 쓰면 간단하게 표현할 수 있다. 예시 소스 'use strict' // 1보다 큰 수만 모아 놓은 배열 생성 const arr = [2, 3, 4]; const isBiggetThanOne = arr.every(key => key > 1); const isBiggetThanTwo = arr.every(key => key > 2); console.log("1보다 큰 수를 모아놓은 배열이다" + ">" + isBiggetThanO

Naver Blog

[Javascript] find, includes

find는 이전 포스트에서 findIndex 등과 다룬적이 있습니다. 본 포스트와 같이 보시면 좋을 것 같습니다. Find는 설정된 배열의 특정한 요소를 찾는다. Find는 조건을 통해 특정 값을 가져올 필요가 있을 때 주로 사용한다. 'use strict' const arr = ['node.js', '올인원']; const ret = arr.find(key => key === '올인원'); console.log(ret); find 사용 includes는 특정한 문자열이나 배열에 대해서 조건을 걸어 일치하는 조건이 있는 지를 찾는다.(true or false 리턴) 조건문에서 검사 목적으로 사용하는 경우는 보통 includes 사용한다. 조건문에서 true, flase만 체크하면 되는 것을 find를 사용하여 개발할 경우 메모리 누수를 유발할 수 있음. 'use strict' const arr = ['node.js', '올인원']; const res = arr.includes('no

Naver Blog

[Javascript] Object.assign, spread

먼저 Assign은 할당이라는 뜻으로 object에 할당하는 것이다. 새로운 객체를 생성하기도 하고 두 개의 객체를 합쳐 통합하기도 한다. 예시 소스 'use strict' const obj = { title : 'node.js 올인원 패키지' } const newObj = { name : '패스트 캠퍼스' } // 하나로 합치기 // Object는 글로벌 메소드이기 때문에 바로 호출 없이 사용 가능 // 새로운 객체를 통합해서 사용 const ret = Object.assign({}, obj, newObj); console.log(ret); assign 결과 Spread 또한 기존의 객체에 새로운 객체를 합치는 역할을 한다. Spread만의 특징은 객체 뿐만 아니라 배열에서도 활용이 가능하다. 'use strict' const obj = { title : 'node.js 올인원 패키지' } const newObj = { name : '패스트 캠퍼스' } const ret = { .

Naver Blog

[Javascript] Set 자료 구조

Set 의 특징 - 중복되지 않고 한 개의 데이터만을 수집하고 싶을 때 사용 - Set은 중복되지 않는 자료 구조이며, add를 이용하여 데이터를 입력한다. - 자료구조에 데이터가 중복으로 들어와도 한 번만 입력이 된다. - Has라는 메소드를 사용하여 해당 자료 안에 특정 값이 존재하는 지 확인할 수 있다. 예시 'use strict' // set의 자료 구조로 test를 생성 const test = new Set(); // 중복된 데이터 입력 test.add(1); test.add(1); test.add(2); test.add(2); test.add(3); // set의 입력된 구조 확인 // test에 있는 자료들을 하나하나 검색 for(const item of test) { // 데이터가 중복되지 않고 나옴 console.log(item); } // 실제 set 자료 구조 안에 데이터가 존재하는지에 대한 조건의 메소드(true or flase) const ret = test.

Naver Blog

[Javascript] some

이전 포스트에 every와 같이 보는 것이 좋습니다. every는 모든 조건을 만족해야 true를 반환하지만 some은 한 가지 이상의 요소를 만족하면 true를 반환합니다. 예시 소스 'use strict' const arr = [1, 0, -1, -2]; const res = arr.some(key => key < 0); console.log(res); arr 안에 0보다 작은 숫자(-1, -2)가 존재하기 때문에 true가 반환 배열 안에 음수를 모두 양수로 바꾸면 false가 반환

Naver Blog

[Javascript] Template String

기존의 javascript에서는 문자열을 결합할 때 + 기호 등을 사용하여 연결했다. es6부터는 template string을 통해 한 문자열 내에서 변수와 상수 기존의 데이터를 통합해서 표현할 수 있다. 기존에 let str = 'node.js'; 라는 변수를 선언하고 여기에 문자를 결합하기 위해서는 아래와 같은 방식으로 문자열을 연결했다. str += '올인원 패키지'; + '기존 방법' template String을 사용하면 아래와 같이 작성할 수 있다. 예시 소스 'use strict' const details = '자세한 내용' let str = 'node.js'; str += ` 올인원 패키지 ${details}` console.log(str) const int = 1; let str2 = 'node.js'; str2 += `${str}의 값은 ${int}`; console.log(str2); 또한 함수에도 해당 문자열을 바로 전달할 수 있다. console.log`입력

Naver Blog

[Javascript] String 문자 검사 (startsWith, includes, endsWith)

startsWith, includes, endsWith는 String 문자 검사를 할 때 대표적으로 사용되는 세 가지이다. startsWith - 가장 첫 번째로 시작하는 문자를 검사 includes - 해당 문자열을 포함하는지 검사 endsWith - 마지막으로 끝나는 문자 검사 예시 소스 'use strict' let string = 'node.js 올인원 패키지'; // 가장 첫 시작 문자 검사 let isStartWith = string.startsWith('n'); // 해당 문자열을 포함하는지 let isIncludes = string.includes('올인원'); // 마지막 끝나는 문자 검사 let isEndWith = string.endsWith('지'); const checkIfContains = () => { if(isStartWith && isIncludes && isEndWith) { return true; } } const ret = checkIfContai

Naver Blog

[Javascript] 즉시 실행 함수 표현(IIFE)

IIFE란 정의 되자마자 즉시 실행되는 자바스크립트 함수를 말한다. 선언 형식은 괄호 안에 익명함수를 작성한다. 이렇게 선언한 함수는 전역 스코프에 불필요한 변수를 추가하여 오염하는 것을 방지할 수 있고 다른 변수들이 접근하는 것을 막을 수 있다. 선언부 자바스크립트 엔진은 맨 마지막의 ()를 통해 해당 함수를 즉시 해석하여 실행한다. 예시 소스(외부에서 내부의 변수에 접근하지 못해 에러 발생) (function () { // 외부로부터 접근이 불가능한 변수 var lang = 'js'; })(); // 오류발생 ReferenceError: lang is not defined // 내부의 lang을 외부에서 접근할 수 없기 때문에 // console.log(lang); 즉시 실행 함수를 변수에 할당하면 함수가 실행된 결과만을 저장한다. var r = (function () { // 외부로부터 접근이 불가능한 변수 var lang = 'js'; return lang; })(); con

Naver Blog

[Javascript] Arrow Function(화살표 함수)

Arrow Funcrtion의 특징 자바에서의 람다와 유사한 문법 es6문법 중 가장 많이 쓰이는 문법으로 코드의 가독성을 높여줌 this에 대해서 다른 범위 스코프를 가지고 있어 기존의 함수에서의 this의 불편함을 근본적 해결 return 키워드 생략 가능 일반 함수 문법 function add(var1, var2) { return var1 + var2; } 화살표 함수 문법 //리턴 키워드 생략 가능 const addArrowFunction = (var1, var2) => var1 + var2 console.log(addArrowFunction(1, 2)); 기존 함수에서의 this 사용 일반함수의 경우 this로 받게 된다면 해당하는 범위가 prototype의 this가 아닌 function 내부의 this를 받는다. 즉 api.prototype의 this를 받지 못해 아래와 같이 self라는 변수를 사용하여야 한다. API.prototype.get = function (re

Naver Blog

[Javascript] Class, Class Extends

class 특징 - 파일을 로드할 때마다가 아닌 한 번만 읽고자 할 때 - 보통 환경 변수 파일에서 많이 사용함 - 많은 요청이 와도 클래스는 단 한 번만 생성될 수 있다 클래스 생성 예시 class Robot { //생성자, 파라미터로 초기값을 받음 constructor(name) { this.name = name } speak() { console.log(`${this.name}`); } } const r = new Robot('My name is Mr.Robot'); r.speak(); class extend (클래스 확장) extend 사용하여 클래스를 확장 super() 키워드를 통해 상위 클래스의 생성자를 호출할 수 있다. class Ai extends Robot { constructor(name) { // 상위 클래스(robot)의 생성자 호출 super(name); } walk() { console.log(`walk: ${this.name}`); } } const a

Naver Blog

[Javascript] Static Method

Static Method 특징 - 클래스의 constructor(생성자)에 접근하지 않고 바로 static method를 실행하기 때문에 클래스를 생성하지 않고 클래스 내부에 바로 접근하여 실행 가능하다. - static method만 있는 클래스인 경우엔 constructor 생략이 가능하다 - static method에서는 constructor(생성자)에 선언된 변수, 객체 등 어떤 자료도 접근할 수 없다 예시 소스 // static method를 호출할 클래스 선언 class test { // constructor() { // this.config = {} // } static call() { console.log('static method'); } } // const Test = new test();로 생성하지 않고 아래와 같이 바로 호출 // 클래스 임에도 불구하고 생성자 없이 생성하지 않고 바로 메소드 호출 test.call();

Naver Blog

[Javascript] Reduce

reduce를 사용하여 array를 편집하고 수정할 수 있음 - reduce 는 각각의 요소를 첫 번째부터 혹은 특정 인덱스부터 마지막까지 접근할 때 사용 - 각각의 배열의 요소를 for문을 통해 배열의 요소를 하나 하나씩 접근 하는 것과 동일한 효과를 볼 수 있지만 가독성, 직관성 측면에서 뛰어남 - map과 filter로 두 번 해야하는 연산을 reduce를 사용하여 한 번만 사용할 수 있음 예시 소스 'use strict' const numbers = [10, 20, 30, 40]; // 0부터 시작해서 각각의 배열을 순회하며 다음 값들을 한 번씩 더해 줌 // 명시적으로 초기값을 지정하지 않으면 0부터 시작 const sum = numbers.reduce((tot, val) => tot + val) console.log(sum); // 숫자들의 평균을 구하는 과정 const avg = numbers.reduce((tot, val, idx, arr) => { tot += val

Naver Blog

[Javascript] Singleton Pattern(싱글톤 패턴)

Singleton Pattern (싱글톤 패턴)은 클래스 함수의 인스턴스를 한 개로만 유지하는 것을 말한다. 즉 여러 객체가 생성되더라도 최초 생성된 객체만 사용한다. 활용 사례 1. express 서버를 초기화할 때 환경 설정 파일을 읽거나 aws에서 환경 변수들을 가지고 있는 객체를 만든다고 가정할 때 싱글톤 패턴을 사용하지 않을 경우 서버에 대한 환경 설정을 계속해서 새로 읽거나 업데이트는 불필요한 작업이 일어남 2. 어떤 객체나 데이터에 대해서 단일성 즉, 최초 한 번만 생성됨을 보장하기 위해서 사용하는 패턴이 싱글톤 패턴 3. 캐시는 기존의 데이터가 있는 것에 대해서 새로 생성하지 않고 바로 사용가능한 것인데, 싱글톤 패턴을 사용하지 않을 경우 캐시 모듈이 항상 생성(초기화)되어서 의미가 없다. 'use strict' class CasheManager { // 생성자 constructor() { if(!CasheManager.instance) { this._cashe = [

Naver Blog

node 설치 및 에디터(vscode) 설치

구글에 node download를 검색하여 다운로드 링크로 이동하거나 해당 URL 접속 https://nodejs.org/ko/download/ 다운로드 | Node.js Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org 자신의 OS에 맞는 것으로 다운로드한다. 다운로드가 완료되면 install 프로그램을 실행하고 별도의 설정 없이 next 버튼만 누르면 설치가 완료된다. 설치 완료 후 정상적으로 설치가 되었는지 확인 windowOS 기준으로 cmd창을 열어 node -v, npm -v를 각각 입력하여 아래 이미지와 같이 출력되면 정상 설치 완료 정상 설치되었을 때 출력 화면 다음으로 vscode 설치 및 기본 세팅 방법이다. 구글에 vscode download 검색 하여 링크 접속하거나 https://code.visualstudio.com/download 해당 URL 바로 접속 Dow

Naver Blog

[node] 'hello node!' 출력하기

node 명령어를 통한 hello.js 실행 새 폴더를 생성하여 vscode에 드래그 앤 드랍한다. 이 때 생성산 새 폴더의 경로를 기억해 두는 것이 좋다. (CMD 명령어 입력 시 폴더의 경로를 알아야 함) 예시에서는 폴더명을 exercise라고 만들었다. exercise폴더를 드래그 앤 드랍한 화면 마우스 우클릭하여 새 파일을 생성한다. 파일 명은 hello.js로 생성했다. 생성한 hello.js 파일에 console.log("hello node!")라고 코딩한다. hello node! 까지 입력한 화면 윈도우 기준 cmd 창을 열어 새로 생성한 폴더(exercise)로 이동 및 hello.js를 실행한다. 이동 : cd 해당폴더 경로 실행 : node hello.js(실행할 js 파일명) hello.js 실행 시 hello node!가 뜨는 것을 확인할 수 있다. 명령어 실행 화면 hello.node! 가 정상 출력 됨을 볼 수 있다. 출처 : 본 포스트는 패스트캠퍼스의 No

Naver Blog

[node] 내보내기와 불러오기

지난번 게시물 hello node! 출력 하기의 활용이다. 이번 예시에서는 내보내기 파일과 불러오는 파일을 별도로 구분했다. 해당 예시에서는 내보낼 땐 Module.exports 변수를, 불러올 땐 require 파일명을 사용하였다. 먼저 내보내기 파일 생성 hello.js를 만들었을 때와 동일하게 myvar.js라는 파일을 생성한 후 module.exports.a = "hello a"; 작성 myvar 파일 이후 불러올 파일(사용할 파일)인 index.js 파일 생성 생성한 파일에 myvar 파일의 경로 작성 및 console.log()로 출력할 메시지 입력. index.js 파일 cmd 창에서 index.js를 실행한다. index.js 실행 결과 같은 방식으로 함수도 내보낼 수 있다. 다시 myvar.js 파일로 돌아가 내용을 아래 이미지처럼 수정 myvar.js 화면 index.js로 돌아가 index.js도 아래 이미지와 같이 수정한다. index.js 화면 cmd창에서 i

Naver Blog

[node] npm install하기

https://www.npmjs.com/ 해당 URL에 접속하면 원하는 npm을 검색하고 다운로드 할 수 있다. 우선 npm install을 위해 신규 폴더를 생성한다. npm install을 위한 신규 폴더 생성 cmd창을 열어 해당 폴더 경로에 접근하고 npm init 명령어를 입력한다. 입력 시 pakage name / version 등등 아래의 이미지 입력 창이 나온다. 현재 단계에서 중요한 부분은 아니기 때문에 임의로 입력해도 큰 문제는 없다. ** npm init 명령어 대신 npm init -y 명령어를 입력하면 위의 절차 없이 기본 세팅된다. ** npm install 화면 이후 다시 vscode로 돌아가면 아래 이미지와 같이 package.json이 생성되어 있음을 볼 수 있다. package.json 파일 package.json 파일이 정상적으로 생성되었음을 확인하였으면 npm 명렁어를 통해 모듈을 받는다. 본 예시에서는 express를 받는다. 다시 cmd 창으로

Naver Blog

[node] Express를 사용하여 웹 서버 띄우기(feat. nodemon)

해당 예시 실행을 위해서는 Express가 추가 되어 있어야 합니다. 혹시 설치가 되어있지 않거나, 설치법을 모르시는 분은 이전 포스트의 npm install을 보고 오시면 됩니다. 예시 작성을 위한 새폴더 생성 및 새 파일(app.js) 생성 새로 생성한 app.js 파일에 다음과 같이 코딩 const express = require('express'); const app = express(); // 익스프레스 가져오기 const port = 3000; // 포트 번호 app.get('/', (req, res) => { res.send('hello express'); //화면에 표출될 부분 }); app.listen(port, () => { console.log('Express listening on port', port) // 잘 실행되었는지 확인하기 위해 cmd창에 뜰 문구 설정 }); // 웹서버를 띄우는 크리에이트 웹 서버 소스 코드 app.js 화면 입력이 끝났으면 cmd

Naver Blog

[node] View Engine - Nunjucks

vscode tempate 폴더 생성 이때 템플릿 구조도 url의 구조를 따라가야 한다. template 라는 폴더를 만들고 그 하위 폴더 admin을 생성한 후 admin 폴더에 products.html 이라는 파일을 생성한다. products.html 파일에 아래와 같이 입력한다. products {{ message }} products.html cmd 창으로 이동하여 nunjucks를 인스톨한다. cmd 인스톨이 완료되었으면 app.js 파일에 아래의 내용을 추가한다. const nunjucks = require('nunjucks'); nunjucks.configure('template', { // 폴더 지정 autoescape : true, // 보안상 true express : app // 위의 app 객체 }); app.js 다음으로 admin.js로 돌아가 아래의 내용을 추가한다. 해당 부분이 products.html의 message와 맵핑되는 부분이다. router.g

Naver Blog

[node] 템플릿 상속

템플릿 상속은 이전 포스트인 nunjucks와 이어진다. 지난번에 생성한 template 하위 요소에 layout 폴더를 생성하고 base.html 파일을 생성한다. 생성한 파일에 아래와 같이 코딩한다. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>{{ title }}</title> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> </head> <body> <div class="container" style="padding-top:100px;"> {% b

Naver Blog

[node] 미들웨어(middleWare)

미들웨어는 쉽게 말해 해당 url에 접근할 때 중간 요청을 가로채는 역할을 한다고 생각하면 된다. 테스트를 진행하기 전에 cmd 창에서 logger 확인을 위해 morgan을 intall한 후에 시작한다. morgan install 설치가 완료되었으면 app.js로 들어와 아래 소스 코드를 추가한다. const logger = require('morgan') // morgan 호출 app.use(logger('div')); morgan 추가 추가가 완료되었으면 cmd 창에서 app.js를 실행하고 해당 포트의 url에 접속할 때마다 아래와 같이 로그가 확인된다. cmd창 log 확인 기본 세팅이 완료되었고 이제 미들웨어를 만들기 위해 admin.js로 돌아간다. 미들웨어는 3개의 인자(request, response, next) 를 갖는다. admin.js에 아래와 같은 미들웨어를 추가하고 router.get()에 해당 function을 넣어준다. function testMiddle

Naver Blog

[node] form(body-parser)

body-parser란 form에서 넘어 오는 데이터를 body-parser라는 미들웨어로 처리하는 것을 말한다. 우선 admin.js에 아래 소스를 추가한다. router.get('/products/write', (req, res) => { res.render('admin/write.html') }); admin.js 화면 추가하였으면 template/admin 폴더에 write.html 파일을 새로 생성하고 아래의 소스 코드를 넣어준다. {% set title = "제품 등록" %} {% extends "layout/base.html" %} {% block content -%} <form action="" method="post"> <table class="table table-bordered"> <tr> <th>제품명</th> <td><input type="text" name="name" class="form-control"/></td> </tr> <tr> <th>가격</th>

Naver Blog

[node] 정적파일

우선 이미지를 담아둘 폴더를 하나 생성한다. 그 다음 app.js에 아래의 소스코드를 추가한다. app.use('/uploads', express.static('uploads')); app.js에 이미지를 추가 완료 후 해당 폴더의 파일명으로 url에 접근하면 이미지를 확인할 수 있다. 출처 : 본 포스트는 패스트캠퍼스의 Node 웹 프로그래밍 올인원 패키지 Online의 박준영 강사님의 강의를 보고 직접 정리한 내용입니다.

Naver Blog

[node] url을 통해서 입력된 값 사용하기

먼저 url의 구성이다. Url의 구성 - http:opentutorials.org:3000/main?id=MTML&page=12 - http -> protocol - opentutorials -> host(domain) - 3000 -> port - main -> path(컴퓨터 디렉토리) - id=MTML&page=12 -> query string url에 queryString을 화면에 출력하는 소스 var http = require('http'); var fs = require('fs'); var url = require('url'); //url이라는 모듈을 사용할 것이다. var app = http.createServer(function(request,response){ var _url = request.url; var queryData = url.parse(_url, true).query; // url에서 쿼리스트링 부분만 가져옴 console.log(queryData.id

Naver Blog

[node] 파일 읽기

새로운 폴더(node.js)를 만들어 fileread.js와 sample.txt 생성 sample.txt에 입력하고 싶은 문구 입력 sample.txt fileread.js에 아래 소스 추가 var fs = require('fs'); fs.readFile('sample.txt', 'utf8', function(err, data){ console.log(data); }); cmd 창에서 fileread.js 실행 출처 : 본 포스트는 이고잉님의 '생활코딩' 강의를 보고 직접 정리한 소스입니다.

Naver Blog

[node] Global View Variable

예를 들어 상단에 로그인한 사람은 로그아웃 버튼 활성화 로그인 안 한 사람은 로그인과 회원가입이 보이도록 해줘야 하는 경우 템플릿에서만 사용할 글로벌 변수를 선언한다. app.js 에 아래와 같은 소스 코드를 추가한다. app.use( (req,res,next) => { app.locals.isLogin = false; //html 파일에서 isLogin 변수를 사용할 수 있음 next(); }); app.js 해당 소스코드를 추가하게 되면 .html 파일에 해당 변수를 사용할 수 있다. base.html 화면으로 이동하여 아래 소스코드를 추가한다. {% if isLogin %} 로그인 중 {% else %} 로그인이 안 되어 있습니다. {% endif %} 해당 url에 접근 시 아래의 이미지와 같이 로그인 상태가 뜨는 것을 확인할 수 있다. app.js에서 flase로 isLogin을 선언할 것을 true로 바꾸면 로그인 중으로 출력이 된다. 출처 : 본 포스트는 패스트캠퍼스의

Naver Blog

[node] 404, 500 error handling

먼저 404, 500 에러 시 보여줄 템플릿 파일을 작성한다. template 하위 폴더에 comoon 폴더를 생성하고 404.html/ 500.html 파일을 각각 만들어준다. 만든 파일에 아래와 같은 소스 코드를 추가한다. 먼저 404 {% set title = "페이자가 없습니다" %} {% extends "layout/base.html" %} {% block content -%} <div class="container"> <div class="page_area"> <h1>페이지가 없습니다.</h1> </div> </div> {%- endblock %} 다음으로 500 {% set title = "에러가 발생했습니다" %} {% extends "layout/base.html" %} {% block content -%} <div class="container"> <div class="page_area"> <h1>에러가 발생했습니다.</h1> </div> </div> {%- end

Naver Blog

[node] nunjucks macro

base.html에 아래의 소스를 추가한다. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>{{ title }}</title> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> </head> <body> <div class="container" style="padding-top: 10px;"> <nav class="navbar navbar-inverse"> <div class="container-fluid"> <div class="collapse navbar

Naver Blog

[node] Sequelize DB 접속

본 포스트를 포함한 Sequelize 관련 모든 포스트는 mysql을 기반으로 작성되었으며, mysql이 반드시 설치되어 있어야 합니다. mysql 및 Workbench는 설치법을 구글링해 보시면, 간단하게 설치하실 수 있습니다. 먼저 mysql과 sequelize을 인스톨한다. cmd package.json .env 파일을 생성하여 DB정보를 입력한다. .env models라는 폴더를 생성하여 그 아래 index.js 파일을 생성한다. 생성한 index.js 파일에 아래와 같이 코딩한다. var Sequelize = require('sequelize'); var path = require('path'); var fs = require('fs'); var dotenv = require('dotenv'); dotenv.config(); //LOAD CONFIG //.env 파일에 있는 정보들에 접근 const sequelize = new Sequelize( process.env.DAT

Naver Blog

[node] Sequelize에서의 모델 작성

models 하위 폴더에 products.js 를 생성한다. 생성한 파일에 아래와 같이 코딩한다. sql문의 Create와 비슷하다고 보면 된다. module.exports = function(sequelize, DataTypes){ const Products = sequelize.define('Products', { id: { type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true }, name : { type: DataTypes.STRING }, price : { type: DataTypes.INTEGER }, description : { type: DataTypes.TEXT } } ); return Products; } products.js app.js로 돌아가 dbConnection() 함수 중 sync 부분에 해당 소스를 추가해준다. return db.sequelize.sync(); cmd창에서 실행 시 product

1 2 3 4 5 6 7 8