전체 글 472

[SpringBoot] java.lang.IllegalStateException: Transaction not active

JPA를 사용중에 이런 에러를 마주할 수 있다. persistence.xml에서 가 문제라고 추정해서 value를 create로 바꿔보기도 했는데 역시나 소용없었다. 잘 보면 JPAClient라는 내 39번째 코드에 commit()을 사용한 코드가 있는데, 그 코드가 문제가 발생한거다. 근데 왜 문제가 발생했냐면 Transaction not active.... 라고 한다. 왜 트랜잭션이 시작이 안됬다고 할까? 나는 분명 위에서 tx.begin()이라는 코드를 통해서 실행을 시켰는데? 곰곰히 생각해보았다. 무엇이 문제가 될 수 있는지. 코드 상에서 tx.begin()을 한번 했고 이후에 tx.commit() tx.commit() 즉 두번을 해줬다. 이게 문제가 될 수 있을까? 그래서 tx.commit()두..

[SpringBoot] *.jar 파일이 인식안될때

jar파일 자체가 인식이 안될때가 있다. cmd에서 직접 폴더로 찾아가서 명령어로 압축해체를 할려고 했는데, 그마저도 안되더라. (왠지는 모르겠지만... 그냥 안됨... ) 그래서 알집을 깔았다. 인식안되면 알집깔자... 알집설치해서 알집으로 진행하면 문제없이 잘된다. https://eating-coding.tistory.com/69 jar 파일 알집으로 실행되는 문제 해결을 해보자 jar 파일을 실행시키기 위해서는 해당 연결 프로그램이 Java Platform SE binary인 상태에서 실행해야 합니다. jar 파일이 알집으로 되어있으신 분들은 알집의 환경설정에 있는 파일 연결에 연결할 확장 eating-coding.tistory.com

[SpringBoot] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.18.1:test (default-test) on project

메이븐 install을 해주는데 계속 failure가 났다. 누구는 pom.xml을 run configuration에서 삭제해주래서 계속 해줬는데 소용이 없었다. 알고보니 pom.xml을 run configuration을 삭제하라는 것은 아예 failure가 났을 때가 아니라 warning 때문에 해주는 조치이기 때문에 거의 상관이 없는 조치였다. 사실 그 warning도 무시해도 된다는 글들이 몇개 있었다. 아무튼 그래서 build failure가 왜 났는지 밑에 로그를 좀 보니 Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.18.1:test (default-test) on project 라고 되어있었다. 검색해보니 아주..

[SpringBoot] Type mismatch: cannot convert from ArrayList to List

리스트에 arraylist를 할당하는 코드를 작성중이었는데, 갑자기 arraylist가 할당이 안된다고 빨간줄이 가버렸다. 분명 arraylist는 list에 들어갈 수 있는 타입인데 왜? 라고 해서 검색을 좀 해봤다. 어딘가 이상한게 있을거라고는 생각했다. arraylist가 list에 못들어가는건데 내가 착각했을거라고는 생각하지 않았다. 왜냐면 늘상 써오던거라 아닐 리가 없었다. 그래서 보니 import를 잘못해준거였다. import com.sun.tools.javac.util.List; 이걸 써줘버린 거였다. 그러니 에러가 난거다. 그래서 import java.util.List; 이걸로 바꿔주었다. 가끔씩 이런 문제가 생길땐 import있는곳을 좀 살펴봐야겠다. ctrl shift o 를 눌러서 i..

[SpringBoot] 테스트결과가 출력되지 않을 경우!

모킹과 목업에 대해 공부하던 중 테스트 케이스를 작성하게 되었는데, ctrl + shift+ o 를 눌러서 import를 해주는데 다음과 같은 창이 떴다. 그냥 Test가 있고, api.Test가 있다. 사실 저 두개가 무슨 차이가 있는지 몰라서 그냥 Test를 import해주었다. 그런데 테스트의 결과가 출력되지 않았다. 그냥 콘솔창에 아무것도 뜨지 않았다. 한참을 뒤적거린 뒤에야 api.Test를 사용해야 한다는 것을 알게 되었다. 이걸 사용했을 경우에 결과가 출력되는 것을 확인할 수 있었다....

[SpringBoot] maven filter 안뜰때

