- 부트캠프에서의 첫 번째 프로젝트 회고 - 

 

지난 10월 31일부터 11월 11일(2주)간,

제 생애 첫 개발 프로젝트를 진행했습니다.

 

특별히 생애 첫 개발 프로젝트라고 강조하는 것은,

매 순간순간이 너무나 생생하고 소중했기 때문입니다.

 

본 프로젝트 회고록은 하기의 순서로 진행됩니다.

 

- 순서 -

1. 기술적으로 겪었던 어려웠던 점

2. 프로젝트 시작 전 세웠던 계획에 대한 평가

3. 기타 느낀 점

 

 

우선,

기술적으로 겪었던 어려웠던 점 입니다.

 

회고록 내용의 두 기둥인,

감정과 기술을 분리하기 위해 별도로 작성한 게시글의 링크를 첨부합니다.

(기술관련 게시글은 내용이 아직 완성되지 않았으므로 비공개 상태임)

 

- MySQL, TypeORM 쿼리문을 통해 출력 한 자료의 형식에 관한 고찰(Object? String?)

Access denied for user ‘root’@’localhost’ (using password: YES, NO) 에러 발생 시 조치 방법 :: 더그는 피아노를 좋아해 (tistory.com) 

 - 미숙한 깃 사용능력으로 인한 업무낭비

 

입니다.

 

 

두 번째로,

프로젝트 시작 전 세웠던 계획에 대한 평가입니다.

냉정히 평점으로 매기자면 5점 만점에 1점 정도의 결과입니다.

 

제가 세웠던 목표는 하기 세 가지 입니다.

 

1. 공식문서 읽기

 

비록 실제로 구현에 성공하진 못했지만,

MySQL공식 문서를 뒤져가며 EventScheduler를 사용하려 노력했습니다.

선배님들의 블로그에서 '어떤 소스가 있구나.'정도만 파악한 후,

공식문서를 계속해서 읽었습니다.

 

구현에 결국 실패해서인지,

공식문서를 끝까지 고집했던것이 옳았었던 것인지,

어떻게든 결과를 만들어 내는 것이 옳았던 것인지,

판단이 잘서질 않습니다.

 

어찌됐든 결과를 만들어 냈어야 했었던 것인지,

많이 아쉽습니다.

 

 

2. 새로운 기능, 기술을 익히기

 

1번의 연장입니다.

계정삭제 API를 제작 하는 과정이었습니다.

 

즉각 삭제하는 것이 아닌 적정 텀을 두고 쿼리문을 시키는 방법(EventScheduler)와,

테이블에 삭제 예정 일자를 기입하고 해당 일자에 테이블이 삭제되도록 하는 방법,

두 가지를 구상했으나,

제 역량의 부족으로 실패했습니다.

 

제 쿼리문에 어떤 문제가 있었던 것인지,

나중에 꼭 다시 구현해보려합니다.

 

 

3. 컨디션(마음가짐) 관리 잘하기

 

냉정하게 말해,

컨디션 관리가 엉망이었습니다.

 

세션기간에는 아슬아슬하게 지켜오던 수면시간과 컨디션이,

프로젝트가 시작되고 1주일이 되는 시점부터 와르르 무너져 내렸습니다.

 

지금 생각해도 사실 어쩔 수 없었던 상황인가 싶기도 합니다.

 

어떻게든 구현하고 싶은 내용은 많고,

시간은 한정되어있고,

실력은 아직 부족하니,

결국 시간을 많이 투자할 수 밖에 없었던 것 같습니다.

 

아마 다음 프로젝트에도 비슷한 상황이 벌어지지 않을까 걱정이 됩니다.

마인드 관리와 컨디션 관리에 특별히 주의 해야겠습니다.

 


마지막으로 기타 느낀점입니다.

 

기타 느낀 점은 하기 세 가지 입니다.

 

1. 프론트엔드는 렌더링으로, 백엔드는 쿼리문으로 증명한다.

 

부트캠프에 참가하기 전,

자바스크립트, HTML, CSS에 간단히 공부하였습니다.

 

Node.js나 SQL과 같은,

백엔드 기술스택에 대한 지식은 전무했습니다.

 

그 결과 프로젝트 내내 제 역량의 부족으로, 

