반응형

전체 글 397

API 설계 사례 조사: Youtube DATA API 예

구글은 API 어떻게 설계했는지 참고하기 위해서 분석해봤다. 잘 모르면 유명 회사 사례를 따라하는 게 안전하고 쉬우니까. Youtube DATA API 예 (출처: developers.google.com/youtube/v3/docs) YouTube DATA API 설명 YouTube Data API를 사용하면 YouTube 웹사이트에서 일반적으로 실행하는 기능을 사용자의 웹사이트 또는 애플리케이션에 통합할 수 있습니다. 아래 목록에서는 API를 사용하여 검색할 수 있는 다양한 유형의 리소스를 확인합니다. API는 이러한 여러 개의 리소스를 삽입하거나 업데이트 또는 삭제하는 메소드도 지원합니다. 참조 가이드에서는 API로 이러한 모든 작업을 수행하는 방법을 설명합니다. 이 가이드는 리소스 유형별로 정리되어..

백엔드 Back-end 2020.10.28

HTTP 상태 코드 어떻게 써야할까?

HTTP 상태코드 요약표 (참고: mozilla.org HTTP 상태 코드: 개발자를 위한 웹 기술) 상태코드 내용 200 OK 정상 201 Created 새로운 리소스 생성 204 No Content 콘텐츠 없음 400 Bad request 잘못된 요청 401 Unauthorized 비인증. 인증 필요 404 Not Found 리소스 찾을 수 없음 408 Request Timeout 요청 타임아웃 409 Conflict 충돌 500 Internal Server Error 내부 서버 오류 보통 이 정도 상태 코드를 쓰는 거 같다. 개발자를 위한 웹 기술 내용 전체가 읽어볼만한 거 같다.

백엔드 Back-end 2020.10.28

Node.js로 간단히 API 서버를 만들기 위해서 찾아본 자료들

API 서버 클라이언트가 자료를 요청하면 요청한 자료를 데이터베이스에서 읽어서 보내준다. 참고 글 구글코리아 클라우드 엔지니어 조대협님 블로그 글 REST API 이해와 설계 - #1 개념 잡기 REST API 이해와 설계 - #2 디자인 가이드 REST API 이해와 설계 - #3 보안 가이드 보안 가이드 설명은 어려웠다. 중년 개발자 김수보님 글 API Key, API 인증과 권한 관리 Google Cloud Google Cloud API 키 사용에 관한 글

flutter로 iOS 에뮬레이터 실행할 때 ..select a development team in the Runner editor.. 에러, 해결 방법

