반응형

Spring Boot 버전을 2.x -> 3.x 버전으로 변경 후, Gradle 빌드를 하면 아래의 메시지와 함께 빌드 에러가 발생하는 경우를 볼 수 있다.

 

- Incompatible because this component declares an API of a component compatible with Java 17 and the consumer needed a runtime of a component compatible with Java 11

 

이는 Java 버전에 따른 문제인데, 2.x 버전의 경우 Java 11을 사용했지만 3.x 버전으로 변경하는 경우 Java 17을 사용해야 한다.

 

Java 17을 설정하고 환경변수를 설정해주면 해결 된다. Ubuntu의 경우 아래와 같이 진행한다.

 

# Java 17 설치
$ sudo apt install openjdk-17-jdk

# 17이 설치된 번호를 입력하여 17로 변경
$ sudo update-alternatives --config java
There are 4 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                            Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-11-amazon-corretto/bin/java    11100021  auto mode
  1            /usr/lib/jvm/java-11-amazon-corretto/bin/java    11100021  manual mode
  2            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1111      manual mode
* 3            /usr/lib/jvm/java-17-openjdk-amd64/bin/java      1711      manual mode
  4            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      manual mode

Press <enter> to keep the current choice[*], or type selection number: 3

# environment 파일에서 JAVA_HOME 환경변수 변경후 저장
$ sudo vi /etc/environment
JAVA_HOME="/usr/lib/jvm/java-17-openjdk-amd64"

# Java 버전 확인
openjdk version "17.0.7" 2023-04-18
OpenJDK Runtime Environment (build 17.0.7+7-Ubuntu-0ubuntu118.04)
OpenJDK 64-Bit Server VM (build 17.0.7+7-Ubuntu-0ubuntu118.04, mixed mode, sharing)

 

반응형
반응형

SSH 접속시 화면에 보이는 문구를 설정하는 방법을 알아보자.

그리고, 텍스트를 그림처럼 만들어서 설정하는것도 가능하다.

 

 

아래는 AWS EC2 접속시에 보이는 문구이다. EC2 글자를 그림처럼 만들어 두었다.

어떻게 만들어 볼까?

AWS EC2 접속시 보이는 문구

 

 

먼저, 아래 사이트에 접속하면, 텍스트를 입력해서 그림처럼 만들어 복사할 수 있다.

흰색 창에 글자를 입력하고, Font는 변경해서 마음에 드는걸로 설정한다.

https://www.patorjk.com/software/taag/#p=display&f=3D-ASCII&t=Hello!

'Hello!' 라는 문구를 생성해 보았다.

다음과 같이 텍스트로 복사해올수 있다.

 ___  ___  _______   ___       ___       ________  ___       
|\  \|\  \|\  ___ \ |\  \     |\  \     |\   __  \|\  \      
\ \  \\\  \ \   __/|\ \  \    \ \  \    \ \  \|\  \ \  \     
 \ \   __  \ \  \_|/_\ \  \    \ \  \    \ \  \\\  \ \  \    
  \ \  \ \  \ \  \_|\ \ \  \____\ \  \____\ \  \\\  \ \__\   
   \ \__\ \__\ \_______\ \_______\ \_______\ \_______\|__|   
    \|__|\|__|\|_______|\|_______|\|_______|\|_______|   ___ 
                                                        |\__\
                                                        \|__|

 

이제, 접속되는 Host의 ssh 설정 파일을 편집한다.

필요에 따라 sudo 권한이 필요하다.

 

$ vi /etc/ssh/sshd_config

 

주석 처리되어 있던 Banner부분을 살리고, 아래와 같이 경로를 입력해 준다.

Banner /etc/issue.net

 

 

그리고 /etc/issue.net 파일을 수정한다. 이 파일에 들어가는 문구가 접속시 나타나게 된다.

$ vi /etc/issue.net

 

만들어 둔 'Hello!' 를 붙여 넣고, 저장해 주었다.

 

SSH 서비스를 재시작 해준다.

$ sudo /etc/init.d/ssh restart

 

 

이후에 다시 SSH로 접속해보면, 아래와 같이 저장된 문구가 출력되는걸 확인할 수 있다!

반응형
반응형

Spring Boot을 이용하다보면 가끔 Spring Framework의 버전이 무엇인지 확인할일이 생깁니다.

gradle 파일에 Spring Boot의 버전은 지정했으나, Core인 Spring Framework의 버전은 따로 명시하지 않는 경우