원하는 로직을 구현하지 못하는 안타까운 순간이 반복됐습니다.

 

사실 많이 속상했습니다.

'내가 왜 몰랐을까',

'나는 왜 동기보다 못할까'

 

생각했지만,

저는 거꾸로 생각하기로 했습니다.

 

'나도 해낸다',

'아픈만큼 동기부여가 되니, 나는 동기가 충만한 상태이다'

라고 말입니다.

 

앞으로 SQL을 어떻게 공부할지 계획을 세웠습니다.

사실 오늘부터 당장 두 번째 프로젝트가 시작되기 때문에,

오롯이 SQL공부에 집중할 수는 없습니다.

 

하지만 꾸준히, 조금씩, 차근차근 백엔드적 역량을 쌓아가려합니다.

 

 

2. API문서와 쿼리문은 누가봐도 명확해야 한다.

 

사실 처음에는 이해가 되질 않았습니다.

 

'왜 이렇게 명세수정을 요청하실까?'

'대충 보면 다 아실 수 있는 내용이 아닌가?'

 

제가 전달해드리는 res값의 키 이름을 보면,

프론트엔드분들도 당연히 쉽게 내용을 파악하실 수 있으리라 생각했습니다.

 

하지만 이게 웬걸,

제 코드가 아닌 동료가 작업한 코드를 수정하는 과정에서 저는 깨달았습니다.

모든 코드 및 API문서는 명확해야하고 애매함이 없어야 한다는 것을 말입니다.

심지어 제가 작성한 코드도 제가 이해하지 못할 때가 있었습니다.

 

동료분이 작성한 코드가 좋지않았다는 것이 아닙니다.

다만 사람의 생각은 정말 어디로 튈지모르고,

사람마다 해석방법이 가지각색이라는 것을 알아야 한다는 의미입니다.

 

앞으로는 API문서는 물론,

코드를 작성할 때에도 애매함이 없이 명확할 수 있도록 특별히 신경쓰려합니다.

 

 

3. 개발은 함께하는 것이다.

 

어쩌면 가장 중요한 내용이 아닐까 싶습니다.

 

짧은 하나의 문장에,

개발에 관한 많은 것들이 함축되어 있다고 생각합니다.

 

개인의 실력도 중요하지만,

함께 일할 수 있는 능력이.

 

모든것을 혼자 해내는 것 보다,

본인의 어려움과 알고있는 내용을 공유하는 능력이.

 

혼자 폭발적인 스퍼트를 내는 것 보다,

함께 호흡을 맞추고 템포를 조절하는 능력이.

 

혼자 돋보이는 것 보다,

타인을 빛내고 함께하는 마음이.

 

개인의 욕심보다,

팀의 성장을 바라는 마음이.

 

개발자에게 가장중요한 덕목이지 않을까 하고,

프로젝트를 진행하며 느꼈습니다.

 

그리고 과연 나는 현재 어떤 상태인가,

되돌아보게 되었습니다.

 

여러모로 많이 부족한 상태로 프로젝트에 임했습니다.

그만큼 많이 어려웠습니다.

 

하지만,

어려웠던 만큼 앞으로 더 성장 할 여지가 있다고 생각합니다.

특별히 아팠던 부분을 중점적으로 보완해가면 될 일이니까요.

 

순간은 아프지만,

절대 좌절하며 주저앉지 않습니다.

 

누구나 처음은 서투른 법입니다.

앞으로 더욱 단단해질 제 자신이 더욱 기대가 됩니다.

 

사실,

제가 이렇게 생각하게 된 것은 제 멘탈이 강해서가 아닙니다.

그건 보물보다 소중한 동료들이 제 곁에 있고,

그들이 저와 함께하기 때문입니다.

(나만 그렇게 생각하는건가?!👀ㅋㅋㅋ)

 

터무니없이 부족했던 저를,

끝까지 따뜻하게 대하고 응원해 줬던 저의 동료들에게 꼭 고맙다고 인사하고싶습니다.

 

- 재미없는 줄 알았는데 너무너무 재밌었던 동료

- 자러 갔다가 코드가 떠올랐다고 한 시간만에 돌아왔던 동료

- 능력있고 추진력도 있고 넓은 시야까지 있던 동료