에러 문구 warning: Capabilities for Signing & Capabilities may not function correctly because its entitlements use a placeholder team ID. To resolve this, select a development team in the Runner editor. (in target 'Runner' from project 'Runner') 원인 XCode에 로그인을 안 해서. 안드로이드는 이런 과정 없는데, 애플은 뭔가 귀찮은 과정들이 꼭 있다. 해결 방법 1. XCode에 로그인 XCode - Preferences - Accounts 에서 Apple IDs 추가할 것. 추가하고 나면 Team Role에 이름(Pe..

Node.js 관련 웹사이트, 블로그 모음

Node.js nodejs.org npmjs.com: Node.js 모듈 찾기 mongoDB: NoSQL expressjs.com: Node.js 웹 프레임워크 Expressjs expressjs.com/kr: Expressjs 한글 안내서 expressjs 보안사례: Expressjs 보안 사례, 방법 안내 Node.js 문서Documentation Google Firebase Quickstarts for Node.js Firebase APIs using the Javascript SDK IDE JetBrains WebStorm 자바스크립트 w3schools.com/js: W3SCHOOLS 자바스크립트 w3schools.com/js ES5: W3SCHOOLS 자바스크립트 ES5 w3schools.com..

flutter로 만들 수 있는 UI 위젯 종류를 확인하기

어디서 쉽게 확인할 수 있을까? gallery.flutter.dev/#/ flutter gallery에서 쉽게 확인할 수 있다. 안드로이드 스타일인 material ui와 애플 아이폰 스타일인 cupertino ui를 제공해준다. 여기서 제공해주는 그밖에 ui 위젯이 필요할 경우에는 flutter 적용을 고민해봐야 한다. 안드로이드 스타일 ui 위젯 목록 아이폰 스타일 ui 위젯 아이폰 위젯의 개수가 안드로이드보다 훨씬 적다. 카드뷰처럼 안드로이드 아이폰 함께 쓸 수 있는 것은 material UI 쪽에 포함되어 있기 때문인 거 같다. 기타 예 실제 어떻게 작동하는지 볼 수 있고 코드도 볼 수 있다. material UI 카드 예

Q. 티스토리 블로그, 포스트 주소를 문자로 바꿔야 하는 이유는? 바꾸는 방법은?

왜 문자로 바꿔야 하죠? 구글의 검색엔진 최적화 기본 가이드를 읽어 보세요. 최적화가 잘 된 웹페이지일수록 검색결과에 더 잘 노출됩니다. 당연하겠죠. 검색엔진 최적화 가이드를 보면 문자 URL을 권장하고 있습니다. 출처: 구글의 검색엔진 최적화 기본 가이드 이 주소가 https://taptorestart.tistory.com/entry/티스토리-블로그-모든-글에-♡-공감-버튼-눌러-주세요라고-적는-법 이 주소보다 나은 거죠. https://taptorestart.tistory.com/41 숫자가 좋은 분은 그냥 숫자로 하셔도 됩니다. 하지만 구글한테 점수를 얻어서, 구글 검색에 더 잘 노출되게 하고 싶다면 문자 주소로 바꾸는 게 좋겠죠. 숫자에서 문자 주소로 바꾼다고 숫자 주소가 접속이 안 되는 거 아니..

flutter 개발 관련 사이트 정리

공식 사이트 flutter.dev: flutter 공식 dart.dev: dart 공식 pub.dev: dart, flutter 팩키지 FlutterFirebase: flutter에서 firebase 사용 방법, 문서 gallery.flutter.dev/#/: flutter 앱 갤러리, 위젯별로 어떻게 작동하는지 어떻게 생겼는지 볼 수 있다. IDE android studio: flutter IDE IntelliJ IDEA: flutter 개발 가능한 IDE 예제 flutter codelabs: 한국어로 설명된 flutter codelabs Google Codelabs: 구글 코드랩스에 flutter 관련 강의 있음 예) Adding AdMob ads to a Flutter app github.com/j..

flutter, Hello World

언제나 처음은 Hello World다. Hello World를 화면에 적기 위한 코드는 아래와 같다. (출처: flutter.dev/docs/development/ui/widgets-intro) import 'package:flutter/material.dart'; void main() { runApp( Center( child: Text( 'Hello, world!', textDirection: TextDirection.ltr, ), ), ); } 결과 클래스를 나누면 아래와 같다. import 'package:flutter/material.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { @override Wid..

flutter에서 웹 앱으로 테스트, 웹 앱으로 빌드

웹에서 테스트 웹 개발을 활성화 해줘야 한다. 출처: flutter.dev/docs/get-started/codelab-web flutter SDK를 설치한 폴더로 가서 flutter channel beta flutter upgrade flutter config --enable-web 를 실행해야 한다. 다 하고 나면 실행기기에 웹이 추가된다. 이런 식으로 웹에서 테스트할 수 있다. 웹 앱으로 빌드 웹 앱으로 빌드하고 싶은 경우에도 터미널에서 명령어를 써야 한다. 메뉴 중에는 보이지 않는다. flutter build web flutter 프로젝트 폴더로 가서 위 명령어를 실행하면 web app용으로 build된다.

Mac 터미널에 환경변수, 자주 쓰는 경로 PATH 추가하기

터미널 상단에 zsh라고 적혀 있다면 .zhsrc 파일에 경로를 추가해야 한다. 예 export PATH=${PATH}:/Users/taptorestart/development/flutter/bin 이런 식으로 flutter 실행 파일이 있는 폴더를 추가할 수 있다. FLUTTER_HOME=/Users/taptorestart/development/flutter export FLUTTER_HOME export PATH=${PATH}:${FLUTTER_HOME}/bin 이런 식으로 환경변수 FLUTTER_HOME을 추가할 수도 있고, 경로를 추가할 수도 있다. 터미널 재실행 뒤에 env 를 실행해서 환경변수 등록 여부를 확인할 수 있다.

flutter에서 firebase를 쓸 수 있을까?

flutter를 사용해서 앱을 개발할 계획이다. Google firebase도 사용할 계획이다. flutter에서 firebase를 쓸 수 있을까? Firebase 문서 살펴보기 예 Cloud Firestore firebase 사이트 들어가서 firestore 문서를 살펴보면 dart 언어에 대한 설명은 따로 없다. flutter로 개발하려면 dart 언어로 개발해야 하는데 말이다. 같은 google에서 만들었는데 설마 flutter에서 firestore는 쓸 수 없는 것일까... pub.dev dart와 flutter 팩키지를 찾을 수 있는 pub.dev에서 찾아보자. 다행히 cloud firestore 팩키지가 있다. 아래 사이트 가면 flutter firebase 지원 항목과 문서를 볼 수 있다. ..

혼자 서버와 클라이언트(웹, 앱) 모두 개발할 때 가장 효과적인 방법은 무엇일까?

간단한 서비스를 개발하고 싶다. 혼자 서버와 클라이언트를 모두 개발해야 한다. 클라이언트는 웹 브라우저로 접근할 수 있어야 하고, 안드로이드, 아이폰 앱 스토어에서 받을 수 있어야 한다. 이 경우 어떻게 해야 수고가 적게 들면서 빨리 개발할 수 있을까. 사용하는 프로그래밍 언어의 개수를 줄이기. 언어의 개수가 많으면 어렵다. 혼자서 서버, 안드로이드 앱, 아이폰 앱을 따로 개발한다고 생각해보자. 서버를 PHP로 개발한다면 PHP를 알아야 하고, 스프링 프레임워크로 개발한다면 Java를 알아야 한다. 웹 애플리케이션도 개발해야 하니 HTML, CSS, 자바스크립트도 알아야 한다. 앱의 경우 안드로이드는 자바나 코틀린을 알아야 하고 아이폰 iOS는 스위프트나 오브젝티브C를 알아야 한다. 아예 firebase..

개발 Dev 2020.10.25

Q. 함수function와 메소드method의 차이는?

A. 메소드는 객체와 관련된 함수로 자바처럼 클래스 기반 언어라면 클래스 내부에 있는 함수다. 함수가 메소드를 포함하는 개념으로 볼 수 있다. 함수 ⊃ 메소드 자바스크립트 함수 예를 들어 자바스크립트에서는 함수라고 한다. 예를들어 자바스크립트로 덧셈 함수를 만들면 아래와 같다. 자바 메소드 덧셈 함수를 자바스크립트에서 하듯 Java에서 만들려고 아래처럼 입력하면 에러가 난다. class Main { public static void main(String[] args) { int sum = sum(1, 2); System.out.println("sum:" + sum); } } public int sum(int a, int b){ return a + b; } 에러 코드 Main.java:8: error: c..

언어 Language 2020.10.25

Node.js mysql 모듈, 데이터베이스에 insert 데이터 입력 뒤 id 값 확인하기

mysql 모듈 Node.js에서 mysql에 접속해서 데이터를 입출력할 때 mysql 모듈을 쓰고 있다. 데이터를 입력한 뒤 id값은 어떻게 확인할까? results.insertId로 확인할 수 있다. 코드 (출처: www.npmjs.com/package/mysql) If you are inserting a row into a table with an auto increment primary key, you can retrieve the insert id like this: connection.query('INSERT INTO posts SET ?', {title: 'test'}, function (error, results, fields) { if (error) throw error; console...

Node.js fast-xml-parser 모듈 테스트, XML을 JSON으로 바꾸기

fast-xml-parser npm 페이지 주소: www.npmjs.com/package/fast-xml-parser 테스트 XML 국토교통부 아파트매매 실거래자료 XML 예 00 NORMAL SERVICE. 27,500 1992 2006 분당로 00212 00000 41135 01 0 3180026 분당동 0035 0000 41135 10100 1 샛별마을(동성) 5 1 41135-18 59.4 35 41135 8 44,000 1993 2006 장안로41번길 00013 00000 41135 01 0 4340380 분당동 0066 0000 41135 10100 1 장안타운(건영) 5 1 41135-32 131.55 66 41135 4 2 1 495 코드 var xml = "\n" + "\n" + "\n"..

Node.js xml2js 모듈 테스트, XML을 JSON으로 바꾸기

xml2js npm 페이지 주소: www.npmjs.com/package/xml2js XML을 JSON으로 JSON을 XML로 바꿔준다. 테스트 XML 국토교통부 아파트매매 실거래자료 XML 예 00 NORMAL SERVICE. 27,500 1992 2006 분당로 00212 00000 41135 01 0 3180026 분당동 0035 0000 41135 10100 1 샛별마을(동성) 5 1 41135-18 59.4 35 41135 8 44,000 1993 2006 장안로41번길 00013 00000 41135 01 0 4340380 분당동 0066 0000 41135 10100 1 장안타운(건영) 5 1 41135-32 131.55 66 41135 4 2 1 495 코드 const xml = "\n" ..

Node.js async 모듈, 자주 쓰는 코드

참고: async documentation Node.js로 개발하다보면 가장 자주 쓰는 모듈이다. 주로 순차처리가 필요할 때 자주 쓴다. eachSeries The same as each but runs only a single async operation at a time. each와 같지만 한번에 하나의 비동기 작업만 실행한다. const async = require("async"); const cities = ["서울", "부산", "대구", "대전", "울산", "인천"]; async.eachSeries(cities, function (city, callback) { console.log('city:' + city); callback(null); }, function (err) { if (err)..

반응형