Root
Go의 메서드란? 구조(struct) 전용 함수 해당 struct를 사용할때, 공통적으로 사용할 함수를 만들 수 있다. ex ) 은행계좌 객체 - 입금 함수, 출금 함수 은행계좌 구조와 메서드 만들기 // 구조 만들기 - 은행계좌 구조 type account struct{ owner string balance int } // account구조의 전용함수(메서드) 만들기 - *를 붙혀 원본 데이터를 직접수정! // 은행 계좌에 입금하는 함수 func (a *account) Deposit(amount int){ fmt.Println("Deposit.", amount) a.balance += amount } 이제 account 구조를 사용할때마다, 내부에 Deposit 함수가 포함된다!
패키지 방식이란? go의 코드를 여러개의 파일로 나누어 관리하는 것 ( 하나의 파일 : 패키지 ) go에서 패키지 만들기 // main.go 파일이 있는 폴더에, 새로운 폴더 만들고 새로운 파일 만들기 // ./accounts/accounts.go // 이 파일이 패키지 임을 go에게 알려줌 package accounts // 패키지 내부에서 struct 만들기 // go에서 맨앞글자(a)가 소문자이면, private 취급되어 다른 파일에서 사용할 수 없게 숨겨진다. type account struct{ owner string balance int } // 다른 파일에서 사용할 수 있는 public함수 만들기 (맨앞글자 대문자) func NewAccount(owner string) *account{ ac..
return(반환) 형식을 함수 생성시 지정한다. // 대소문자 변경을 위한 모듈 불러오기 import ( "strings" ) // 인자로 name을 받아, length와 uppercase를 반환하는 함수 만들기 func lenAndUpper(name string) (length int, uppercase string){ length = len(name) uppercase = strings.ToUpper(name) // 반환하는 변수를 이미 위에서 지정했기 때문에, 다시 지정할 필요가 없다! return } defer를 함수내에 사용해, 콜백함수를 만들 수 있다. // 사용할 모듈 불러오기 import ( "fmt" "strings" ) func lenAndUpper(name string) (lengt..
해결하고 싶은 문제점 이전 게시글에서, Next.js에서는 pages 폴더 내부의 파일로 페이지를 관리한다고 했다. 하지만 이런 페이지들을 만들어야 할때는 어떻게 할까? 게시글 상세페이지 유저 프로필 페이지 위의 경우에, 하나씩 페이지를 직접 만들게 되면, 너무 많은 페이지를 만들어야 한다. Nest.js에서는 하나의 페이지를 공유하는 방식을 사용할 수 있고, 이를 사용해, 불필요한 반복작업을 줄일 수 있다. 해결방법 // 여러개의 게시글들 중에, 하나의 게시글 보여주기위한 페이지만들기 // pages/posts/[id].tsx // uri 매개변수 받아오기 위한 모듈 불러오기 import { useRouter } from 'next/router' const Post = () => { // useRout..
사람은 모두 다 , 1. 내가 중요한 사람이라고 믿고 싶어한다. 2. 내가 하는 일이 소중하고 관심 가질 가치가 있는것으로 믿고 싶어한다. 3. 많은 사람들의 관심을 받고 있다고 믿고 싶어한다. 4. 내가 힘있는 사람이라고 믿고싶어한다. 5. 내가 타인보다 뛰어난 사람이라고 믿고 싶어한다. 이런 우리의 믿음의 방향을 거스르는 사람은 우리의 "믿음을 공격하는 자" 이다. 믿음이 올바르지 못하다면, 믿음은 공격당하는 것이 아니라 없어져야 마땅한 것이지만, 자신에 대한 믿음이 없어지는 것이 너무나 두려운 우리는 올바르지 못한 믿음을 유지하는 것을 선택한다. [ 과대망상 바이러스 ] - 자신에 대한 올바르지 못한 믿음을 가지는 것. 자신에 대한 올바르지 못한 믿음을 가지고 있는 사람의 특징 1. 자신의 성공(능..
prisma에서 DB 데이터를 가져올때, include를 사용해야 하는 경우 처음으로 참조하는 테이블과 다른 테이블에 있는 정보를 가져와야 할때 ( 처음 : 게시글 -> 두번째 : 댓글 정보 )
인코딩이란? 사람이 이해할 수 있는 정보를, 컴퓨터가 이해할 수 있는 이진수(기계어)로 바꾸는 것 ( = 컴파일 ) 디코딩이란? 컴퓨터가 이해할 수 있는 기계어를, 사람이 이해할 수 있는 정보로 바꾸는 것 ( = 디컴파일 )
apollo parent란? 특정 resolver를 호출한 부모 resolver의 데이터 ( resolver가 resolver를 호출하는 경우에 사용합니다. ) ( 불러온 정보와 연관된 또 다른 정보를 불어와야 하는 경우 // GraphQL - 유저 정보 타입 지정 const typeDefs = { type User { id: Int! username: String! password: String! isfollowing: Boolean } } // Resolver - user가, isfollowing을 호출 { User: { isfollowing: (parent) => { console.log(parent) return true } } } // parent는 첫번째 인자로 전달됩니다!
context란? apollo server의 resolver에서 전역적으로 사용가능한 변수 apollo server에 context 추가하기 // 아폴로 서버에 context 추가, req 받아서 header 정보 사용하기 const server = new ApolloServer({ typeDefs, resolvers, context: ({ req }) => ({ authScope: req.headers.authorization }) })); // resolver에서 context 사용하기 ( 3번째 인자로 전달됨 ) (parent, args, context, info) => { if(context.authScope !== ADMIN) throw new AuthenticationError('not adm..