- 조용하지만 책임감있게 모든 것을 해냈던 동료

- 많이 부족한 저와 함께 끝까지 노력했던 착하고, 순수하고, 배려심 있던 특별한 동료🐤

 

모두모두 너무너무 감사합니다.

 

많은 것을 배우고 느꼈지만,

동료들이 없었다면 무의미 했던 시간이었습니다.

 

앞으로,

그들의 앞길이 꽃으로 가득하길 진심으로 응원합니다.🌻🌼🌷🌹🌺

 

저는 하루하루 꿈틀거리며 전진하겠습니다.🐛🐛🐛🐛🐛

감사합니다.

- 굿 라이프(내 삶을 바꾸는 심리학의 지혜) - 

 

저자 : 최인철

출판사 : 21세기북스

 

좋은 프레임으로 세상을 바라볼 때 찾아오는 행복과 삶의 가치!

행복과 인생에 관한 통찰로 가득한 『굿 라이프』. 심리학의 바이블로 자리매김한 《프레임》의 저자 최인철 서울대학교 심리학과 교수가 행복과 삶에 관해 수행해온 자기 연구를 소개하는 책이다. 

 

행복에 관한 책이지만 동시에 행복을 넘어선 새로운 인생의 프레임을 고민하고자 하는 이 책에서 그동안 저자의 연구팀에서 수행해온 다양한 연구 결과를 바탕으로 행복과 인생에 관한 통찰을 세 가지 틀로 풀어낸다.(후략..)

 

(책 소개 출처 : 교보문고)

 

 

 

 

 

 

 

- 감상 -

 

추천을 받아 구매하긴 했지만,

'행복'이라는 문구에 내심 작은 유치함을 느꼈습니다.

 

하지만 책을 다 읽고 난 후,

제 편협한 생각에 대해 반성하게 되었습니다.

 

저를 포함한 현대인들은,

알게모르게 행복을 등한시 하는 것 같습니다.

 

심지어 성공을 향해 노력하는 사람들 중 많은 비율이,

행복은 그저 성공으로 향하는 길의 장애물이라고 생각한다고 합니다.

 

이 책은 우리가 평소 가지고 있던 행복에 관한 오해를 바로잡고,

행복과 본인의 삶에 대한 프레임을 스스로 점검하게 합니다.

 

이 책의 특별히 인상깊은 세 가지 내용을 공유합니다. 

 

1. 행복은 고통이 없는 상태가 아니다.

 

이 책에 따르면,
일부 학자들이 긍정적인 경험과 부정적인 경험의 이상적인 비율을 찾기위해 노력하고 있지만,
그 어떤 학자도 그 비율이 100:0이라고 주장하지 않는다고 합니다.

돌이켜보면 그랬던 것 같습니다.
맛있는 아이스크림을 먹거나,
재밌는 영화를 본다고 상상해봅시다.

아이스크림 한 두개까지는 맛이있지만,
영화 한 두 편까지는 재미있지만,
반복될수록 그 감흥은 떨어지기 마련입니다.

맛 없고 건강한 음식이 있기에,
아이스크림이 더욱 맛있습니다.

힘들고 스트레스받는 노동이 있기에,
영화보는 시간이 행복합니다.

어찌보면 불행이나 부정적인 경험이 있기에,
행복감이나 긍정적인 경험이 있을 수 있고 값지지 않나 생각합니다.

그러니 지금 마음속에 드는 괴로움과 부정적인 생각을,
행복으로 향하는 길에서 만나는 반가운 경험으로 받아들이는 것도 좋겠습니다.

 

2. 거창한 목표만이 목표의 전부는 아니다.

 

우리는 스스로도 모르게, 

'목표'라는 단어를 '행복'과 대척점에 둡니다.

 

인류 발전에 기여하는 것,

종교적 깨달음을 얻는 것 등도 좋은 목표입니다.

하지만 꼭 이러한 것들만이 삶의 목표가 되는 것은 아닙니다.

 

건강해지기 위해 운동하는 것,

아이에게 따뜻한 말을 건네는 것,

과소비를 하지 않는 것 등도 좋은 목표가 될 수 있습니다.

 

목표 중 가장 좋은 것은,

그것으로 인해 스스로가 행복해질 수 있는 목표입니다.

 