왜 항상 maven은 무언가를 하려고 하면 사람을 당황하게 만들까.... maven에서 filter가 안떠서 뭐지? 싶은 상황이 있는데, 좀 기다리면 된다. 가끔 이렇게 느리게 적용되서 지금 뭔가 잘못된건가 싶은 상황이 여러번 있었는데, 다른 탭에서는 이런 경우가 없었는데, maven관련해서 이것저것 만질때만 항상 이러는 것 같다. 왜인지는 잘 모르겠다. 아무튼! maven관련해서 무언가를 살필때, 안뜨는 것 같으면 그냥 좀 기다려보면 뜬다. ㅋㅋ 기다리면 뜬다....

[Linux] 리눅스 gcc 에서 c언어 컴파일, 32비트 어셈블리 코드 확인하기

c언어를 컴파일 하는 과정에서 어셈블리 코드를 확인하는 과제가 있었는데 리눅스에서 컴파일했던 기억이 까마득해서 에러때문에 고생좀 했다. 우선 방법은 간단하다. 그냥 .c형식의 c소스코드를 작성해주고 gcc -O1 -S -m32 test.c 이렇게 적어주면 된다. -m32는 32비트 어셈블리를 확인하겠다는거고 -S는 어셈 코드를 보겠다는거고 -O1은 최적화 단계를 설정해주는 거다. 이것도 O이 숫자인줄 알고 계속 하다가 뭔가 생겨먹은게 이상해서 그제야 알아차린거다. 지금 생각해보면 웃기긴한데 심각하게 왜 안되는지 이리저리 애먹었다... ㅋㅋ 아마 Optimization이라는 뜻인걸까? 특히 c를 컴파일해줄때 bits/libc-header-start.h: No such file or directory 오류 ..

C & C++/Linux 2021.05.20

[Dev] 어디서 많이 본듯한 FOO의 기원은?

SQL에서 테이블을 생성해주는데, 리터럴로만 딱 하나 만들어주는 예제를 공부하다가 FOO 로 테이블 이름을 지정해주는 예제를 보았다.  그런데 뭔가 느낌이 FOO라는게 어디서 많이 본듯했다.  그래서 검색해보니 아래의 블로그가 나왔고, 답을 얻었다.  www.hooni.net/xe/study/3734 프로그래밍에서 foo, bar 함수의 유래 - 후니넷프로그래밍 예제를 보면서 함수를 사용할 때 함수 이름에서 foo(), bar() 를 자주 접하게 된다. 사실 의미와 유래는 크게 중요하지 않지만 뭐든 알고 있으면 나쁠게 있나 ㅋㄷ; 위키피디아 설명에www.hooni.net 아주 잘 설명해주셨다.  Front observation officer로 정찰병이라는 의미를 담고 있다고 한다. 목적을 달성하기 위한 ..

개발 정보 2021.04.27

[OracleDB] sql에서 set unused는 왜 쓸까요?

