Develop106 [sql] EXECUTE 후 트랜잭션 개수는 BEGIN 및 COMMIT 문 수가 일치하지 않음을 나타냅니다. 이전 개수 = 0, 현재 개수 = 1. MSSQL 프로시저 실행 후 아래와 같은 에러 메시지를 마주할 때가 있다. 실행 프로시저가 BEGIN TRAN을 제대로 COMMIT 또는 ROLLBACK 되지 않았을 때 나타난다. 분명 아래와 같이 BEGIN TRY 로 실행 쿼리문을 잘 감 싸줬고, BEGIN CATCH로 에러도 잘 핸들링 해줬다. 원인은 TRY...CATCH 에 잡히지 않는 실행문이 존재하기 때문이다. 위의 예제에서는 존재하지 않는 테이블에 INSERT 하려는 경우다. 위와 같은 상황을 방지하기 위해 SET XACT_ABORT ON 를 사용할 수 있다. XACT_ABORT ON 인 경우 Transaction-SQL 문이 런타임 오류를 발생시킬 경우 해당 트랜잭션이 종료되고 ROLL BACK 된다. 구문오류와 같은 컴파일 오류는 XACT.. 2021. 11. 8. [sql] cross apply 사용법 뭐지 어떻게 쓰지 - CROSS APPLY : 다른 테이블 이용해서 INNER JOIN 이랑 동일한 기능. SELECT * FROM table_a SS CROSS APPLY ( SELECT * FROM table_a X WHERE SS.col_1 = X.col_1 AND SS.col_2 = X.col_2 AND SS.col_3 = X.col_3 ) XX - INNER JOIN : 위에 CROSS APPLY 사용한 결과와 같은걸 확인할 수 있다. SELECT * FROM table_a SS INNER JOIN table_a X ON SS.col_1 = X.col_1 AND SS.col_2 = X.col_2 AND SS.col_3 = X.col_3 - CROSS APPLY : VALUES 로 데이터 주기(table-value.. 2021. 10. 25. 안드로이드 앱 꺼짐 현상 앱크래시😥 React Native 로 면접지문을 읽고 면접을 촬영한 후 업로드하는 기능을 서비스하는 애플리케이션을 개발했다. "면접지문을 읽을 때 0.01% 의 사용자가 면접지문을 읽는 중 앱이 종료된다는 리포트를 받았다." 주어진 지문 읽는 시간을 카운트하는 기능이기 때문에 초단위로 리랜더링되고 있어 랜더링 최적화 문제도 의심할 수 있지만 앱이 갑자기 종료되는 앱크래시 현상이라 무엇보다 메모리 문제라 가정하였고 프로파일링을 돌려봤다. # 면접지문 읽는 상황 프로파일링 결과 - 지속적으로 GC(Garbage Collector)가 메모리를 회수하고 있다.(조밀한 휴지통 표시) - 메모리 사용량이 줄지 않는다. - 실행환경, 기기환경, 사용환경에 따라 GC가 오작동하거나 GC 회수량을 초과할 경우 앱크래시가 나타날 것.. 2021. 10. 18. [cmd] 사용중인 포트 PID 찾기(netstat option) 사용중인 포트 PID 찾기 netstat -tnlp usage: netstat [-vWeenNcCF] [] -r netstat {-V|--version|-h|--help} netstat [-vWnNcaeol] [ ...] netstat { [-vWeenNac] -i | [-cnNe] -M | -s [-6tuw] } -r, --route display routing table -i, --interfaces display interface table -g, --groups display multicast group memberships -s, --statistics display networking statistics (like SNMP) -M, --masquerade display masqueraded c.. 2021. 10. 16. 방화벽 IP PORT 오픈 확인 (열려 있나?) $ nslookup 기본 서버: PAD.aaa.net Address: 10.1.4.254 $ naver.com 권한 없는 응답: 이름: naver.com Addresses: 223.130.200.104 223.130.195.95 223.130.200.107 223.130.195.200 $ telnet 223.130.200.104 443 # 연결 안 될 경우 연결 대상 223.130.200.104... 연결 대상 223.130.200.104...호스트에 연결할 수 없습니다. 포트 4434: 연결하지 못했습니다. # 연결 될 경우 화면 넘어가고 블랙 화면 2021. 10. 15. [nginx] nginx ssl 적용 방법 기록 centos8 에서 nginx@1.20.1 를 사용했다. 인증서를 발급받은 업체로부터 인증서키와 아파치용, 엔진엑스용으로 인증서를 받았다. 아파치 용도는 서버인증서, 체인인증서, 루트인증서 가 나눠져 있으며 엔진엑스 용도는 세 인증서 합쳐져 있다. - 인증서 파일을 열어보면... 아래와 같이 CERTIFICATE가 하나이거나 두개 이상 들어있는 것을 확인할 수 있다. -----BEGIN CERTIFICATE----- MIIETjCCAzagAwIBAgINAe5fIh38YjvUMzqFVzANBgkqhkiG9w0BAQsFADBMMSAw... -----END CERTIFICATE----- 받은 그대로 엔진엑스 인증서를 설정했지만 적용 되지 않았다. 인증서를 합칠 때 순서가 서버->체인>루트 순서로 되야 하는데 .. 2021. 10. 9. Axios, Fetch로 온라인/오프라인 상태 체크 가능할까? axios 나 fetch와 같은 네트워크 관련 라이브러리로 온라인 상태 체크 불가능. 서버의 응답이 오지 않는 것은 체크할 수 있지만 이것이 네트워크가 온프라인 상태라는 것은 100% 장담할 수 없으므로 제3의 라이브러리를 이용한 방법을 사용하는 것이 좋다. 브라우저 - Navigator.onLine if (navigator.onLine) { console.log('온라인'); } ReactNative - NetInfo import NetInfo from '@react-native-community/netinfo'; const networkState = await NetInfo.fetch(); if(networkState.isConnected) }{ console.log("온라인") } Axios axi.. 2021. 10. 7. [mssql] 조회 순번 & 페이징 쿼리 ROW_NUMBER() OVER() OVER() 에 ORDER BY 필수. (SELECT 1) 꼼수. 정렬한 순번이 필요하면 적절한 값 입력. - 조회 순번 SELECT ROW_NUMBER() OVER(ORDER BY (SELECT 1)) AS rownum FROM myTable; - 페이징 쿼리 DECLARE @PAGE_NO INT = 1 DECLARE @PAGE_ITEM_CNT INT = 10 SELECT rownum, col1, col2, col3, totalCnt FROM ( SELECT ROW_NUMBER() OVER(ORDER BY (SELECT 1)) AS rownum , col1, col2, col3 , COUNT(*) OVER() AS totalCnt FROM myTable ) tb WH.. 2021. 10. 7. [android] MediaPlayer?? ExoPlayer?? 안드로이드 미디어 플레이어는 크게 두 종류가 있다. MediaPlayer 와 ExoPlayer. 어떤걸 사용해야 할까? MediaPlayer 오디오 재생만 하는 경우 & 애플리케이션 용량을 최대한 줄이고 싶은 경우. ExoPlayer 그 외 모든 경우 1. MediaPlayer 기본적으로 휴대폰 로컬에 설치되므로 어떤 버전이 사용할지 제어할 수 없다. 따라서 MediaPlayer 버전, OS, 휴대폰에 따라 다르게 구현되어 있을 수 있고, 이는 여러 상태의 버그가 존재하여 디버깅하기 어렵다. 저전력으로 오디오 디코딩을 할 수 있어 오디오 재생 기능이 좋다. 2. ExoPlayer Android 프레임워크에 속하지 않고 Android SDK에서 별도로 배포되는 오픈소스 프로젝트이다. Android 4.1(.. 2021. 10. 5. [rn] 커스텀 경로 설정으로 상대경로를 절대경로로 사용하자.😁 상대 경로(relative path)를 커스텀 경로(custom path)로 변경하자. [Before] import * as realApi from '../../../../ ../../../../../../../../../../../ ../../../../../../../../../../../ ../../../../../../../../../../../ ../../../../../../../../../../../ ../../../../../library/apis/interview'; [After] import * as realApi from '@/library/apis/interview'; 조금 과장해서 표현하긴 했지만 프로젝트의 규모가 점점 커지면서 import 하는 모듈의 상대 경로가 깊고 복잡해져 .. 2021. 10. 5. 이전 1 ··· 6 7 8 9 10 11 다음