남들이 볼 때는 작고 하찮은 목표일지라도 본인을 행복하게 할 목표라면,

그를 향해 달려가는 매 순간이 행복으로 충만 할 것입니다.

 

3. 인생의 맞바람과 뒷바람을 함께 알아야 한다.

 

사람이 달리고 있습니다.

뒷바람이 불면 바람을 타고 달리기 때문에 달리기가 수월해집니다.

맞바람이 불면 바람을 거슬러 달리기 때문에 달리기가 힘들어집니다.

 

저를 포함한 많은 사람들은,
일이 잘 풀릴 때에는 본인이 잘한 덕이고,
일이 잘 풀리지 않을 때에는 배경과 불운을 푸념합니다.

 

이 책에 따르면  사람들은 스스로의 상황을,

남들의 그것보다 불리하다고 여긴다고 합니다.

 

우리의 삶에는 분명 뒷바람과 맞바람이 공존합니다. 

 

품격있는 사람이 되기 위해서는,

본인에게 불어오는 맞바람을 탓하기만 할 것이 아니라,

본인을 밀어주는 뒷바람에 대해 감사함을 가질 수 있어야 할 것입니다.

 

 

끝으로,

책의 첫 페이지에 수록되어있는 문구를 공유합니다.

 

삶을 바라보는 인간의 방식은 그의 운명을 결정한다 - 알베르트 슈바이처

내일이면 부트캠프에서의 첫 프로젝트가 진행됩니다.

 

열심히 하는 것 자체도 중요하지만,

하기 세 가지 내용을 달성하도록 노력할 예정입니다.

 

1. 공식문서 읽기

 

구글링을 해보면,

너무나도 잘 정리되어있는 선배 개발자님들의 블로그가 많습니다.

 

선배님들의 글을 잘 이해하고 적용하는 것도 좋은 능력이겠습니다만,

공식문서를 이해하고 적용하는 것이야말로 '근본'이 아닐까 싶습니다.

 

무엇이든 근본이 중요하다고 생각합니다.

어렵겠지만 지금부터 좋은 개발습관을 들여야하지 않나 생각합니다.

 

 

2. 새로운 기능, 기술을 익히기

 

사실 지난 4주간 배운 내용들을 그대로 적용하는 것 자체도 쉽지않은 일입니다.

하지만 현업에서는 매일 상황이 바뀌고 필요한 기술스택도 바뀔 것입니다.

 

'나는 모르는데?', '해본 적 없는데?'라는 태도보다는,

어렵겠지만 구현하려 노력하는 습관과 태도가 저를 성장시키리라 생각합니다.

 

아주 사소한 것이라도,

지난 4주동안 배우지 않았던 것을 적용해보고 싶습니다.

 

 

3. 컨디션(마음가짐) 관리 잘하기

 

당연한 이야기이지만,

어쩌면 컨디션 관리가 가장 중요한 포인트가 아닐까 싶습니다.

 

당장의 조바심에 급해져 오늘 무리해버린다면,

내일의 일정을 소화할 수 없을지 모릅니다.

 

일정도 일정이거니와,

팀원들에게 좋지않은 영향을 끼칠 수도 있습니다.

 

컨디션과 마음가짐을 잘 관리하여,

함께 일하고싶은 동료가 되고싶습니다.

 

화이팅!🔥

Javascript의 배열관련 method 중 slice와 splice가 있습니다.

헷갈리기 쉬운 두 method에 대해 정확히 알아보고자 합니다.

 

- 정의 및 차이-

MDN에 기재된 각 method의 정의는 하기와 같습니다.

 

Array.prototype.slice()

The slice() method returns a shallow copy of a portion of an array into a new array object selected from start to end (end not included) where start and end represent the index of items in that array. The original array will not be modified.

 

Array.prototype.splice()

The splice() method changes the contents of an array by removing or replacing existing elements and/or adding new elements in place. 

 

정의로부터 알아본 차이는 하기와 같습니다.

 

slice는,

1. 원본 배열을 수정하지 않습니다.

2. parameter로 지정한 범위를 shallow copy 한 새 배열을 반환합니다.

 

splice는,

1. 원본 배열을 수정합니다.

2. 요소의 삭제, 대체, 추가가 가능합니다.

