- 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 |
- view 획득
- springboot 재가동
- ffmpeg
- mybatis exception
- 파티션 빠른 삭제
- 말줌임 CSS
- sql exception
- 코드로 서버 재실행
- Back 키 클릭 감지
- reactnative
- 스크롤적용
- 가변영역 스크롤
- CSS
- pid 찾아 kill
- rn
- kill -9
- c언어
- SQL
- MFC
- springboot
- vc++
- Activity 전체화면
- group by
- 시간대 테이블생성
- MariaDB
- MySQL
- 시간대별 통계
- 터치좌표 view
- CentOS
- 피쉬랜드
목록전체보기 (116)
개발은 하는건가..
동영상을 디코딩하여 나온 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 같은 이벤트도 추가 가능함.th:attr..
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..
DB 에 blob 타입으로 저장된 1.6MB 파일을 다운로드 구현 중 max_allowed_packet 오류 발생. NAS 에 설치된 mariaDB 의 max_allowed_packet 설정 값이 1MB 로 되어 있어서 발생하였으니 해당 설정 값을 변경해주면 된다. 환경파일 내용을 수정하거나 SQL 명령으로 값을 설정한다. # mysql 환경 파일 위치 찾기 > mysqld --verbose --help | grep -A 1 'Default options' ~~ 생략 ~~ /etc/my.cnf ~/.my.cnf # mariadb 10 의 경우 my.cnf 파일 안에는 !includedir /etc/my.cnf.d 이렇게 폴더를 include 하는 내용이 있다. 해당 폴더에 server.cnf 파일을 열어..
templete/error 경로에 에러 페이지가 없는 경우 아래 처럼 오류 내용이 모두 표시 된다. status 코드와 에러 종류, 메세지 정보만 표시되면 되는데 stackstrace 까지 모두 표시된다. [에러내용 예시] 더보기 { "timestamp": "2022-03-10T02:05:23.246+00:00", "status": 400, "error": "Bad Request", "trace": "org.springframework.web.bind.MissingServletRequestParameterException: Required request parameter 'deviceId' for method parameter type String is not present\r\n\tat org.spri..
DB 에 이미지 파일이나 바이너리 데이터가 저장된 경우 읽어오는 방법이다. Connection conn = DriverManager.getConnection(url, id, pwd); boolean result = false; String sql = "SELECT binData,binDataSize FROM firmware WHERE pkey=?"; PreparedStatement psmt = conn.prepareStatement(sql); psmt.setString(1, key); ResultSet rs = psmt.executeQuery(); if (rs.next()) { Blob blob = rs.getBlob("binData"); int binDataSize = rs.getInt("binData..
위와 같이 레코드가 존재할 때 각 특정 deviceType 의 fwType 별로 최신 버전을 추출하기 위한 쿼리를 아래와 같이 작성할 수 있다. SELECT T2.deviceType, T2.fwType, T2.fwVer, T2.fwVerInt, T2.fwChecksum, T2.targetGroup FROM (SELECT deviceType, fwType, MAX(fwVerInt) AS fwVerInt FROM Firmwares GROUP BY deviceType, fwType HAVING deviceType = '대상deviceType') T1 INNER JOIN Firmwares T2 ON T1.deviceType=T2.deviceType AND T1.fwType=T2.fwType AND T1.fwVe..
오래된 노트북에 설치한 centOS 가 설치 과정에서 GUI 로 IP 를 지정해서 설정하고 잘 써오다가 한 두어달 지났을까 갑자기 접속이 안됐다. 확인해보니 중간에 혼자 리붓이 된건지 IP 가 변경되어 있었다. 설치 시에 고정으로 ip 를 지정했는데도 dhcp 로 할당을 받았나 보다. 아마도 파일로 직접 설정을 해야나 보다. 네트워크 환경 설정 파일은 아래 경로에 존재한다. /etc/sysconfig/network-scripts/ 해당 경로 안에 ifcfg-enp3s0 이런 형태의 파일이 존재한다. 파란색에 해당하는 부분은 이더넷디바이스 이름이므로 다를 수 있다. 편집기를 열어 파일 내용을 수정한다. TYPE="Ethernet" PROXY_METHOD="none" BROWSER_ONLY="no" BOOT..
> org.apache.logging.log4j.LoggingException: log4j-slf4j-impl cannot be present with log4j-to-slf4j log4j 취약점으로 버전을 올렸더니 빌드 시 위와 같은 오류가 떴다. log4j-slf4j-impl 과 log4j-to-slf4j 가 같이 사용할 수 없다고 한다. build.gradle 에 아래와 같이 configuration 을 추가하면 된다. configurations { all { exclude group: 'org.apache.logging.log4j', module: 'log4j-to-slf4j' } } 현재 내 프로젝트에서는 logback 를 사용하지 않고 있었기에 상관 없지만 springboot 에서 기본으로 l..
IntelliJ ultimate 상용버전은 springboot 프로젝트 생성 기능을 제공하지만 무료인 community 버전은 그게 없다. 그래서 기본 틀이 갖춰진 기존 샘플 프로젝트를 import 하여 프로젝트명과 패키지명을 변경하여 프로젝트를 구성할 때의 방법을 정리해보았다. 물론 https://start.spring.io/ 에 접속하여 프로젝트 파일을 생성하여 사용하는 방법도 있지만 그건 조만간 해볼 예정이다. # 프로젝트명 변경 1. [File] > [Project Structure] > [Project] > (Project name) 이름을 변경한다. 2. IntelliJ 를 종료한다. 3. 프로젝트 root 디렉토리로 이동하여 아래 파일을 열어 프로젝트명을 동일하게 수정한다. /settings..