개발

개발/Server

[HTTP] Content-Type

HTTP 헤더에 들어가는 정보 중 하나로 데이터(자원)의 타입을 명시하는 헤더이다. content-type은 MIME표준에 정의되어 있다. MIME(Multipurpose Internet Mail Extension)은 전자우편을 위한 인터넷 표준 포맷이다. 전자우편은 기본적으로 7비트의 ASCII문자로 전송되는데 8비트 이상의 코드를 사용하는 문자나 이진파일은 MIME 포맷으로 변환되어 전송되게 된다. 이 때 어떤 데이터인지 MIME type이 정해져야 한다. HTTP에서의 Content-Type에 들어가는 것이 MIME type이다. MIME표준에 정의된 것을 사용한다는 것이 이것을 말하는 것이다. GET방식은 대부분 key=value 형식으로 url에 파라미터를 담아 보내므로 content-type ..

개발/Node.js

[Express] req.body undefined

문제점 body를 사용할 수 있도록하는 body-parser 미들웨어를 사용하지 않아 발생 (express버전이 4.16이상이라면 express에 내장되어 있음) 해결방법 express 4.16이상 const express = require('express'); const app = express(); ​ // parse application/x-www-form-urlencoded app.use(express.urlencoded({extended: true})); ​ // parse application/json app.use(express.json()); express 4.15이하 1. body-parser 미들웨어 설치 npm i body-parser 2. 적용 const express = requi..

개발/Dart

factory 키워드 (싱글턴 패턴)

class의 인스턴스를 새로 만들지 않도록 도와주는 키워드이다.(보통 싱글턴을 구현할 때 사용한다.) 싱글턴 패턴이란 class의 인스턴스를 하나만 생성하고 이를 재사용하도록 하는 디자인 패턴이다. factory 키워드가 쓰인 생성자는 무조건 자기 자신 타입의 인스턴스를 반환해야 한다. 예시 class TestFactory { static final TestFactory _factoryInstance = TestFactory._internal(); ​ factory TestFactory() { return _factoryInstance; } ​ TestFactory._internal() { print('call'); } } ​ main() { var testFactory1 = TestFactory(); ..

개발/Server

[Error][docker-compose] yaml: found character that cannot start any token

문제점 yaml파일은 tab을 허용하지 않는데 tab을 사용해서 발생 해결방법 tab을 모두 space(space바 띄어쓰기)로 변경 참고 YAML error: found character that cannot start any token · Issue #1 · moraes/config Maybe I'm doing something wrong, but when I parse this file: smtp: port: 25 host: smtp.mail.com username: johndoe password: secretpassword with config.ParseYaml(configData) I get YAML error: li... github.com

개발/Server

docker compose 작성 방법 및 명령어 모음

docker-compose 파일 작성 문법 비슷하거나 같은 의미인 것은 주석이 한번만 달려있음 # docker-compose 버전 명시 version: "3.9" ​ # 생성할 서비스(컨테이너) 지정 services: # nginx란 이름의 서비스 생성 nginx: # nginx:latest 이미지로 서비스 생성 # DockerFile기반이 아니라면 아래 image의 주석을 해제하고 build와 그 하위의 context와 dockerfuile을 주석처리해야함 #image: nginx:latest # nginx란 서비스를 실행하는 컨테이너의 이름 지정 container_name: nginx # DockerFile기반으로 서비스를 생성하기 위한 build명령 build: # DockerFile이 있는 경로 ..

개발/DB

[MariaDB][Node.js-express][dotenv] retrieve connection from pool timeout after 10004ms

문제점 pool에서 connection을 가져오지 못해 발생한 에러 내 경우엔 DB 연결이 제대로 되지 않아 발생 실제 db연결 시간의 문제가 아닌 dotenv의 설정 파일인 .env파일의 경로 지정이 잘못되어 db에 연결하지 못한 문제(dotenv를 제대로 알아보지 않고 사용한 문제) 이 문제가 발생했다면 DB 서버와 잘 연결되고 있는지(제대로 된 DB정보를 입력해서 연결하고 있는지) 먼저 확인 필요 해결방법 이 해결방법은 dotenv를 제대로 쓰지 못해 발생한 문제를 해결하는 방법을 얘기하므로 다른 경우라면 도움이 되지 않는다. 두 방법 중 하나로 해결 가능하다. 1. 서버를 종료하고 다시 실행할 때 .env파일 위치에서 실행 2. 아래와 같이 dotenv를 불러오는 부분을 수정 require('d..

개발/Node.js

Mac Node.js 업데이트 (n 모듈)

n이라는 node.js 버전 관리 모듈을 이용해서 쉽게 업데이트 가능하다. 실제론 업데이트라기보단 해당 버전을 다운로드하는 것이다. npm에서 n 모듈 설치 sudo npm install -g n 업데이트(다운로드) 아래의 예시와 같이 필요한 버전을 설치 가능하다. sudo n lts sudo n latest sudo n 버전 버전 변경 버전 관리 모듈이여서 여러 버전을 다운 받고 변경도 가능하다 아래 명령어를 입력하면 다운받은 버전들 목록이 보이고 화살표 위/아래 키로 바꿀 버전으로 커서를 옮기고 엔터 클릭하면 버전이 변경된다. sudo n 참고 Upgrade Node.js to the latest version on Mac OS Currently I am using Node.js v0.6.16 on ..

개발/Flutter

입력란에 값 보이지 않게 하기 (비밀번호 입력)

TextField나 TextFormField 위젯 내에서 사용 TextField( ... obscureText: true, enableSuggestions: false, autocorrect: false, ) obscureText가 실제로 값이 보이지 않도록 설정하는 것이므로 true로 설정 enableSuggestions는 자동 제안 기능이고, autocorrect는 자동 완성 기능이므로 둘 다 false로 설정하여 노출 위험성을 줄임 참고 How to add a Password input type in flutter makes the password user input is not visible , just like Android Native EditText 's i meet a problem tha..

개발/Flutter

[Error] RenderBox was not laid out

문제점 내 경우엔 Row위젯 안에 TextField위젯을 넣었을 때 발생했다. TextField위젯이 가지는 InputDecoration으로 인해 발생한 에러이다. InputDecoration의 선언부에도 주석으로 써 있는데 가로 크기가 무한이면 안된다고 한다. Row위젯과 같이 width 크기를 제한하지 않는 위젯이 상위에 있으면 에러가 발생한다. Column위젯 안에 ListView위젯을 사용할 때도 발생한다. 해결방법 TextField위젯을 Expanded위젯으로 감싸서 width크기를 제한한다. 만약 ListView위젯을 Column위젯 안에 넣었을 때 발생했다면 ListView를 Expanded위젯으로 감싸면 된다. TextField 참고 How to solve ' RenderBox was no..

개발/Flutter

뒤로가기 (leading) 버튼 자동 생성 막기

하위 페이지로 이동할 경우 자동으로 뒤로가기 버튼이 앱 바에 생기게 되는데 이를 없앨 수 있다. AppBar 내의 automaticallyImplyLeading을 false로 준다. AppBar( title: const Text('appbar title'), automaticallyImplyLeading: false, ) 참고 flutter remove back button on appbar I am wondering, if anyone knows of a way to remove the back button that shows up on the appBar in a flutter app when you use Navigator.pushNamed to go to another page. The reaso..

leebera_
'개발' 카테고리의 글 목록 (5 Page)