(slice는 삭제만 가능)

 

 

- 문법 - 

slice는 하기 문법을 통해 사용합니다. 

 

slice()

→ 기존 배열을 shallow copy한 새로운 배열을 반환합니다. 
slice(start)

→ start index부터 끝까지 요소를 새로운 배열로 반환합니다.
slice(start, end)

start index부터 end index 까지의 요소를 새로운 배열로 반환합니다.

 

 

splice는 하기 문법을 통해 사용합니다. 

 

splice(start)

원본 배열의 start index 이후의 요소들을 모두 제거합니다. 
splice(start, deleteCount)

원본 배열의 start index부터 deleteCount만큼의 요소들을 제거합니다. 
splice(start, deleteCount, item1)

원본 배열의 start index부터 deleteCount만큼의 요소들을 제거하고 item1을 삽입합니다.
splice(start, deleteCount, item1, item2, itemN)

원본 배열의 start index부터 deleteCount만큼의 요소들을 제거하고 item들을 삽입합니다.

 

parameter를 비교하니 두 method의 차이가 명확히 다가옵니다.

slice는 삭제, splice는 삭제를 포함한 수정으로 기억하면 좋을 듯 합니다.

 

 

- 사용 예시 - 

상기 내용을 참고하여 하기 예제를 작성합니다.

const fruits = ['🥝''🍅''🍒''🍌''🥭''🍍''🍋'];
const newFruits1 = fruits.slice(2);
const newFruits2 = fruits.slice(24);
 
console.log('newFruits1', newFruits1);
console.log('newFruits2', newFruits2);
 
// animal1~animal4는 동일한 배열임
const animals1 = ['🦁''🐷''🐔''🐲'];
animals1.splice(1);
console.log('spliced animals1', animals1);
 
const animals2 = ['🦁''🐷''🐔''🐲'];
animals2.splice(11);
console.log('spliced animals2', animals2);
 
const animals3 = ['🦁''🐷''🐔''🐲'];
animals3.splice(21'🦊');
console.log('spliced animals3', animals3);
 
const animals4 = ['🦁''🐷''🐔''🐲'];
animals4.splice(21'🦊''🐨');
console.log('spliced animals4', animals4);
cs

 

터미널에 하기와 같은 결과가 출력됩니다.

 

 

 

저는 10월 초에 개강한 모 부트캠프 과정을 수료중입니다.

 

오늘로 4주차 과정이 끝났습니다.

다음주부터는 본격적인 프로젝트가 진행 될 예정입니다.

 

여러가지 기분과 생각에 휩싸인 지금,

지금까지를 돌아보고 앞으로의 다짐과 계획을 세우려합니다.

 

 

-내가 배운 것-

 

아직 수준은 많이 모자라지만😁,

'배웠다', '할 줄 안다'는 것들에 대해 나열합니다.

 

1. 간단한 HTML조작

2. Javascript를 통한 간단한 DOM 조작

3. Node.js, Express를 통한 간단한 서버 운영

4. MySQL, TypeORM을 통한 자료저장 및 호출

5. 간단한 GitHub 운용

 

커리큘럼도 탄탄하고 가르쳐주시는 멘토님들도 너무너무 친절하십니다.

(진짜진심정말 최고!)

다만 더딘 제 학습능력으로 아직 깊게까지 공부하지는 못했습니다.

제 공부방법에 개선이 필요한 것 같기도 합니다.

 

단기간에 많은 기술을 체험했다는 것,

데이터베이스 구성의 기초를 경험해 보았다는 것에 의의를 두려합니다.

 

 

-내가 느낀 것-

 

1. 나는 참 운이 좋다.

 

모두가 좋았던 것은 아니지만,

어디서 무얼하든 항상 좋은 동료와 멘토님들이 있었습니다.

 

 

2. 좌절 할 시간에 하나라도 더 배우자.

 

사람마다 배경이 다르고, 지식 습득속도가 다릅니다.

남과 자신을 비교 할 시간에 하나라도 배워 선순환을 만들어 갑시다.

(저도 잘 안되지만 해내려고 노력중입니다.)

 

 

3. 시간은 금이다.

 

몰입해서 작업하다보면 하루가 금방입니다.

