일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 자료구조
- 양평역
- 디자이어HD
- Qt OpenGL
- 안드로이드
- 알람프로그램
- vuejs
- FFI
- 정성하
- c언어
- Qt 소켓프로그래밍
- 엑티브엑스
- Java
- 재귀함수
- 이륜차
- 바이크
- 마영전
- 오토바이
- 자바
- QTcpServer
- 잡담
- 고속도로
- Qt4
- QT
- 스타크래프트2
- qt 설치
- 윈도우7
- 스타2
- HTML
- android SAF
- Today
- Total
목록프로그래밍 (174)
프로그래밍과 잡담
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...
VO의 필드 이름이 데이터베이스 컬럼과 다를 경우 @Column(name ="이름")을 통해서 변경된 이름으로 해서 쿼리를 날려야하는데 문제는 내가 입력한 값으로 안 바뀐다는거지. 그래서 구글을 한참 뒤지다 보니 해결 방법을 찾았다. 해결 방법: #properties #spring.jpa.hibernate.naming.implicit-strategy=org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl #yml spring: jpa: hi..
안드로이드 스튜디오 사용 중에 나는 어두운 테마로 쓰고 있는데, 소스 접는 아이콘 이 졸라 안보여서 찾아봤다. 다행이 금방 나오더라구. 그래서 나중을 위해서 해당 페이지 링크와 내용을 적어둔다. Setting 창에서 Tear Line 을 검색해서 색을 바꾸면 됨 https://intellij-support.jetbrains.com/hc/en-us/community/posts/206178229-Change-color-of-code-fold-markers-and-guide-lines-