본문 바로가기

분류 전체보기에 해당하는 글들

201 Articles matched
목록이 없습니다.
[MySQL] ERROR 1267 (HY000): Illegal mix of collations 해결 가끔 데이터를 정제할 때 다른 테이블에 있는 데이터를 조회해서 정제할 테이블에 UPDATE문으로 수정해주는 경우가 있는데요 이럴 때 가끔 정제하려는 테이블과 데이터를 조회하는 테이블의 Collation이 달라서 에러가 발생하는 경우가 있습니다. 현재 포스팅의 제목이 바로 그 에러인데요 어떻게 해결하는지 알아봅시다. 에러 메시지 ERROR 1267 (HY000): Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation '=' 위의 에러 메시지는 보통 가장 많이 쓰는 Collation인데요 테이블을 조회할 때 조건절에서 서로 다른 Collation의 값을 비교하면 나오는 에러입니다. 해결 ..
[AngularJS] AngularJS 주석 제거 AngularJS를 사용하다보면 개발자모드를 열었을 때 ng-repeat이라던지 ng-if를 사용했을 때 주석이 자동으로 남는 것을 볼 수 있는데요 이런 주석들은 불필요하기도 하고 서비스를 운영하는 입장에서 조금 허술해보일 수 있어서 제거하는 방법을 정리해보려고 합니다. AngularJS에서 구현이 되어 있기 때문에 간단하게 사용하면 됩니다. AngularJS 주석 제거 app.config(['$compileProvider', function ($compileProvider) { $compileProvider.debugInfoEnabled(false); }]); 위와같이 공통의 Controller 혹은 최상위 Controller에 config를 통해서 설정해줄 수 있습니다. 설정한 후에 개발자모드를 열어..
톰캣 배포환경 운영/개발 나누기 Spring Framework와 Tomcat을 사용하는 환경에서 properties를 개발환경과 운영환경을 나눠놓았을 경우입니다. 그럴 때 이클립스에서는 톰캣을 더블클릭하여 open launch configure를 통해 argument("-Dspring.profiles.active=dev")를 넘길 수 있지만 서버(유닉스 또는 리눅스)에서는 어떻게 지정하는지 정리해보려고 합니다. 우분투(리눅스) 환경 간단합니다. 우선 톰캣이 설치되어있는 디렉토리로 이동한 후에 그 아래에 있는 bin 디렉토리로 이동한 후 setenv.sh 파일을 만들어줍니다. ## 개발환경 ## export JAVA_OPTS="$JAVA_OPTS -Dspring.profiles.active=dev" ## 운영환경 export JAVA_O..
iptables를 통한 80번포트 8080포트로 리다이렉팅 설정하기 웹서버를 셋팅할 때 톰캣을 설치하는 경우 기본포트가 8080으로 지정됩니다. 그렇기 때문에 처음에 톰캣을 설치하고 배포를 완료하고 웹 브라우저를 통해 사이트에 접속하려고하면 ip 또는 도메인 이름 뒤에 콜론과 함께 포트를 같이 붙여주어야 접근이 가능합니다. 이러한 번거로움과 미관상(?) 보기 안좋기도 하고 접근성을 떨어뜨리기 때문에 이를 없애기 위해서 HTTP 기본 포트인 80포트를 8080으로 리다이렉팅 하는 작업이 필요합니다. 여기서 톰캣의 포트를 80으로 설정하면 되지 않냐고 질문이 들어올 수 있는데 리눅스, 유닉스같은 부류의 OS는 1024포트 아래는 잘 알려진 포트(Well Known Port)라 하여 root계정이 아니면 사용할 수 없도록 되어 있습니다. 그렇기 때문에 80포트를 8080포트로..
[MySQL] procedure, function, trigger 백업하기 데이터베이스 백업 후 복구를 했는데 시스템이 정상적으로 돌아가지 않는 상황이 발생했습니다. 로그를 보니 프로시저가 없다고 찍혀있더군요. 구글에게 프로시저를 백업하는 방법을 물어보니 역시나 금방 찾을 수 있었습니다. 까먹지 않기 위해서 정리해놓아 봅니다. 1. 테이블(Table) 포함 백업(Backup) ## procedure, function, trigger 포함한 백업하기(옵션 --routines --trigger) $ mysqldump --routines --triggers -u유저이름 -p패스워드 DB명 > 백업파일 ## 예시 $ mysqldump --routines --triggers -u apptm -p db_name > db_name_backup.sql $ mysqldump --routines..
[AngularJS] a태그의 href에 unsafe가 붙을 때 해결방법 AngularJS를 사용하다가 a태그의 href 속성에 아무 동작을 시키지 않으려고 javascript:; 또는 javascript:void(0);를 적용할 때가 있습니다. 이 때 운영서버에 배포하고나니 링크가 동작을 안해서 살펴보면 href 속성에 설정해준 javascript:; 앞에 unsafe가 붙어져서 나와있는 경우가 있는데요 이런 경우 간단하게 아래의 config를 최상단 모듈에 설정해주면 됩니다. app.config(function($compileProvider){ // a태그의 href에 정규식 안에 있는 식을 사용했을 때 앞에 'unsafe:'가 붙지 않도록 하기 위함 // 'unsafe:'가 붙으면 Chrome브라우저에서는 문제없으나 IE나 다른 브라우저에서는 해당 a태그를 클릭 시 오류..
[Ubuntu] unzip 설치 리눅스 서버(대표적으로 우분투)에서는 알집같은 프로그램이 없습니다. 따라서 압축되어있는 파일을 압축 해제 해주기 위해서는 다른 프로그램들이 필요한데요. 그중 대표적인 프로그램 중 하나가 바로 오늘 소개할 unzip입니다. 우선 오늘 주제인 unzip 설치 과정부터 정리해봅니다. 확인 $ unzip Command 'unzip' not found, but can be installed with: apt install unzip unzip이라는 명령어를 입력했을 때 위와같은 메시지가 나온다면 해당 서버에는 unzip이라는 프로그램이 설치되어 있지 않다는 것을 의미합니다. 따라서 메시지에서도 안내해주듯이 apt라는 프로그램을 통해 설치를 해주시면 됩니다. 설치 $ apt install unzip Reading ..
[MySQL] ERROR 1118 (42000) : Row size too large (> 8126)... ERROR ERROR 1118 (42000) at line 3117: Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline. 해당 에러가 발생한 경우 해당 테이블의 Row의 Size가 너무 큰 것을 의미합니다. 이는 엑셀로 데이터를 집어넣을 때는 문제가 생기지 않는 듯 보이는데요. 만약 덤프를 밀어넣는 작업에서 위의 에러가 발생한 경우 아래와 같이 임시적으로 해결할 수 있는 방법이 있습니다. 1. root계정 접속..