흥청망청 놀아도 하루가 금방,

열심히 노력해도 하루가 금방입니다.

지금은 큰 차이가 없어보일지 모릅니다.

하지만 1,2년이 지나면 도저히 따라잡을 수 없을 차이가 있을 것입니다.

 

 

-내가 느낀 모자란 것-

 

1. 내 학습 방법이 잘못 되었을지 모른다.

 

우선 원리를 완전히 이해하고,

일필휘지로 프로그램을 짜는 것이 옳다고 생각했습니다.

하지만 원리를 이해하지 못하니,

진도가 나가지 못하는 문제가 발생하여 곤란한 적이 있습니다.

때에 따라서는 우선 결과를 만들고,

원리는 나중에 이해하는 융통성을 발휘하도록 해봐야겠습니다.

 

 

2. 좀 더 집중하자.

 

요즘 저는 밤의 3시간 가량을 제외하곤 하루종일 컴퓨터 앞에 있습니다.

식사도 컴퓨터 앞에서 합니다.

하지만 그때문인지 집중력도 조금 떨어지는 느낌입니다.

앞으로는 컴퓨터 앞에 앉아있는 시간을 줄이더라도 집중력을 높이도록 해야겠습니다.

그러기 위해서는 적절한 수면량 확보가 필요할 것으로 보입니다.

 

 

3. 중심을 잡자.

 

그러지 않으려 해도,

자꾸 남들과 스스로를 비교하고 자괴감이 자꾸 드는것이 사실입니다.

의식적으로라도 벗어나려고 노력해야겠습니다.

'나는 나만의 강점이 있다.'

'나는 나만의 길을 간다.'

'내 가치는 내가 정한다.'

쉽진 않지만 계속 되뇌어야겠습니다.

 

 

- 앞으로의 계획 -

 

1. 코드리팩토링

 

지금까지 작성한 제 코드들을 보니 몇 가지 문제점이 보입니다.

주말동안 해당 문제점을 개선해야겠습니다.

 

 

2. 프로젝트준비

 

당장 내일 오후에 프로젝트 관련 회의가 있는데,

아직 아이디어가 모자랍니다.

조금 더 브레인스토밍을 해야겠습니다.

 

 

3. 초심잃지않기

 

무엇을 하든 초심을 잃지 않는 것이 중요하겠지요?

비록 부트캠프 시작 후 4주밖에 지나지 않았지만,

이런 저런 이유로 집중력이 흐트러지기 좋은 상황 입니다.

이럴 때 일수록 초심을 다잡고 항상 겸손하고, 감사한 마음을 가지도록 노력해야겠습니다.

 

다음주가 벌써 기대됩니다.

화이팅!🔥🔥🔥🔥🔥🔥🔥🔥🍗🍖🥩

-문제점-

 

node.js에서 express를 통한 api를 작성 중,

'Cannot set headers after they are sent to the client'오류가 발생하였습니다.

 

 

 

-원인-

 

해당오류는 api호출 한 번에 response신호를 두 번 받아 생긴 오류입니다.

저 경우는 미들웨어의 끝자락에 res를 지정한 것이 중복이 된 것이 원인이었습니다.

 

 

-해결방법-

 

미들웨어에서 response를 제거한 후 정상적으로 통신 할 수 있었습니다.

배열을 지정 된 크기로 분해하여 다시 배열에 담아보았습니다.

 

 

- 작성코드 - 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
const rawArr = [1,2,3,4,5,6,7,8,9];
//분해 될 배열 생성
const chunkSize = 3;
//분해 할 크기 지정
 
function divideArr(arr, size){
  let elementArr = [];
  //지정된 크기로 분해 될 배열 생성
  let resultArr = [];
  //분해 된 배열을 담을 최종 배열 생성
 
  for(let i = 0; i < rawArr.length; i+=size){
    //분해 할 크기만큼의 간격을 두고 i가 배열을 순회
    elementArr = rawArr.slice(i, i+size);
    //지정된 크기로 배열을 분해
    resultArr.push(elementArr);
    //분해 된 각 배열을 최종 배열에 삽입
 
 } return resultArr
}
cs

 

 

1. for문 순회간격 지정

 

순회간격을 'i++'가 아니라,

'i += 원하는크기'로 지정하는 것이 포인트입니다.

 

 

