일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- c언어
- 바이크
- 스타크래프트2
- Qt 소켓프로그래밍
- Java
- qt 설치
- 엑티브엑스
- 이륜차
- 마영전
- 자료구조
- QTcpServer
- 재귀함수
- 안드로이드
- HTML
- 윈도우7
- vuejs
- 정성하
- android SAF
- 디자이어HD
- QT
- 고속도로
- 자바
- 잡담
- 알람프로그램
- FFI
- Qt4
- Qt OpenGL
- 스타2
- 양평역
- 오토바이
- Today
- Total
목록프로그래밍 (173)
프로그래밍과 잡담
그냥 심심풀이로 만드는 앱이 있는데, 해당 앱을 비공개 처리 했다. 왜냐하면, 이게 돈은 안되는데 구글 새끼들이 사업자 정보를 요구하고, 그걸 구글 플레이 스토어에서 공개를 함. 그래서 짜증나서 그냥 비공개 처리 했음. 요구 하는 정보는 아래와 같다. 1. 전화번호2. 이메일3. 주소 그리고 3개가 무조건 공개가 됨. 뭐 사업자를 가지고 있고, 따로 사무실도 있고 전화도 따로 있는 사람들이라면 문제가 없음. 하지만 나같은 경우, 개인은 집 주소와 개인핸드폰 번호를 넣어야 함. 그러면 내 개인정보를 외부에 공개해버리는 꼴이잖아? 게다가 전화 번호가 개인 전화번호인데 이걸 통해서 스팸같은게 오는거 같음. 그래서 앱을 마켓에서 내린 선택을 한건 더더욱 잘한거 같음. 돈은 돈대로 안되..
안드로이드 앱에서 위의 빨간색으로 친 부분을 제거 하기 위해서는 예전에는 아래와 같은 코드를 썼다. window.decorView.apply{ systemUiVisibility = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN } 근데 이거 쓰면 android lint 라는 거지같은거에서 deprecated 가 되었다 한다. 구글 이것들의 문제는 해결법을 알려주던가 해야하는데, 크게 도움이 안되는 개소리가 써있다는게 문제지. 그 개소리가 뭐냐면 최신 API 의 기능을 쓰라는 이야기임. 근데 그거 쓰면 하위 버전을 쓰는 폰들은 이 앱을 못쓰게 된다는거지. 아주 개같이 만들어놧..
SELECT NAME ,SUM(COL1) FROM TAB1 -- 데이터가 졸라 많은 테이블 WHERE COL2 = 'abcd' GROUP BY NAME Group BY는 사용 할 때 조심해야한다. 왜냐하면 테이블의 데이터가 매우 많을 경우, Group BY 를 걸면 조회 시 더럽게 오래 걸리게 된다. 그냥 오래걸리는게 아니라 더럽게 오래 걸린다. 대충 1천만건이 있다치면 거의 1시간이 걸려도 안나올 거임. 해결 방법은 바로 GROUP BY를 걸면 안되고, 먼저 SELECT를 통해서 내가 필요로 하는 데이터만 필터링을 하고 나서 그걸 감싸아서 그 위에서 Group By 를 해줘야 된다. -- 대충 해결법은 아래와 같이, 아래서 필터링을 걸고 나서 group by를 위에서 처리해야 함. SELECT NAME..
매번 이 거지같은 안드로이드 빌드 툴은 gradle의 버전을 올릴 때마다 오류가 나온다. 그냥 한번에 되는 경우가 없어. 그리고 오류 메시지도 제대로 알려주질 않어. gradle 버전을 8.0 으로 올리고 빌드하면 이런 개같은 오류가 나는데 'compileDebugJavaWithJavac' task (current target is 1.8) and 'kaptGenerateStubsDebugKotlin' task (current target is 17) jvm target compatibility should be set to the same Java version. 언제나 그렇듯이 내용이 잘 이해가 되지 않는다 버전이 1.8인데 현제 타겟은 17이라는건데 그러면 씨발 해결 방법을 알려주면 좋을텐데 개같은..
일단 C# 인거 같으니까 C#으로 범주를 셋팅함. 다른 언어도 비슷할거 같은데, 실험은 안 해봤으니까 일단 잊기 전에 적어 놓는다. C# 에서는 Parallel 이라는 병렬 처리 기능이 있음. 이름부터 병렬이라는 뜻이니, 병렬연산을 할 때 사용 하라고 마소에서 만든거다.. 근데 이거를 사용하면 30초 걸리는게 5~6초 줄어든다. 내꺼 cpu에서 말이지. 내 cpu는 5900x라 24쓰레드까지 지원한다. 그러니 8코어는 더 걸리겠지. 여하튼 이게 중요한게 아니라, Parallel을 사용 하고 그대로 끝나는 경우도 있지만 대부분 결과 값을 어느 한곳에 집어 넣고 결과를 처리 할 것이다. 근데 말이야 그게 결과들을 리스트에 집어 넣는 경우에 문제가 되는거 같음. 멀티쓰레드에서 발생하는 문제 말이다. 데이터 경..
이노무 CORS 염병할 것 때문에 계속 삽질을 했네. 삽질을 했던 이유는 Axios로 get 이던 post 던 간에 jwt token을 헤더 넣고 호출 했을 때, // 이런 식으로 호출 했음.. const header = { Authorization : token } const url = `${this.$store.getters.SERVER_URL}/service` Axios.get(url, { header, withCredentials: true }) .then( resp => { console.log(resp) }) .catch( err =>{ console.info(err) }) Spring boot의 필터 부분에서 해당 헤더 부분을 읽을 수 없는거였음. 정확히는 헤더 중에 Authorization..
이거 어이가 없네. 시리얼통신을 통해서 정보를 가져오는 프로그램을 만들어서 윈도우에서 돌릴 때는 메모리 오류가 없는데 이게 라즈베리 파이로 올라가서 돌으니까 메모리릭이 발생하네. 이런 골때리게 동작을 해서 실수한 부분인데, 결국은 내 실수 였음. 여하튼 문제점이 뭐였는지 이제야 찾았네 SerialPort 클래스를 열고(Open) 계속 Write를 하니까 버퍼에 데이터가 계속 쌓이는 문제였던거 같음. 이 빌어먹을 마소놈들이 윈도우는 버퍼를 플러시를 하는거 같은데 리눅스에서는 안하는거 같음. 여하튼 그래서 전송 방식을 아래와 같이 변경하였다. 전송 시 SerialPort를 열음 데이터를 수신 받으면 닫음 (내꺼 같은 경우에는 여러 기기에 던져야하므로 시간 셋팅해서 안오면 닫음) 위의 과정을 반복하니까 메모리..
집에 남아도는 라즈베리파이2가 있길래 GPIO 포트를 제어하는 걸 한번 해보고 싶어서 인터넷에서 브래드보드, 저항, led, 점퍼하고 버튼을 샀다. 가격도 상당히 저렴함. 근데 이놈들 저항을 랜덤으로 보내준다면서 다 1k 옴으로 줌 ㅅㅂ. 난 전자과가 아니라 회로에 대한 이론이 개뿔도 없음. 고등학교나 중학교때 배운 거 밖에 모름 ㅋ 그냥 인테넷 뒤져서 해봤다. 그냥 대충 돌아가는거에 만족해야겠음 ㅋㅋ 사실 이런 하드웨어 제어는 아직까지 C언어로 많이 짠다. 어차피 기능이 무진장 들어가는게 아니면 C 로짜는게 간편하거든. 근데 난 옛날에 C 언어를 해봐서 기억도 안나고 Rust 는 그래도 가끔씩 사용해서 할 줄 아니 Rust로 해보았다 ㅋ 위의 사진 보다 싶이 별거 없다. 그냥 버튼 누르면 led가 1초..
개발을 하고 있지만 도커나 뭐 이런 컨테이너를 써본적이 없었는데, 사실 이런건 개발자들은 크게 다룰일이 없긴함. ㅋ 어차피 큰 프로젝트는 인프라쪽에서 할테니 말이야.. 조그마한 프로젝트는 설계자가 할테고 말이지. 웹쪽을 전문적으로 다루는 프로그래머들은 해봤을거 같은데 난 이런쪽으로 안해서.. 근데 왜 썼봤냐 하면 자바 공부도 하고 Vue.js도 공부하며 겸사겸사 기존의 C# 웹페이지를 Java Spring boot로 바꾸면서 Spring boot도 도커이미지로 만들수 있다고 하니 한번 써봤는데, 이거 상당히 좋은거 같다. 공부겸, 연습겸, 집에서 사용 중인 태양광 모니터링 페이지가 ASP.net mvc 로 되어있는 프로젝트를 프론트와 백앤드로 나누는 작업을 했음. 프론트는 vuejs 로 만들고 nginx..
메소드로 만든 함수를 호출 했는데 값이 안나올 경우가 있었음. 예를 들어 findByDateOrderByDate() 이런걸 호출 했는데, 실제로 쿼리를 날려보면 있는데, 값이 안나오는거지.. 졸라게 삽질을 해본 결과, 답은 굉장히 간단했다.. VO의 클래스의 Date 클래스를 Timestamp 로 바꾸니까 나옴 ㅋ 씨발 ㅋ 아나 이거 개같네..오류도 안나오고 그냥 row가 0이 나오는게 어딧냐.. 사실 @Query 로 쿼리를 때렸을 때, 뭔가 이상한 컨버팅 오류가 나긴했는데, 저거라고는 생각도 못했다. Object[] 를 TestVO로 전환을 못한다 이 지랄하는데 이걸 어떻게 알어 나중에 또 이딴 오류에 걸릴 수 있으니 적어놔야지ㅋ 해당 오류났던 버전 : org.springframework.boot 2...