어떻게 확인해야 할지 난감합니다.

 

 

이때는 Spring Boot의 Maven Repository에서 참고하면 쉽게 확인 가능합니다.

https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter

 

링크에 접속하면 Repository에 올라와 있는 Spring Boot의 버전들이 보입니다.

찾고자 하는 버전을 눌러 Compile Dependencies 내용을 확인 합니다.

그리고 Dependencies 내용에서 spring-core의 버전을 참고하면 됩니다.

 

 

예를들어, Spring Boot 2.7.9 버전의 Framework 버전을 확인한다면, 아래 페이지에서

https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter/2.7.9

 

spring-core 버전이 5.3.25 버전임을 확인할 수 있습니다.

반응형
반응형

안드로이드 공부를 해보기 위해 보통 앱 만드는것을 많이 해보기 마련인데 필요에 따라서 Framework level의 소스를 보고 싶을때가 있습니다.


이를위해서 Open Source인 Android의 Framework source를 다운받고 싶은데 Google Git을 통해 받아오는게 일반적인데요.


하지만...! 어렵습니다 ㅠ 그리고 Google Git에서 받아오는건 엄청 느립니다 ㅠ 



Contribution이나 코드 수정해서 빌드해보고 직접 넥서스에 이미지 올려보기를 위함이라면 Google Git에서 sync를 받아오는게 좋지만 그냥 소스만 간단하게 보기 위함이라면 웹을 통해서 쉽게 다운로드 받을수 있는데요.


어떻게 하는지 함께 알아볼까요?



먼저 Google Git을 통해서 받아오는 방법을 살짝 보고 가보겠습니다.


안드로이드 Developer 페이지에 들어가면 source를 다운로드 받는 방법에 대해 나와있는데요

https://source.android.com/source/downloading.html




페이지에 들어가면 안드로이드 소스를 다운받는 방법이 나와있는데 일단...! repo가 설치되어 있어야 하기 때문에 윈도우에서는 하기가 쉽지 않습니다.


리눅스 기반의 OS로 repo를 설치해서 하거나 윈도우에서 하고 싶다면 cygwin을 설치해서 할수 있는데, 이 방법은 따로 포스팅을 하겠습니다... ㅋ





자 이제 본론으로 돌아가서, 웹에서 소스를 다운로드 받아보겠습니다. 제일먼저 누구나 해봄직 했을만한...

구글에 검색해보기 ㅋㅋ


"android framework source download" 라고만 검색해봐도 쉽게 찾을 수 있습니다.




그중에 좀 확실한 페이지 두개를 보면!



1. Android git repositories를 통한 다운로드


https://android.googlesource.com/ 에 들어가면 Android Git Repositories를 볼 수 있는데, 페이지에 여러개의 git project들이 나와 있습니다. 여기는 구글에서 운영하는 공식 페이지 이기 때문에 제일 정확한 소스를 다운받을수 있다고 봐도 무방한데요




Android를 빌드해 보기 위해서는 full source가 필요하겠지만, 간단하게 framework 소스 정도만 본다면 android/frameworks/base 쪽 project만 받아보면 되는데,





platform/frameworks/base 를 검색해서 링크를 따라 들어가봅니다. 그럼 platform/frameworks/base project에 있는 Branch와 Tag정보를 볼 수 있습니다.


※ Git project, Branch, Tag에 대한 개념은 Git을 알아야 하기 때문에 잘 모른다면 일단은 그냥 따라가보고 나중에 Git을 따로 공부해봐도 해볼만 합니다.





이중에 Master branch에 있는 소스를 받아보면 되는데 



master branch 링크를 따라 들어간뒤에 [tgz]를 눌러서 다운받으면 이쪽 소스를 압축파일로 받아올 수 있습니다.


물론! 나는 다운로드 받기 싫어~ 이런 사람들은 그냥 밑에 파일 목록을 쭉~ 따라 들어가서 보는것도 가능하구요.


끝! 쉽죠...?! 이정도만 해도 소스만 다운로드 받아서 소스를 볼 수 있는 환경을 갖춘 것입니다.





2. Git Hub 이용하기


그리고 두번째 방법은 Git Hub를 이용하는 방법인데,


Git Hub의 Android git을 찾아서 들어가 봅니다. https://github.com/android