2. slice  method를 사용하여 배열 분해

 

slice method는 원본배열을 수정하지 않습니다.

별도의 변수에 수정 될 배열을 할당해줍니다.

 

 

3. 결과

 

배열이 작게 분해된 후 다시 큰 배열에 담아집니다.

Javascript의 every method를 활용하여 배열 내 요소들의 일치여부를 검사해보았습니다.

비슷한 method로 some이 있습니다.

 

every는 && 조건,

some은 || 조건으로 생각하면 이해가 쉬울 것 같습니다.

 

- 작성코드 - 

 

See the Pen Untitled by duglikespiano (@duglikespiano) on CodePen.

 

 

1. 함수에 every method를 적용

 

작성코드는 

array.every(elements => elements === array[0])입니다.

'배열의 모든 요소들을 돌며 배열의0번째 요소와 일치하는지 검사'합니다.

 

모든 배열이 같은 지 검사하는 것이 목적이니,

배열의 0번째 외의 요소를 지정해도 되겠습니다.

 

 

2. 결과

 

모든 요소가 일치한다면 true가,

일치하지 않는다면 false가 반환됩니다.

모듈이 아닌 페이지를 작성한 것은 처음이라,

기념으로 관련파일을 업로드합니다.

사실 완성이랄 것도 없고 내부는 엉망진창입니다.

 

다만 결과물이 눈에 보이는 것이 너무 신기하고 기쁩니다.

일취월장 할 수 있도록 계속 노력해야겠습니다.

 

화이팅! 👍🎉

 

- 구현내용 -

1. 모양
2. 좋아요 버튼 클릭 ->모양 바뀜, 좋아요 카운트 바뀜
3. 댓글 구현->입력, 삭제 가능

 

 

 

 

 

main.zip
0.61MB

'웹개발자공부 > Project' 카테고리의 다른 글

chat with dug  (0) 2023.03.30
draganddrop  (0) 2023.03.06
todolist  (0) 2023.01.16

Linux 및 mac 터미널에서 자주 쓰이는 명령어와 관련 개념에 대해 정리합니다.

 

✲ pwd

Print Working Directory의 줄임말입니다.

현재 경로를 출력합니다.

 

 ls

List Segments의 줄임말입니다.

현재 폴더 내 파일 및 폴더를 출력합니다.

 

 cd

Change Directory의 줄임말입니다.

폴더를 이동합니다.

'cd 원하는 위치'의 형식으로 사용합니다.

 

 touch

파일을 생성합니다.

'touch 파일명.확장자'의 형식으로 사용합니다.

 

 cp

Copy의 줄임말입니다.

폴더 및 파일을 복사합니다.

'cp 파일명(변경 전).확장자 파일명(변경 후).확장자'의 형식으로 사용합니다.

 

 mv

Move의 줄임말입니다.

폴더 및 파일을 이동합니다.

'mv 파일명.확장자 이동위치'의 형식으로 사용합니다.

 

 mkdir

Make Directory의 줄임말입니다.

폴더를 생성합니다.

'mkdir 폴더명'의 형식으로 사용합니다.

 

 rmdir

Remove Directory의 줄임말입니다.

폴더를 삭제합니다.

'rmdir 폴더명'의 형식으로 사용합니다.

 

 rm

Remove의 줄임말입니다.

폴더 및 파일을 삭제합니다.

-r(recursive) 옵션을 붙여, 파일이 들어있는 폴더를 삭제합니다.

'rm -r 폴더명'의 형식으로 사용합니다.

 

 /

최상위 경로(root)경로를 의미합니다.

절대경로를 나타낼 때 사용합니다.

'/Users/username'의 형식으로 사용합니다.

 

 

 . ..

상대경로를 나타낼 때 사용합니다.

.는 현재경로를 의미합니다.

..는 상위 경로를 의미합니다.

 

 

!!!!!중요!!!!!

rm -rf* : 파일이 들어있는 모든 폴더 강제로 삭제합니다.

무시무시한 명령어 입니다..조오오심..하세요..😆

 

 

참고url 1 : https://blog.naver.com/nodame3806/222792164155

참고url 2 : https://yozm.wishket.com/magazine/detail/746/

+ Recent posts