- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
- richedit 색상
- ffmpeg
- vc++
- Back 키 클릭 감지
- springboot 재가동
- view 획득
- SQL 첫날
- pid 찾아 kill
- 말줌임 CSS
- 터치좌표 view
- 코드로 서버 재실행
- kill -9
- MariaDB
- MFC
- CSS
- CentOS
- 가변영역 스크롤
- sql exception
- mybatis exception
- reactnative
- Activity 전체화면
- c언어
- 스크롤적용
- MySQL
- rn
- springboot
- DB 계정생성
- 피쉬랜드
- 텍스트컬러
- SQL 마지막날
목록전체보기 (108)
개발은 하는건가..
표현식 기능 condition && value (condition)? value : undefined value1 ?? value2 value1 || value2 (value1 == null || value1 == undefined)? value2 : value1 ${var) 문자열 내에서 외부 변수를 포함 시킬 때 사용 var1 === var2 == 과 유사하게 동치연산자이나 == 과 다르게 비교 대상의 강제 형변환을 수행하지 않는다. 1 == "1" 은 true 이나 1 === "1" 은 false 이다 var => var + 1 var = function(var) { return var + 1}
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/5j93c/btrCrQARVqW/5kvkogQViLVPz7KKDWYklK/img.png)
* 개발 툴들을 설치하기 위해 chocolatey 이용. 0. https://chocolatey.org/ 사이트에 접속하여 [Get Started] 진입 후 하단 화면의 붉은 색 박스들을 선택하여 설치 커맨드를 클립보드에 복사한다. 1. 파워쉘 관리자 모드로 실행 하여 복사해온 설치 커맨드를 실행한다. > Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https:..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/PVgE4/btrCkg6lHc4/HyNqi44dCDYkc15GwpAdLk/img.png)
예전에는 http 서버 준비해서 인증용 폴더 만들고 파일 올리고 그랬었는데 요즘은 리눅스서 certbot 으로 간단하게 발급이 되었다. 오히려 발급보다 certbot 설치하는데 더 오래 걸린거 같음. 출처 : 섭코딩 블로그 https://subbak2.tistory.com/110 SpringBoot 무료 SSL 인증서 적용하기 (Certbot) 1. 필요성 SSL 인증서 없이 웹 어플리케이션을 서버에 올리면 http로 접속이 되고 아래와 같은 경고가 나타난다. "주의요함" 클릭해보면 보안이 취약하다는 문구가 뜨는게 내가 만들었지만 들어가 subbak2.tistory.com 블로그 참고해서 진행 중 겪은 시행착오는 예전 방식처럼 80 번 서버 열어놓고 acme-challenge 경로를 만들어서 인증요청을 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Z99CX/btrCiQfVn9R/2hEM7kelSJYow25aln1hb0/img.png)
IntelliJ 환경에서 self-signed 인증서를 이용한 https 적용 1. IntelliJ 툴에서 터미널로 진입하여 다음 커맨드 실행 (기본적으로 현재 프로젝트 root 로 시작함) keytool -genkey -alias linemac-ssl -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 365 * -alias 명과 -keystore 파일명 -validity 기간은 원하는대로 설정한다. 2. 정상적으로 실행 시 아래와 같은 입력 항목이 나타나며 적절한 값을 입력한다. 3. 완료가 되면 해당 위치에 keystore 파일이 생성이 되며 이 파일을 resource 폴더로 이동 시킨다. 4. applicatio..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/27wMY/btrCflUi5WU/H026ny4k0XxJOfLp3AmjFk/img.png)
GROUP_CONCAT 함수를 이용하면 특정 컬럼의 여러 row 값들을 하나의 컬럼으로 추출 할 수 있다. SELECT fwVer FROM Firmwares; SELECT GROUP_CONCAT(fwVer) FROM Firmwares; 기본적으로 콤마(,) 로 구분 처리가 되며 변경하고 싶을 경우 다음과 같이 한다. SELECT GROUP_CONCAT(fwVer SEPARATOR '/') FROM Firmwares;
# 방화벽 실행 상태 확인 firewall-cmd --state # 방화벽 사용 가능한 서비스 포트 firewall-cmd --list-all #방화벽 포트 추가 firewall-cmd --permanent --zone=public --add-port=포트번호/tcp firewall-cmd --reload #방화벽 포트 제거 firewall-cmd --permanent --zone=public --remove-port=포트번호/tcp firewall-cmd --reload # CentOs 7 iptables 를 통한 설정 iptables -I INPUT 1 -p tcp --dport 8080 -j ACCEPT iptables -I OUTPUT 1 -p tcp --dport 8080 -j ACCEPT se..
> netstat -tnlp TCP 중에서(t), Listening상태[열린포트]인 애들만(l), 상세정보까지(p), 10진수 숫자로(n) 표기한다. Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 1439/mariadbd tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1107/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1575/master tcp6 0 0 :::16100 :::* LISTEN 20807/java tcp6 0 0 ..
동영상을 디코딩하여 나온 RGB raw 데이터를 DirectX 나 openGl 같은 것들을 사용하지 않고 DC 에서도 충분히 빠른 속도로 출력이 가능하다. 화면을 가득 채우는 FHD 해상도의 영상도 높지 않은 CPU 점유율을 소모하면서 30 프레임은 가능했다. 단, 조건은 영상을 디코딩 시 32bit BGRA 형태여야 한다. 그래야 출력 과정에서 RGB 데이터들을 다시 재배치하는 연산을 수행하지 않고 그대로 출력이되므로 속도가 빠르다. RECT m_rcView = { 0, 0, 1280, 720 }; // 출력 영역 BITMAPINFO*m_pBitmapInfo = NULL; // 비트맵 정보 void CVideoStreamDlg::DrawVideo(CDC *pDC, BYTE *pFrameData, UIN..
1. 카페24 가입 후 tomcat 호스팅 서비스를 신청한다. (서비스에서 제공하는 jdk, tomcat, db 버전들을 확인하여 개발 시 동작 가능한 코드로 제작) 2. DB, FTP, SSH 접속을 위한 계정 및 주소들을 확보한다. (필수는 아니지만 로컬 개발시 편의를 위해 외부 DB 접근 가능하도록 카페24 에서 설정한다.) 3. 로컬에서 springboot 프로젝트를 생성 후 필요 기능 구현 완료 후 War 파일로 생성한다. (반드시 "ROOT.war" 파일명으로 생성해야 한다.) 4. FTP 를 이용하여 카페24 서버에 ROOT.war 파일을 업로드한다. ( /카페24아이디/tomcat/webapps 디렉터리에 업로드하면 파일이 자동으로 압축해제되고 ROOT 디렉터리가 생성됨.) 5. SSH 프..
@Controller 에서 요청 별로 공통 속성을 추가할 경우 다음과 같이 @ControllerAdvice 클래스를 생성하여 @ControllerAdvice 어노테이션 추가 후 @ModelAttribute 를 추가하고 전달된 Model 파라메터에 필요한 속성들을 추가한다. @ControllerAdvice public class CommonControllerAdvice { @ModelAttribute public void handleRequest(HttpServletRequest request, Model model) { String requestURI = request.getRequestURI(); // 다음과 같은 식으로 공통으로 사용될 속성들을 추가한다. model.addAttribute("appVe..
// 태그에 조건에 따른 표출 설정 th:if="${조건식}" // 태그에 클래스 추가 th:classappend="${조건? 'true일 경우 클래스' : 'false일 경우 클래스'}" // 태그 안에 내용 넣기 (innerHtml 같은 역할이지만 태그를 escape 처리하여 그대로 출력된다.) th:text="| 텍스트내용 ${변수} |" // 태그 안에 내용 넣기 (태그를 escape 처리하지 않아 태그 입력 시 태그가 동작한다.) th:utext="| 텍스트내용 ${변수} |" // a 태그에 href 추가 th:href="@{/경로}" // 태그에 속성을 추가 (아래 예제는 태그에 id="fname123" 과 같은 id 속성을 추가) // 같은 방식으로 onclick 같은 이벤트도 추가 가능함..
copyright 와 같이 창크기가 변경되더라도 항상 하단에 위치해야 하는 경우 지정하는 스타일이다. bottom 이나 padding 속성으로 하단과의 여백을 조정하면 된다.
브라우저 크기가 변경되더라도 항상 꽉찬 배경 이미지 적용. 패턴으로 반복해서 채워지는 것이 아니므로 배경이미지의 크기가 1280 이상으로 하는 것이 좋다.
mybatis 사용 중인데 저 에러가 나와서 한참 당황했다. 보통 mapper xml 의 쿼리의 resultType 으로 지정된 타입과 쿼리 결과 값이 안맞을 때 발생하는데 이번엔 그 경우가 아니였음. 아래와 같이 DTO 을 정의하고 String 타입의 value 를 int 타입으로도 설정할 수 있는 함수를 오버로딩 해놨었는데 mapper xml 에서 쿼리 실행 후 결과를 저 놈을 통해서 할당하면서 타입이 맞지 않아 발생했던 것이다. 이 경우 뭔가 방법이 있을것 같긴한데 방법을 찾아보는 귀찮음에 비해 크게 이득이 없기에 setValue(int) 을 setIntValue(int) 로 변경하였다. // ---- DTO Class ------- @Setter @Getter public class Propert..
AvPacket 를 raw 형태 그대로 저장한 파일을 mp4 파일 형태로 만든 코드이다. m_RecordFile 이 raw 파일을 open 한 CFile 형태이므로 m_RecordFile 사용하는 부분만 필요한 형태로 교체하면된다. CVideoRecorder::SRecordFrameInfo 이 구조체도 raw 파일 저장 시 영상크기나 코덱 정보를 저장했던 구조체이므로 반드시 필요하진 않으므로 영상크기만 필요한 형태로 교체해주면 된다. BOOL CRecordFilePlayer::ExportRecordFile(CString &strFileName) { BOOL bResult = FALSE; AVFormatContext* m_pOfmt_ctx = NULL; AVCodecParameters codecpar; A..