역시나 framework source를 볼 수 있는, framework/base쪽 프로젝트를 따라 들어가보면 Android git repositories와는 다른 인터페이스 지만 비슷한 화면을 볼 수 있습니다.





그리고 여기에서도 내가 받고 싶은 branch정보를 선택하고, 맨 오른쪽의 Download ZIP 링크를 누르면 압축파일로 다운로드 받을 수 있습니다.





자! 이제 다운로드 받는 두 가지 방법을 다 살펴보았고, 다운을 다 받은뒤에 압축을 풀어보면 웹에서 보았던 파일들이 그대로 들어와 있는걸 볼 수 있습니다.





Sublime text로 ActivityManagerService쪽 소스를 한번 열어보았습니다.



자신에게 편한 에디터 또는 툴을 이용해서 코드를 보면 됩니다! 쉽죠!!!


위에서 말했듯, Contribution을 하기 위해서는 직접 Git을 통해 Repo를 설치하고 다운받아 와야 하지만.

단순하게 소스만 다운받아서 공부를 해보기 위함이라면 이정도면 충분하기에.


이 포스팅이 필요한 사람들에게 도움이 되었길 바랍니다.




반응형
반응형

몇글자_v.1.1.zip


링크 걸려있는 압축파일 다운받으시면 됩니다.


자소서 같은거 쓰실때 활용가능한 글자수 세는 프로그램입니다.

기존에 v.1.0이라고 만들어서 예전 블로그에 올려놓았었는데, 업데이트라고 하기엔 부끄럽지만 글자수와


몇바이트인지도 나오도록 수정하여서 올립니다.



1. 공백 포함 / 공백 미포함 옵션 체크하신뒤에 글자수 세기 버튼을 누르면 현재 몇글자인지, 몇바이트인지 출력해줍니다.

(바이트는 영문 1Byte, 한글 2Byte 기준입니다)


2. 가볍게 만든 프로그램이기 때문에 자소서 관련 사이트 들어가셔서 웹에서 할때보다 쉽게 사용하실수 있으실 것 같네요

(따로 설치같은건 필요없고, 압축파일 푸시면 exe파일있는데 그거 실행하시면 되겠습니다)


3. 웹 페이지마다 인식하는게 조금씩 다를수 있기 때문에 참고용으로 사용해 주세요~


4. 그리고 제가 만들어서 공유하는것이기 때문에 자유롭게 사용하시면 되겠습니다. 퍼가시려면 출처는 꼭 남겨주세요.






반응형
반응형

과제하면서 MySQL을 쓰다가 발견한 에러와 해결방법...!

 

error 1242 : subquery returns more than 1 row

 

쿼리문에서 return값이 하나 이상이어서 발생하는 에러인데 결론부터 말하자면 'any' 라고 붙여주면 된다.

 

(X) select * from student where stdid=(select stdid from advisor where instid='201201003');

 

(O) select * from student where stdid=any(select stdid from advisor where instid='201201003');



위와같은 다이어그램에서 advisor라는 관계형 테이블을 만들었는데

 

잘못만듬... '학생' 이라는 테이블에 instid를 외부키로 가져와서 테이블에 추가해주면 될것 같기도 한데 advisor라는 테이블에 각각 instid와 stdid를 외부키로 하는 테이블을 만들어 버렸다. 이미 데이터까지 다 넣어버린 상태라 그냥 하기로 하고 진행 ㅡㅡ;;



다음과 같은 테이블에서 instid가 '201201003' 인 조건만 찾아낸 뒤 매칭되는 학번을 이용해서 학생테이블로부터

정보를 가지고 오고 싶었다.


instid 201201003와 매칭되어 있는 stdid는

 

총 3개이다.

 

학생 테이블로 부터 stdid와 매칭되는 정보를 가져오기 위해 처음에 사용한 쿼리문은

 

select * from student where stdid=(select stdid from advisor where instid='201201003');

 

이었고, advisor 테이블로 부터 instid가 201201003인 stdid를 가져와 student 테이블의 조건으로 넣어주는 것이다.

 

하지만 여기에서 error 1242 : subquery returns more than 1 row 에러가 발생...

 

열심히 구글링을 해본 결과!!

 

ANY 를 넣어주면 된단다!!

 

select * from student where stdid=any(select stdid from advisor where instid='201201003');

 

any를 넣어주고 다시한번 검색을 해보면

 

 

 

잘 나오는걸 확인할 수 있었다.

반응형

+ Recent posts