분류 전체보기 119

[CS] 백엔드 기술 면접 질문(Spring 위주)

1. WAS와 WS의 차이 - WAS(Web Application Server): 비즈니스 로직을 넣을 수 있음(Ex-Tomcat, PHP, ASP, .Net 등) - WS(Web Server): 비즈니스 로직을 넣을 수 없음(Ex-Nginx, Apache 등) 2. 많은 트래픽이 발생할 경우 대처하는 방법 - 스케일 업(Scale Up): 서버에 CPU나 RAM 등을 추가하여 서버의 하드웨어 스펙을 향상시키는 방법 - 스케일 아웃(Scale Out): 서버를 여러 대 추가하여 시스템을 증가시키는 방법 3. CORS 란? 도메인이 다른 2개의 사이트가 데이터를 주고 받을 때 발생하는 문제 서버 내에서 요청이 허락된 도메인에만 데이터를 주기 위해서인데, 요청을 허락하기 위해서는 Access-Control-..

CS/공부 2022.03.23

JPA Auditing

Java에서 ORM 기술인 JPA를 사용하여 도메인을 관계형 데이터베이스 테이블에 매핑할 때 공통적으로 도메인들이 가지고 있는 필드나 컬럼들이 존재합니다. (ex. 생성일, 수정일 등) 데이터베이스에서 누가, 언제 그 일을 했는지 기록을 잘 해야 합니다. 그래서 공통적으로 도메인들이 가지고 있는 필드나 컬럼은 중요한 데이터입니다. 그래서 JPA에서는 Audit이라는 기능을 제공하고 있습니다. Audit은 '감시하다'라는 뜻으로 Spring Data JPA에서 시간에 대해서 자동으로 값을 넣어주는 기능입니다. 도메인을 영속성 컨텍스트에 저장하거나 조회를 수행한 후에 업데이트를 하는 경우 매번 시간 데이터를 입력하여 주어야 하는데, audit을 이용하면 자동으로 시간을 매핑하여 데이터베이스의 테이블에 넣어주..

[Graphql] 3. React-Apollo

Apollo는 redux를 대체할 수 있는 grpahql-client의 하나다. Graphql을 기반으로 한 상태관리 플랫폼이며 client에서 graphql을 사용하여 데이터를 가져오는 UI를 만들 때 사용하기 좋다. query문을 정의하고 graphql 서버로 보내면 원하는 데이터 혹은 한 번에 많은 양의 데이터를 받아올 수 있다. 캐싱을 자동으로 관리해줘서 redux의 reducer처럼 복잡하게 관리할 필요가 없다.

Javascript/Graphql 2021.12.23

[Graphql] 2. 스키마 & 타입

GraphQL은 어떠한 백엔드 프레임워크나 프로그래밍 언어든 함께 사용할 수 있다. 1. 타입시스템 GraphQL 쿼리 언어는 기본적으로 객체의 필드를 선택하는 것을 알 수 있다. 예) 1) root 객체로 시작 2) hero 필드를 선택 3) hero에 의해 반환된 객체에 대해 name과 appearIn 필드를 선택 GraphQL 쿼리의 형태가 결과와 거의 일치하기 때문에 서버에 대해 모르는 상태에서 쿼리가 반환할 결과를 예측할 수 있다. 하지만 서버에 요청할 수 있는 데이터에 대한 정확한 표현을 갖는 것이 좋다. 그래서 어떤 필드를 선택할 수 있는지, 어떤 종류의 객체를 반환할 수 있는지, 하위 객체에서 사용할 수 있는 필드가 무엇인지, 이것이 바로 스키마가 필요한 이유이다. 모든 GrpahQL 서비..

Javascript/Graphql 2021.12.23

[CS] 개발자 기초 질문 20선

