얼음꽃의 일지

[3주차] 팀 과제 본문

9기 주차 팀과제 내용

[3주차] 팀 과제

얼음꽃 2022. 10. 19. 22:45
728x90

1. for 문이 있는데 for ... in for...of 문법이 새로 나온 이유는 무엇일까요? 우리가 이것을 고르는 기준은 무엇일까요?

 

for.. in : 객체의 속성들을 반복하여 작업을 수행, 모든 객체에서 사용 가능, true값에 접근 → key, value 형태(객체)일때는 value값에 접근 → 배열 형태일때는 index값에 접근

→ this 가 지칭하는게 다름

→ for in 문 안에서 반복이 진행될때 element의 변경이 있으면 for in에서는 반영할지 안할지 모름

그치만 for 문 안에서는 반영이 됨

for.. of : ES6에 추가된 새로운 컬렉션 전용 반복 구문, 사용하기 위해서 컬렉션 자체가 [Symbol.iterator] 속성을 가지고 있어야함 → 배열 형태일때 index위치에 있는 원소 값에 접근 → 객체 형태일때 못받아옴

 

2. 자바스크립트에서 유사배열과 배열의 차이는 무엇일까요? 유사배열의 각 요소를 수정하고 싶다면 어떤 과정을 거쳐야할까요?

 

유사배열 : 배열이고 싶어하는 아이

예)

let likearry = {name : 정정길 , age : 31, map : 20}

likearry.map = 100

*map 이라는 키값의 value가 100으로 바뀜

배열 : 얘는 진짜 배열

예)

let arry = [ 10, 20 , 30, 40]

*arry.map((x) ⇒ x +20) 전체 arry에 20씩 더함.

유사배열은 Array에 내장된 함수를 사용 할 수 없다.

유사배열 요소 수정 : 특정 key 값을 가져와서 value를 수정

배열의 요소 수정: 보통 arry 전체에 영향을 주는 method를 사용해서 elements의 값을 변경

 

3. restAPI의 put 과 patch 는 어떤 차이점이 있을까요? 어떤 경우에 사용하면 좋을까요?

 

Put : 자원의 전체를 교체, 자원 교체시 모든 필드가 필요, 일부만 할경우 모두 초기화 혹은 null

Patch : 자원의 부분을 교체, 자원 교체시 일부 필드가 필요

 

4. 몽고DB로 테이블 설계를 해봅시다. 회원가입을 한 유저가 게시판에 글을 쓰는 서비스입니다. 게시판 목록 페이지에서는 게시글 제목, 작성자 이름 등이 보이겠죠? 각각의 모델은 어떤 모양새이면 좋을까요? 게시판 글 리스트를 불러오는 api 에서는 몽구스 데이터를 어떻게 가져오면 좋을까요?

 

schema형식으로 테이블을 가져온다. schema에 들어갈 key는 제목, 작성자, 비밀번호, createdAt, _id, thumbnail등의 모양이다. 이 테이블(=schema)은 나중에 수정하려고 하면 까다로우니 처음에 신중하게 결정한다.

const postsAll = await Post- 웹서버 = AWS EC2s.find().sort({date: -1});
 const [...posts] = postsAll.map((post) => {
     return {
        postsId : post.postsId,
         title : post.title,
         name : post.name,
         data : post.data
     }   
 })

res.json({
    posts,
});

 

//schema
<script>
postsId: {
        type: Number,
        required : true,
        unique: true
    },
    name: {
        type:String,
        required : true
    },
    password: {
        type:String,
        required : true
    },
    title: {
        type:String,
        required : true
    },
    data: {
        type: Date,
        default: Date.now
    }
</script>

// routes
<script>
router.get("/posts", async (req, res) => {
    
    const postsAll = await Post- 웹서버 = AWS EC2s.find().sort({date: -1});
     const [...posts] = postsAll.map((post) => {
         return {
            postsId : post.postsId,
             title : post.title,
             name : post.name,
             data : post.data
         }   
     })

    res.json({
        posts,
    });
});
</script

const postsAll = await Post- 웹서버 = AWS EC2s.find().sort({date: -1});
 const [...posts] = postsAll.map((post) => {
     return {
        postsId : post.postsId,
         title : post.title,
         name : post.name,
         data : post.data
     }
 })

res.json({
    posts,
});

  • DNS = 가비아
  • 웹서버 = AWS EC2
  • 웹서버 뒷단에 내 컴퓨터에서 웹서버로 DB를 넘겨주거나 bit bash로 명령을 내려줌

https://hs5555.tistory.com/34

 

AWS EC2 인스턴스와 도메인 연결 이해

방법은 아래 포스팅을 참고 했습니다.. https://cafe.naver.com/mobilenjoy/18763 ec2 도메인 연결 지난 회에서는 AWS의 Elastic IP(이하 EIP)를 통해 고정 IP 주소를 획득하는... cafe.naver.com 아마존의 AWS EC..

hs5555.tistory.com

728x90

'9기 주차 팀과제 내용' 카테고리의 다른 글

[5주차] 팀 과제  (0) 2022.10.19
[4주차] 팀 과제  (0) 2022.10.19