sql 공부 중에 그냥 슬쩍 지나갈법도 한데, 유난히 고민되는 구문이 하나 있었다. set unused인데, 평소에 그냥 읽어보고 넘어갔었는데, 오늘은 대체 이걸 왜 쓰는걸까라는 생각이 문득 들었다. 그래서 검색해보았는데 www.gurubee.net/article/48959 칼럼 UNUSED의 용도 초보시절 Column 을 UNUSED로 변경하면 임시로 사용못하게 했다가 USED로 바꾸면 다시 사용이 되는줄 알고 쿼리 실행했다가 고생한적이 있습니다...(d.. www.gurubee.net 이 블로그에 너무 정리를 잘 해주셨다. 간단하게 말하자면, unused로 마킹을 해놓음으로써 그 이후로는 액세스도 할 수 없다. 또한 다시 되돌릴 수도 없다. unused를 하더라도 사용된 공간을 환원받을 수도 없다. ..

Database/OracleDB 2021.04.26

[C++] 마이크로소프트 c++ 도큐먼트

c++ 관련해서 이것저것 검색하다가 마이크로소프트 c++ 머시기가 뜨길래 들어가보니 마소에서 제공하는 c++ 도큐먼트같은게 떴다. 살짝 훑어봤는데, 나름 잘 정리되있는 것 같더라. pdf로 다운도 받을 수 있어서 다운 받았는데, 번역도 잘 되있고, 꽤나 괜찮아 보인다... 내가원하는건 스레딩이었는데, 음... 안나와있다. 그래도 나름 괜찮은 자료이니 모셔서 저장하기... 언젠간 읽어볼 일이 생길듯. docs.microsoft.com/ko-kr/cpp/cpp/templates-cpp?view=msvc-160 템플릿 (C++) 자세한 정보: 템플릿 (c + +) docs.microsoft.com

C & C++/C++ 2021.04.19

[Oracle DB] ora-12560 문제 발생

실습을 진행하려고 프롬프트에서 sql에 진입했는데 맞는 비밀번호를 쳐도 에러가 떴다. ora- 12560이라고 뜨던데, 내가 건드린거라고는 저번에 컴퓨터를 끄기 전에 속도를 좀 빠르게 하고 싶어서 oracle서비스를 "서비스" 에서 자동 -> 수동으로 바꿨던 기억이 있었다. 검색해보니 아니나 다를까 수동으로 바꿨기 때문에 실행이 안되는 상태여서 접속이 안된다는 에러였다. 서비스에 들어가면 이렇게 3개의 란이 있을텐데, 이걸 다 자동으로 바꿔주는 게 좋다. 막상 쓸려고 sql들어갈때 에러나면 또 다시 켜줘야 하고, 귀찮다. 속도차이도 뭐 별로 없는 것 같으니. 실행상태로 둘 수 있도록 자동으로 바꿔주자.! travelbeeee.tistory.com/396 ERROR:ORA-12560: TNS:protoco..

Database/OracleDB 2021.04.19

[Unreal] 언리얼엔진4 찍먹 후기

최근에 언리얼엔진5 사전 영상이 나와서 완전 반해버려서 언리얼엔진을 공부해보기로 했다. 아래는 유튜브에서 언리얼엔진 5라고 검색하면 바로 뜨는 영상인데, 진짜 멋있다. 아마 올해 말? 에 정식으로 내놓는다는 얘기가 있었다. www.youtube.com/watch?v=9W-Q-JSQf58 한번 보면 알 수 있는데, 진짜 그래픽이 많이 발전한것 같다. 지금 있는 버전은 4버전이라서 급하게 에픽게임즈에도 가입해서 언리얼 엔진을 다운 받았다. 언리얼 엔진 소스코드를 받아볼 수 있는 에픽게임즈 organization 이 깃허브에 있던데, 언리얼이랑 깃허브랑 연동하니까 바로 초대장이 날라왔다. 그래서 가입해서 잠깐 소스코드를 열어봤는데, 흠... 뭔지 모르겠는건 당연했고, 분량이 진짜 많았다. 베르의 언리얼 엔진 ..

Unreal Engine 2021.04.09

현실과 미래

유독 미래에 대한 고민이 많아졌던 시기였다. 어떻게 살아야할지 어디로 가야할지, 방향성에 대한 고민을 많이 했던 시기였다. 최근 들어 그런 생각이 자주 떠오르긴 했다. 불안함을 느껴서 그렇다고 생각했다. 어디로 가야할까. 뭘하면서 살까. 아니 어떻게 살게될까. 그런 고민들을 많이 했다. 아직도 잘 모르겠다. 답이 나오지 않는데, 다만 추측만 가능했다. 어디로 가야할까. 어떻게든 직장을 얻고 살게 될테지만, 가능하면 좋은 선택을 하고 싶었다. 어디로 가는 것이 나에게 더 도움이 될지 많이 고민했다. 현실적인 판단을 하겠다고 다짐하고, 선택지 중 저울질해보았지만, 나름 현실성 있는 두 가지 선택지 중에 어느 곳이 나을지 선택하지 못했다. 유독 중요한 시기라서 그런 고민을 많이 하게 된 것 같다. 지금은 볼 ..

생각들 2021.04.08

[VS] visual studio 2019 코드 비교하기

visual studio 에 코드 비교하기 기능이 있는 줄 몰랐는데, 있었다... 여지껏 vscode로 가져다가 비교하는 짓을 반복했었는데, 난 바보다... 검색해보니 있긴있는데, 좀 불편하게 지원해준다. vscode같은 경우는 그냥 파일하나 클릭해서 비교할 대상파일도 또 선택해서 클릭해주면 바로 지원해주는데 vs같은 경우는 내가 직접 타이핑해야 한다. 그럼에도 유용하다. ㅎㅎ 터미널창에 Tools.DiffFiles C:\Users\user\source\repos\chapter11\BinaryTreeSearch.c C:\Users\user\source\repos\chapter11\2.c 이런식으로 써주면 된다. Tools.DiffFiles 뒤에 경로 두개를 써준다. (초록색이 경로1, 빨간색이 경로2) ..

개발툴 2021.03.18

[Notion] Notion 사용하기

이번에 꽤 괜찮은 학습 노트를 발견했다. 노션 이란 건데 무료이다. 마크다운 지원해서 코드도 저장할 수 있다. 이걸로 학습 노트로 사용해봐야겠다. 아래에서 데탑 버젼으로 받아서 쓰면 된다. https://www.notion.so/ko-kr Notion (노션) – 모든 팀을 위한 하나의 워크스페이스 Notion은 단순한 워드프로세서가 아닙니다. 내 스타일에 맞게 커스텀해서 사용하세요. www.notion.so

개발툴 2021.03.06

[C] 4년이 지나서 다시보는 C언어 - 핵심 정리

윤성우님께서 쓰신 "열혈 자료구조"를 보려고 너무 오랜만에 책을 펼쳤는데, 순간 당황했다. c언어에서 사용되는 -> 기호가 무슨 뜻이었는지 기억이 가물 가물 하면서 기억나질 않았다. 그래서 당황해서 급하게 서현우씨께서 쓰신 "이것이 c언어다" 책을 펼쳤다. (기억이 안날만도 하다. 2년의 공백이 너무 컸다.) 지금 4년 만에 다시 펼쳐보는 것 같다. 기본기를 소홀히 한 대가다. 요즘 들어서 느끼는 게 있는데, 아무리 서비스 위주의 기술들 중에서 핫한 기술들이 뜨고 이것저것 나오더라도 기본기는 언제나 중요하다는 것을 느낀다. 아무리 빠르고, 성능 좋은 라이브러리라 하더라도 c++과 c를 기반으로 작성되어있는 경우가 많았고, 성능이라는 면에서 아직도 이 둘을 따라올 언어가 없다고 생각한다. 그러니 기초적으로..

C & C++/C 2021.03.06

[기술서적] 생계형 개발자, SI에서 살아남기 개정판 - wikidocs - 리뷰

삼일절 저녁이라 할것도 없어서 Wikidocs 에서 추천책들을 살펴보고 있었는데 이 책을 발견하게 되었다. 평소에 즐겨보던 블로그나 기술 유튜버들이 말하던 SI라는 생태계에 대해 설명하고 있다길래 호기심이 발동했다. 분량은 그리 많지 않다. 그냥 앉아서 저녁시간에 느긋하게 읽어보면 될만한 정도의 분량이다. 코드나 이런걸 설명하는 책이 아니라 저자 자신의 경험과 조언 그리고 실제 SI 환경에 흐르는 분위기와 노하우들을 알려준다. 막연하게 설명하는 게 아니라 꽤 구체적으로 실제 프로젝트가 어떻고 문화가 어떻고 하는 구체적인 이야기까지 해준다. 그리고 저자만의 충고도 이야기하는데 그 이야기들은 사실 어떤 직업을 택하든 통용되는 이야기라는 생각이 들었다. 아주 기초적인 내용부터 시작해서 심지어 "능력이 없는 개..

[JS] 모던 자바스크립트 입문 8장 함수 예제 - 랜덤 그리기

// 이 코드는 모던 자바스크립트 입문(徹底マスターJavaScriptの教科書) 에서 인용한 것입니다. // [ISBN #978-4797388640]. Copyright 2017 by 磯博 모던 자바스크립트 입문 중에서 8장 (함수) 의 8-22 예제를 첨부한다. 원래예제와는 조금 다르게 선이 뻗어나갈때마다 색이 바뀌도록설정했다. 재밌는 예제다. 위처럼 랜덤으로 선이 뻗어나간다. 시간이 별로 없어서 책을 빠르게 읽었는데 중간에 있던 예제들은 그냥 지나칠 수가 없어서 하나 하나 전부 만들어봤는데 정말 재밌는 예제가 많다. 서평이 굉장히 좋은 책이었는데 맞는것같다. (물론 무슨 코드지? 하고 한동안 들여다본 코드들도 있다. 특히 좌표관련 코드이다. 그것들도 막 이해가 안되는 그런게 아니라 좀 들여다보면 이해가..

[JS] call, apply, bind

call은 그냥 인수를 콤마로 하나씩 전달하면 된다. apply는 배열로 던져주면 된다. bind는 영구히 this값을 고정하고 싶을 때 해당 객체를 인수로 주면 된다. call과 apply는 결국 어떤 this값을 사용하고 싶을 지를 결정한다고 보면 된다. this 값이 핵심이다. 어떤 특정 함수에서 this값이 필요없는 경우가 있는데, 이 경우에는 call과 apply의 인수로 null을 준다. null대신 어떤 값이든 줘도 상관없다. 어차피 this 지정이 필요없기 때문이다.

[JS] 자바스크립트 with 문

자바스크립트에 대해 궁금한 걸 몇개 검색하다보니 with 문이라는 구문이 눈에 들어왔다. 처음 보는 구문이라 자세히 살펴보니 재밌는 기능이라는 생각이 들었다. 어려운 기능도 아니다. 쉽다. { } 안에 있는 수식들을 잘 살펴보면 Math 가 빠져있다. 그 이유는 이미 with 에서 Math를 생략하고 써도 된다고 말해주고 있기 때문이다. 결과도 y값 찍어보면 잘 나오는 걸 확인할 수 있다. 반복적으로 사용하는 경우에 코드를 줄일 수 있는 좋은 방법인 것 같다.

[JS] 자바스크립트의 함수는 1급 객체이다.

자바스크립트의 함수는 1급 객체이다라는 말이 있다. 이 말은 무슨 말일까? first-class-citizens 라고 할 수 있다. 보통 다른 객체들에게 적용 가능한 연산을 모두 지원하는 객체를 말한다. 이러한 연산에는 매개변수로 전달되고, 함수에서 반환되고, 수정되고, 변수에 할당되는 작업이 포함된다. 쉽게 말해서 프로그래밍 언어에서 type을 전달, 반환, 할당할 수 있는 경우 해당 type을 1급 객체로 간주한다. 그러므로 javascript에서 함수는 다음과 같은 조건을 만족하므로 1급 객체라고 할 수 있는 것이다. 1. 함수를 변수나 데이터에 할당할 수 있다. 2. 함수를 인자로 전달할 수 있다. 3. 함수를 리턴할 수 있다.

[기술서적] 모던 자바스크립트 입문 - 이소 히로시

jsp -> spring (스프링은 퀵스타트로 공부했다. ) 까지 하다가 친구들이 깃허브에 node.js로 만든 프로젝트들이 있길래 관심이 생겨서 자바스크립트를 한번 제대로 보고 싶은 마음이 생겼다. 책추천을 몇권 골라보았다. 인사이드 자바스크립트라는 책이 처음 있었고, 이후에 자바스크립트 완벽가이드란 책이 있었는데, 우선 인사이드 자바스크립트는 평가도 좋고, 분량도 딱 적당했지만, (생각보다 얇다) 뭔가 실습할만한 좋은 예제들이 별로 없다고 생각되어서 패스했다. 자바스크립트 완벽가이드는 분량이 너무 많다고 여겨져서 부담이 되긴 했는데, 분량 때문이 아니라 다른 사람들의 평을 들어보니 "좋은 책인건 맞다. 그런데 출간된 지 꽤나 시간이 흘러서 맞지 않는 부분이 있다. 그리고 조만간 신 개정판이 나온다. ..

[JS] 가중산술평균과 이미지 필터링 기능의 구현

모던 자바스크립트 입문을 공부하는 도중 좀 복잡한 코드를 마주하게 되었다. 코드를 읽다가 도움이 될 수 있는 단서를 하나 발견했는데, 바로 가중 산술 평균이다. 가중 산술 평균은 가중 산술 평균은 자료의 평균을 구할 때 자료 값의 중요도나 영향 정도에 해당하는 가중치를 반영하여 구한 평균값이다. 라고 위키에 정의되어 있다. 그리고 아주 아주 친절한 부가설명도 존재한다. 출처: ko.wikipedia.org/wiki/%EA%B0%80%EC%A4%91_%EC%82%B0%EC%88%A0_%ED%8F%89%EA%B7%A0 딱 한번만 읽어봐도 이해가 될 정도로 간단한 예제이다. 즉 가중치를 분모로 잡아서 모두 더하고, 분자에는 해당 값들과의 곱을 더해서 평균을 구하는 것이다. 따라서 위처럼 픽셀의 정중앙의 값을 ..

[JS] 브라우저는 어떻게 동작하는가? 요약 및 정리(1)

브라우저의 동작에 대해서 아주 잘 설명해놓은 글이 있어 이를 읽고 간단하게 정리해보고자 한다. 브라우저의 주요 기능은 사용자가 선택한 자원을 서버에 요청하고 브라우저에 표시하는 것이다. 자원의주소는 URI로 표현된다. 최근 브라우저들이 표준 명세를 따르고 있기 때문에 호환성 문제가 줄어들었다. 브라우저의 기본 구조 브라우저의 기본 구조는 아래와 같다. 각 구성을 간단하게 설명하면 아래와 같다. 1. 사용자 인터페이스: 우리가 브라우저를 쓸때 보이는 화면이다. 이전버튼, 다음 버튼, 페이지 창 등이 있는 곳이다. 2. 브라우저 엔진: 사용자 인터페이스와 렌더링 엔진 사이의 동작을 제어한다. 3. 렌더링 엔진: 사용자가 요청한 컨텐츠를 표시한다. HTML같은 걸 파싱해서 화면에 표시한다고 보면 된다. 4. ..

[JS] 모던 자바스크립트 입문- 생명 게임 시뮬레이터 (2차원 배열의 생성)

모던 자바스크립트 입문의 17장에는 생명 게임 시뮬레이터 예제가 있다. 이 예제에서 화면의 view에 나타낼 픽셀을 배열로써 생성하는 파트가 있다. 코드는 다음과 같다. // 격자의 크기 state.nx = nx; state.ny = ny; // 셀의 상태를 저장하는 2차원 배열을 생성하고 초기화한다 state.cells = new Array(ny); for(var ix=0; ix

[JS] 특정 셀(ix,iy) 주변의 마리 수 구하기 (생명 게임) - 모던 자바스크립트 입문

최근에 모던 자바스크립트 입문이라는 책을 통해 자바스크립트를 공부 중인데, 17장에 보면 MVC 모델을 기반으로 하여 생명 게임 시뮬레이터를 실습하는 부분이 있다. 상당히 퀄리티 좋은 예제이고, 챕터 전체가 한 예제를 다루는 (입문으로 치면) 꽤 난이도 괜찮은 예제이다. 예제 중에서 특정 객체의 메소드가 이해가 되지 않아서 직접 어떻게 동작하는 지 그려보면서 알아봤는데, 이런 방법도 있구나 하고 놀라게 되었다. 해당 코드는 다음과 같다. state.getSumAround = function(ix,iy) { var dx = [ 0, 1, 1, 1, 0,-1,-1,-1]; var dy = [ 1, 1, 0,-1,-1,-1, 0, 1]; // 주기적 경계 조건 for(var k=0,sum=0; k

[JS] innerHTML, innerText, textContent 각각의 차이점에 대해

예제를 진행하면서 자주 등장하는 이 세가지의 기능이 무엇이 다른지 궁금해서 알아보았다. // HTML 이 다음과 같다고 가정할 때, Keep Calm and Drink Coffee Sometimes, Tea // JavaScript const statement = document.querySelector('#statement'); statement.innerHTML; // Keep Calm and Drink CoffeeSometimes, Tea statement.innerText; // Keep Calm and Drink Coffee statement.textContent; // Keep Calm and Drink CofeeSometimes, Tea 위의 하나의 코드만으로도 세가지의 차이점을 명확하게 알..

반응형