1. 1바이트는 몇 비트? 8 2. 1픽셀은 몇바이트? 1 3. 2^10은 얼마? 1024(컴퓨터는 2진수 사용하므로, 2^10가 10bits, 2를 10번 곱한 값이기 때문에) 4. 스택과 큐의 차이? 스택(LIFO)로 가장 나중에 입력된 데이터가 가장 먼저 출력되는 자료구조 큐(FIFO)로 가장 먼저 입력된 데이터가 가장 먼저 출력되는 자료 구조 5. Binary Tree의 시간 복잡도는? 평균 O(logN), 최악의 경우 O(N) 6. DNS의 역할? 도메인 이름을 호스트의 네트워크 주소(=IP주소)로 바꾸거나 그 반대로 변환 7. HTTPS와 HTTP의 차이는? HTTP가 안전하지 않은 반면, HTTPS는 TLS/SSL 인증서를 사용하여 인증을 보장하는 보안 프로토콜 8. 스마트폰 카메라 해상도는..

CS/공부 2021.12.08

[WatchOS] React-Native 앱에서 데이터 받는 함수

session(_:didReceiveMessage: replyHandler:) func session(_ session: WCSession, didReceiveMessage message: [String : Any], replyHandler: @escaping ([String : Any]) -> Void) { let text = message["text"] as! String self.testLabel.setText(text) } -> RN 앱에서 데이터를 받을 때는 didReceive 함수를 이용해서 받을 수 있다. func session(_ session: WCSession, activationDidCompleteWith activationState: WCSessionActivationState, e..

WatchOS 2021.11.19

[WatchOS] React-Native와 WatchOS 연결하기

우선 React-Native 폴더에서 react-native-watch-connectivity 을 설치해줍니다. npm install react-native-watch-connectivity --save # or yarn add react-native-watch-connectivity 그 후 React-Native 폴더와 WatchKit 폴더를 Link 해주어야 합니다. 1) React-Native 버전이 0.60보다 낮은 경우 react-native link 2) 그 외 경우 (직접 연결) // ios/Podfile pod 'ReactNative 프로젝트이름', :path => '../node_modules/react-native-watch-connectivity' 이후 pod install을 진행해줍..

WatchOS 2021.11.19

[WatchOS] 애플워치에서 데이터 저장하기

이번 글에서는 Xcode에서 애플워치에서 데이터 저장하는 법을 알아보려합니다. 1. 우선 WatchOS 프로젝트를 생성합니다. ios 앱과 연동하려면 첫 번째를 클릭하고 애플워치 앱만으로 만드려면 두 번째를 클릭해서 생성합니다. 2. 우선 위의 그림과 같이 + 버튼을 눌러서 인터페이스로 Button과 Label을 배치합니다. 그러면 이런 화면이 구성이 됩니다. 이제 코드를 보겠습니다. WatchKit Extension 폴더에서 InterfaceController.swfit 파일로 들어갑니다. 그러면 이제 거기에서 // InterfaceController.swift import WatchKit import Foundation class InterfaceController: WKInterfaceControl..

WatchOS 2021.11.11

[Node.js] FCM(Firebase Cloud Messaging)토큰으로 백그라운드 앱에 메시지 보내기

B라는 사람한테 어떠한 메시지를 전달하는 두 가지 경우를 먼저 생각해보면 1. A가 B에게 개인적인 메시지를 전달하기 위해서, 앱을 사용하고, 서비스를 하는 회사의 서버를 거쳐서 B에게 가는 방법( A-> 서버 -> B) 2. 앱에서 사용자에게 무엇인가 홍보하기 위해서, 회사의 서버에서 B에게 메시지를 보내는 방법(서버 -> B) 이 있습니다. 하지만 메시지를 실시간으로 전달받게 하려면, B는 서버에 계속 접속해야 하는데 이러면 배터리나 네트워크 사용으로 인해 문제가 발생할 겁니다. 그래서 중간에 Firebase 서버(혹은 구글 클라우드 서버)가 문제를 해결해줍니다. 모든 앱들은 (1) A -> 서버 -> Firebase 서버 -> B (2) 서버 -> Firebase 서버 -> B 이런 방식으로 실시간..

Javascript/Node.js 2021.11.04