본문 바로가기
  • 포르쉐타고싶다

분류 전체보기93

[Docker] 내 컴퓨터의 디렉토리 -> docker container에 복사 run의 -v 옵션 사용 docker container run -d -v [내 PC 디렉토리]:[container 디렉토리] [image명] 2020. 5. 31.
[Docker] container을 run, start 했을 때, 바로 꺼지는(Exitted) 이유 1. 배경 1) container를 run, start했을 때, 결과가 나오고 바로 Exitted되는 이유 도커의 이미지로 centos:7 배포판을 내려받고(pull) centos의 /bin/cal 의 캘린더를 실행시킨다고 해보자 centos:7 을 내려받고 apple@appleui-MacBookPro ~$ docker image pull centos:7 apple@appleui-MacBookPro ~$ docker image ls 7: Pulling from library/centos 524b0c1e57f8: Pull complete Digest: Status: Downloaded newer image for centos:7 docker.io/library/centos:7 apple@appleui-Ma.. 2020. 5. 30.
[Docker] Docker '이미지'와 '컨테이너' 차이 인프라 스트럭쳐 관점으로 본다면 보면 이미지는 실행파일, 컨테이너는 프로세스 1. 이미지 - 서비스 운영에 필요한 서버 프로그램, 소스코드, 컴파일된 실행파일을 묶은 형태. 즉, 프로그램(데몬)을 직접 구동시켜야 한다. - 저장소에 올리고 받는것은 이미지 : push and pull - 이미지를 실행한 상태. 2. 컨테이너 - 컨테이너는 이미지를 이미 실행한 형태 - 이미지(Docker에서는 베이스 컨테이너로 명명)로 여러개의 컨테이너를 만들 수 있다. - 베이스 컨테이너로 여러개의 애플리케이션 컨테이너를 만들 수 있다. 2020. 5. 29.
[etc] 카카오 "ip mismatched! callerIp=xxxxxxxx. check out registered ips." 에러 해결 1. 배경 역시 개발자는 구글링하기 전에 공식 문서를 먼저 뒤져야 한다. Node.js에서 카카오 연동 로그인 구현 중 "ip mismatched! callerIp=xxxxxxxx. check out registered ips." 의 에러가 발생하였다. 분명히 [내 애플리케이션] > [플랫폼] 에 내 퍼블릭 ip를 등록해서 저번달만 해도 됐던 기능이 갑자기 안되서 이유를 찾을 수 없었다. 2. 해결 카카오 개발환경이 업데이트되면서 방식이 바뀐 탓이었다. 접근하고자 하는 나의 ip 등록을 [내 애플리케이션] > [플랫폼] 뿐만 아니라 [내 애플리케이션] > [고급설정] > [허용 IP 주소] 에도 등록해줘야 한다. https://developers.kakao.com/docs/latest/ko/referen.. 2020. 5. 27.
[docker-error] is docker daemon running? 에러 해결 1. 배경 컨테이너를 껐다켰다 하는 과정에서 갑자기 모든 docker command들에 대해 is docker daemon running? 하는 에러를 받게 되었다. 2. 해결 위의 문제는 말 그대로 도커가 실행되고 있는지 확인하라는 문구이다. 백그라운드에서 실행되고 있었던 Docker Desktop이 튕길 수가 있다. 상태창에 도커아이콘이 사라졌다면 다시 도커 응용프로그램을 통해 재실행하면 정상적으로 작동한다. 2020. 5. 26.
[MySQL] RDS에 서버를 둔 MySQL의 Default Charset를 utf8로 설정하기 1. 배경 필자는 MySQL을 Workbench를 이용해서 관리한다. 관리를 하면서 procedure나 trigger를 사용할 때 utf-8의 문자가 들어가는 상황들이 생기면 한글대신 ?가 들어가는 등 여러 문제가 생겨 결국 일일이 ~~~charset utf8 를 뒤에 붙여줘야 한다. 물론 default charset으로 utf8로 설정하는 방법이 있다. My.ini 나 My.cnf를 찾아서 해당 프로퍼티를 추가해주는 방식이 있다. 그러나 이는 나에게 먹히지 않는다. 2. 개념 RDS로 MySQL 서버를 빌려서 운영하는 경우는 내 컴퓨터의 My.ini를 고친다고해서 설정되지 않는다. RDS안에서 해결방법을 찾아야한다!! 3. 해결 방법 RDS의 파라미터 그룹에서 해당하는 파라미터의 파라미터 편집으로 들어.. 2020. 5. 25.
[MySQL] Forward Engineering 하는 도중 에러 해결 1. 배경 데이터베이스 서버를 옮기려고 기존 데이터베이스의 erd를 따서 새로운 MySQL서버에 Forward Engineering 을 하는데 자꾸 Executing SQL script in server ERROR: Error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'VISIBLE, CONSTRAINT `fk_Compras_Personas` FOREIGN KEY (`p 라고하는 에러가 생겨 진행을 못하고 있었다. 2. 개념 위의 ERROR: Error 1064: You have an error i.. 2020. 5. 25.
[flutter] 에러명: 'Expected a key while parsing a block mapping' .yaml 파일을 만지면서 발생하는 오류다 .yaml파일은 들여쓰기의 의미가 중요하다 flutter_test: sdk: flutter flutter: uses-material-design: true assets: - loadjson/person.json 와 flutter_test: sdk: flutter flutter: uses-material-design: true assets: - loadjson/person.json 는 똑같은 내용을 담고있지만 assets의 들여쓰기 정도가 다르다. 따라서 아래의 코드는 성공하는 반면, 위의 코드는 'Expected a key while parsing a block mapping' 라는 에러가 발생하고만다. 들여쓰기를 신경써주자 2020. 5. 23.
[flutter-Error] BuildConfig is public, should be declared in a file named BuildConfig. java 해결 Tools -> Flutter -> Flutter Clean 해주고 다시 run하면 된다. 2020. 5. 21.
[MySQL] INSERT할 때 배열을 INSERT하는 방법 1. 배경 쿼리문을 짜다보면 개수가 정해지지 않은 배열을 INSERT해야 할 일이 생긴다. 만약 개수가 정해진 배열이면 INSERT INTO [TABLE] (COLUMN1, COLUMN2) VALUES (VALUE11, VALUE21), (VALUE12, VALUE22), (VALUE13, VALUE23) 이렇게 나열해서 insert할 수 있다. 하지만 개수가 정해지지 않은 객체배열은 어떻게 INSERT해야할까 서버에서 INSERT CONNECTION 쿼리문에 for문을 돌려서 '조진다'? LOOP PROCEDURE을 사용해야 할까? 2. 개념 방법은 쉬웠다. 1) 위에서 VALUES 뒤에 괄호를 넣어주지 않고 2) ?를 넣은 쿼리문을 connection_query에 넣어주고 3) ?에 대한 값으로 이중.. 2020. 5. 4.
[aws] RDS 보안그룹에 EC2 IP 설정했을 때 connection 에러 1. 배경 DB 서버 RDS의 보안그룹을 우리의 ip로 한정하기 위해서 보안그룹을 수정하였다. 회사의 ip, 집의 ip, 그리고 ec2서버의 ip를 제각각 보안그룹으로 등록하였는데 회사, 집은 통신이 되는 반면, ec2에서는 db에 접근하지 못하는 문제를 발견하였다. 2. 해결 - ec2 인스턴스를 RDS 보안그룹에 추가하려면 직접적으로 ec2의 public ip를 적어놓으면 안된다. - ec2의 보안그룹의 id 자체(sg-03~~~~7 꼴)를 rds의 보안그룹의 소스로 넣어줘야 한다. 2020. 4. 28.
[node.js] g suite 계정에 nodeMailer 적용 1. 배경 어플리케이션에 은근 안쓰이는 곳이 없는 기능 중에 하나가 유저에게 메일을 보내는 것이다. 이는 사용자를 인증하기 위한 곳, 예를 들어 임시비밀번호 발급 비밀번호 변경, 이벤트 결과 발표 등등 계정이 요구되는 어플리케이션에 필수로 들어가있다. Node.js에서는 이 기능을 NodeMailer를 사용해 구현할 수 있는데 송신하는 업체메일의 도메인이 어디냐에따라 설정을 달리 해줘야 한다. 그리고 메일을 송신하는 계정은 일반적인 gmail, naver 등 보편적인 웹메일이 아닌 업체마다 갖고있는 대표 도메인으로 만든 이메일을 그 송신자로 한다. 그리고 그 도메인의 메일을 관리하게 도와주는 툴 중 구글에서 만든 것이 g suite이고 이것을 사용하면 회사의 도메인의 메일을 관리할 수 있다. 그리고 g .. 2020. 4. 27.
[mysql] mysql과 excel 연동하기 : mysql for excel 1. 배경 엑셀로 되어있는 데이터 파일을 곧바로 mysql에 연동할 수 있다. 반대로, mysql에 있는 데이터베이스를 엑셀로 옮길 수 있다. 그 방법을 소개하겠다. 2. 구현 절차 0) mysql for excel을 설치한다.(설치가 되어있지 않은 사람에 한해서) 1) mysql로부터 테이블 구조를 가져온다. 2) 테이블 구조에 맞게 엑셀에서 데이터를 추가한다. 3) 데이터들이 추가된 엑셀파일을 mysql에 export(append)한다 3. 구현 방법 0) mysql for excel을 설치한다. - https://dev.mysql.com/downloads/windows/excel/ 여기서 설치할 수 있다. 1) mysql로부터 테이블 구조를 가져온다. - mysql for excel을 설치하면 아래.. 2020. 4. 26.
[mysql] INSERT - 중복되는 데이터는 넣지 않기 1. 배경 어떤 테이블은 데이터가 중복으로 들어가면 안되는 항목을 갖고있다. 예를 들어, 어떤 게시물의 [좋아요] 데이터를 갖고있는 테이블은 게시물_idx 유저_idx 조합의 칼럼을 갖고있고 로직을 간단하게 생각해보면 저 조합이 중복으로 들어가면 안된다는 것을 알 수 있다. (통신오류로 좋아요를 여러번 눌렀는데 제대로 취소되지 않고 중복으로 좋아요 데이터가 들어가게되면 나중에 유저가 나중에 좋아요를 취소했는데 좋아요 기록이 아직 남아있는 오류 발생) 그렇다면 애초에 중 {게시물_idx, 유저_idx}의 조합이 중복으로 insert되는 것을 미연에 방지해야 한다. 2. 개념 크게 두가지의 방법이 있다 1) 매 쿼리문에서 방지 ->where not exists 2) 컬럼 속성 설정을 통해 방지 -> (1) .. 2020. 4. 24.
[mysql] procedure의 인자로 배열 전달 : FIND_IN_SET 1. 배경 데이터베이스와 통신을 하면서 복잡한 쿼리문은 procedure을 이용해서 보다 효율적인 네트워킹할 수 있다. 프로시저에는 인자를 담을 수 있어 같은 내용의 프로시저에 변수만 다른 경우 상황에 맞게 프로시저를 함수같이 사용할 수 있다. 하지만 일반적인 함수와 다르게 프로시저는 배열을 인자로 전달받지 못한다. 반대로 프로시저를 사용해야 하는 대표적인 경우 중 하나가 반복문, loop이다. 다른 테이블 자체에서 loop를 돌리는 경우는 별다른 배열인자가 필요하지 않지만 유저가 무언가를 선택한 것에 대해서 그 배열을 가지고 loop를 돌리는 프로시저를 구현해야 한다면 프로시저의 인자로 배열을 넣어주어야 하는 상황이 종종 발생한다. 그렇다면 프로시저의 인자로 배열을 어떻게 넣어줄 수 있을까 바로 FIN.. 2020. 4. 24.