특화프로젝트 팀원들이랑 기술질문 나올법한 것들을 공유하기로 했돠.
답변 레쓰고.
따로 새 글로 정리해야할 것은 태그로 올렸다. 도커와 JPA!!
IPFS 가 무엇이고 왜 쓰신건가요?(대구은행 면접 질문)
이 프로젝트를 진행함에 있어 왜 블록체인을 쓰신건가요?(대구은행 면접 질문)
Docker를 사용하셨는데 왜 docker를 사용하셨나요?
ssafy과정에서 vue를 배우셨던데 왜 react를 사용하셨나요?
개발을 진행할 때 어려웠던 점이 무엇이 있었나요?
SSL/TLS는 왜 설정하셨나요?
JPA를 사용하셨던데 JPA를 사용하신 이유가 무엇인가요?
JPA의 연관관계 @OneToMany, @ManyToOne에 대해 말씀해보세요.
@JoinColumn
으로 주인 테이블명을 써준다Board.getPost()처럼 참조가 필요하면 Board→Post 단방향참조
만약 참조가 굳이 필요없으면 참조를 안하면 됨
post.getBoard()처럼 참조가 필요하면 Post→Board 단방향참조
만약 참조가 굳이 필요없으면 참조를 안하면 됨
(참고 : https://soojong.tistory.com/entry/JPA-ManyToOne-OneToMany-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0)
(참고 : https://jeong-pro.tistory.com/231)
web2.0과 web3.0의 차이점을 설명하고 web3.0의 이점에 대해 말씀해보세요.
현재 인터넷 사용자는 일반적으로 타사 서버에서 호스팅되는 정보에 액세스한다. 이와 유사하게 새로 만들어진 앱들은 구글 클라우드나 AWS와 같은 다른 회사의 서버에 추가된다. 그러나 웹3.0는 인터넷 사용자들이 디앱(탈중앙화 앱)을 개발하고 유지할 수 있도록 한다.
웹3.0이 스마트 계약 기술을 사용한다는 것이다. 간단히 말하자면 무신뢰성(trustless) 형태의 인터넷을 만드는 데 도움이 될 수 있고 제 3자 중개인의 필요성을 크게 줄일 수 있다.
탈중앙화, 무신뢰성(trustless), 무허가성
마찬가지로, 스마트 컨트랙트의 사용은 무신뢰성(trustless) 인터넷을 만들 수 있다.
이는 개인이 제3의 행위자에게 신뢰를 둘 필요가 없다는 것을 의미한다.
예를 들어, 거래는 스마트 컨트랙트에서 암호화된 기능을 기반으로 자동으로 실행될 수 있다.
인터넷은 또한 무허가성(permissionless)의 성격을 띨 것이다.
이는 모든 사용자가 블록체인에서 거래 또는 내 거래를 검증할 수 있다는 것을 의미한다.
게다가 모든 사용자는 제3자의 허락을 요청하지 않고 구매나 판매와 같은 기능을 사용할 수 있다.
JPA 쓰셨다고 했는데, JPA로 엔티티를 만들 때 주의해야할 점이 뭐가 있을까요? (신한 1차때 실제로 들은 질문)
1) 가급적 Setter 사용하지 않기
2) 모든 연관관계는 지연로딩(fetch=FetchType.LAZY)로 설정하기
3) 컬렉션은 필드에서 초기화하자
4) 테이블, 컬럼명 생성할 때 대소문자, 카멜케이스, .->_ 주의
https://cornarong.tistory.com/77
JPA 쓰실 때 N+1 문제 겪으신 적 있는지? (신한 1차때 실제로 들은 질문)
QR코드 구현은 어떻게 하셨는지? 사용한 라이브러리, QR 인식 과정 말해주세요.
import { QrReader } from "react-qr-reader";
위 라이브러리 사용하여 큐알 구현
QR 생성시 들어가야하는 정보 : nfastSequence, userSequence
⇒ 해당 이용권이 우리 가게것인지, 그 손님것인지, 이 날짜/식사 시간이 맞는지 체크해야함.
⇒ QR 스캐너 실행 후 → QR 체크 API 호출 → 체크한 후 유효하면 nfastUseState를 1로 바꿈.
nfastUseState