문제 아래와같이 Dbeaver편집기 상에서 띄어쓰기가 있을 경우 ORA-00900: SQL문이 부적합합니다. 라는 오류가 발생하는 현상이 있다. 문제 해결을 위해 Dbeaver의 Preferences > 편집기 > SQL 편집기 > SQL실행으로 들어간다. Blank line is statement delimiter가 체크되어있는 것을 체크해제하면 에러가 안난다.
보통의 OLTP(Online Transaction Processing)성 프로세스의 경우, 소량의 데이터를 조회하여 데이터를 생성, 수정, 삭제하여 NL조인으로 충분하지만, 데이터가 많을 경우 소트머지 조인이나, 해시조인을 사용하라고 한다. 소트머지 조인의 경우 조인하려는 양쪽의 테이블을 조인컬럼을 기준으로 정렬 후, 조인하는 방식이고 해시조인의 경우 데이터의 양이 적은 테이블을 기준(데이터 양이 큰 테이블을 기준으로 만들수 있지만 지양한다.)으로 해시테이블을 만든 후 조인테이블이 해시테이블과 일치하는지 확인하는 작업을 하면서 조인한다. NL조인보다 위 두개 조인이 대용량 데이터 조인시 빠른 이유는 NL조인의 경우 인덱스에 기반한 랜덤액세스 방식의 조인이고, 모든 프로세스가 바라보고 있는, SGA영역에서..
내 개인프로젝트를 사우분께 보여드리고 싶어서 flutter프로젝트를 받았더니.. android 폴더가 없는것 아닌가.. 안드로이드 스튜디오에서 저절로 만들어진 .gitignore등의 설정에 따라 push를 한 것인데 말이다. 알고보니.. 필요 없던것.. 프로젝트를 내려받은뒤 프로젝트 루트폴더에서 아래의 명령어를 수행하면 된다. flutter create .
JPA의 1차캐시와 2차캐시.. 책이나 강의등을 통해 JPA를 공부하긴 하였으나,, 회사 프로젝트가 대부분 mybatis로 되어있기에 기억이 희미해져 간다.. 기억을 되살리고자 글로 정리하고자 한다. 일단, 네이버검색을 통해 캐시에 대한 사전적 정의를 본다. 캐시 (cache) 중앙 처리 장치의 성능 향상을 위해 사용하는 보조 기억 장치. 저용량, 고속의 반도체 기억 장치이다. 음.. 약간 하드웨어적 정의가 사전적 정의로 되어있다. cpu와 보조기억장치 사이에서 성능향상을 위해 두는 중간 레이어정도로 기술하고 있다. 그런데! 프로그래밍 용어와 관련된 사전적 정의도 있는데, JPA에서 말하는 캐시는 아래의 사전적 정의가 맞아보인다. 캐시(Cache) 캐시란 컴퓨터 프로그래밍 용어로, 자주 사용하는 데이터나..
S3에 이미지를 업로드하고, 이를위한 CDN으로 CloudFront를 사용하도록 얼마전에 세팅을 하였었다. https://honeyinfo7.tistory.com/338 s3와 cloudfront 연동하기 현재 토이프로젝트를 하면서 S3에 사진을 올려두고, 이 사진을 Client가 바로 S3를 통해서 접근할 것이냐. 아니면, 내 서버를 한번 거쳐서 이미지에 접근할 것인가 하는 고민이 있었다. 그러던 어느 honeyinfo7.tistory.com 그리고, CloudFront의 접근을 얼마전에 내가 발급받은 도메인으로 하게하기 위한 작업을 하였는데,, 잘 되지 않았다. 일단,, 이 과정을 적어보고 나중에 잘되거나 해결책을 찾았을시 수정하기로 한다.. CloudFront에 들어가서 편집 버튼을 누른다. 대체..
현재 토이프로젝트를 하면서 S3에 사진을 올려두고, 이 사진을 Client가 바로 S3를 통해서 접근할 것이냐. 아니면, 내 서버를 한번 거쳐서 이미지에 접근할 것인가 하는 고민이 있었다. 그러던 어느날 퇴근전 팀원분과 이런저런 이야기를 나누며 수다를 떨던중. 위의 고민을 넌지시 말해보았는데 CloudFront라는것을 추천해주셨다. 요즘세상 키워드만 알면 전지전능한 ChatGPT가 설명해주니, CloudFront에 대해 물어보면 아래와 같다. 뭔가, 중간에서 캐시역할을 하는듯하다. 또한, S3에서 CloudFront에 대한 접근설정을 하면 보안적인면도 증가되지 않을까 싶다. CloudFront 생성 우측 상단의 배포생성 버튼을 클릭한다. 원본 도메인을 클릭하고, s3관련된 것으로 보이는 도메인을 클릭한다..
local에서 스프링부트로 대충 샘플 api서버를 띄우고 해당서버에 아래와 같은 코드로 접근을 하는데, 에러가 뜬다. final resp = await dio.get('http://127.0.0.1:8080/api/v2/orders'); 에러메시지 E/flutter (10174): Error: SocketException: Connection refused (OS Error: Connection refused, errno = 111), address = 127.0.0.1, port = 41792 음??? Postman으로는 되는데 왜 안될까.. 어쩌다 보니 찾은 방법은 루프백 아이피(localhost)대신 노출되고 있는 아이피를 써야하는듯. ## 우리집 내부망은 192로 시작하므로 내부망에서 내 컴퓨터의..
현재 회사에서 내가 관리하고 있는 코드는 만들어진지 굉장히 오래된 코드여서 레거시 코드및 사용하지 않는 코드가 많다. 현재 노력하고 있는 것은, 틈틈이 생 자바 프로젝트나, Spring 3.x 프로젝트를 스프링 부트로 전환하거나, 안쓰는 코드를 제거하는 작업이다. 기존 코드를 읽으면서 평소 의구심이 드는 코드가 있었는데 내용은 다음과 같다. Service 클래스가 있는데, 이 서비스 클래스에 대한 Service인터페이스를 만들어서 관리가 되어야하나? 이런 코드가 너무많은데? Service인터페이스만 없어져도 많은 파일이 줄어들 것 같은 느낌이 들었다. 만약, OrderService라는 서비스를 구현하고자 한다면 아래와 같이 OrderService관련 파일이 두개가 되는 것이다. 즉, 아래와 같다. in..
오랜만에 안드로이드 스튜디오를 켜보기위해 다운받아서, 안드로이드를 설치후 시작해보니 위와 같은 Alert 창이 뜨면서 안드로이드 스튜디오가 실행 안되는 문제가 발생하였다. 위와같은 문제를 해결하기 위해서는 JAVA_HOME, path 설정을 하면 된다고 하는데,, 그 문제는 아닌듯.. 2시간정도의 삽질끝에 해결책은.. 아래의 사이트에서 Visual C++ Redistributable 64bit 설치하면 되었다!! https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170 Latest supported Visual C++ Redistributable downloads This article lists the d..
좌측창에서 볼 때 cmd + 7 팝업창으로 볼때 cmd + f12