반응형

1. 기본 프로젝트 생성

ctrl + shift + p (팔레트 열기)

> Flutter: New Project 선택

> Application 을 선택해 프로젝트 생성

> 프로젝트 저장 경로 지정

 

 

2. 앱 실행

ctrl + shift + p (팔레트 열기)

> Flutter: Select Device 선택

> Chrome 선택

또는, 우측 하단 상태표시줄에 보면 Chrome (web-javascript) 클릭 후 기기 선택

 

 

 

> Run > Run without Debugging 을 선택

 

실행했더니, 크롬 화면이 Demo 로 잘 실행됨!!

 

 

3. Android Studio 의 AVD 로 실행

이번엔, 에뮬레이션을 이용해 휴대폰 화면으로 실행시키위해 Create Android emulator 를 선택해보았다.

반응형

에러 발생!

 

No suitable Android AVD system images are available. You may need to install these using sdkmanager, for example: sdkmanager "system-images;android-27;google_apis_playstore;x86"
AVD(Android Virtual Device, 안드로이드 가상 디바이스) 가 없거나 설치되어있는 system image가 없어서 발생!!

 

해결을 위해,

> Android Studio 실행

> Tools > Device Manager

> Create Device > AVD 생성

 

> Pixel 선택 (갤럭시23 과 해상도가 비슷한 Pixel 6 또는 7 을 선택)

> Next > Finish

 

> 다운로드 완료 후, VSCode 를 껐다가 다시 켜면!

> mobile emulator 가 생성되었음을 확인!

emulator로 휴대폰 화면이 나왔음을 확인했다!

반응형
반응형

VSCode 의 EXTENSIONS 에서 Flutter를 설치하니, 자동으로 Dart 까지 설치해주었다.

그런데 Flutter Doctor 를 실행하니, Flutter SDK 를 찾을 수 없다고 떴다.


1. flutter guide doc 링크에서 확인

https://docs.flutter.dev/install/quick

Git을 먼저 설치하란다. Git 설치해보자.

2. Git을 설치

Git을 먼저 설치하란다. Git 설치해보자.

Git 다운로드 링크 https://git-scm.com/install/windows

 

VSCode 가 설치되어있지 않으면 VSCode 설치~!

3. Flutter SDK 설치

컨트롤+shift+P  를 커맨드 팔랫트를 열어

>  fultter 를 적어

> Flutter:New Project 선택

> 그러면, VSCode 가 Flutter SDK 를 찾아보고 없으면 Download SDK 를 선택해 설치!

> Flutter SDK 가 있으면 하는 폴더를 선택> Clone Flutter 클릭

> 설치가 성공적이었으면, Add SDK to PATH 클릭

>>>> 설치 끄읏!  VSCode 재시작해줘서 Flutter: New Project 선택해줬을 때, 에러없이 켜지면 성공!

 

 

4. Flutter Doctor 실행해 확인

컨트롤+shift+P  를 커맨드 팔랫트를 열어

> Flutter: Run Flutter Doctor 선택

 

1) Android toolchain 에러

cmdline - tools component is missing

Android Studio 켜기

> Tools > SDK Manager > Android SDK 

SDK Tools 선택 

> Android SDK Command-line Tools (latest) 선택

만약 Android SDK Build-Tools 나 Android SDK Platform-Tools 도 없다면 선택한 후 OK

2) Andoid licenses 에러

Some Android Licenses not accepted. To resolve this, run: flutter doctor --android-licenses

 

에러에 적혀있듯이, 

VSCode 에서 Terminal 을 켠다

> flutter doctor --android-licenses 입력

> 라이센스 내용이 뜨면 모든 내용에 동의 y 입력 후 엔터

 

3) Visual Studio 에러

Visual Studio not installed; this is necessary to develop Windows apps. Download at

https://visualstudio.microsoft.com/downloads/

 

 

Visual Studio Community 설치!

설치가 완료되면, 워크로드 화면이 뜬다.

에러에

Please install the "Desktop development With C++" workload, including all of its defaut components.

이라고 적혀있으니, C++를 사용한 데스크톱 개발 을 선택해 설치 고!

 

반응형
반응형

컴퓨터를 새로 샀다. JAVA 설치부터 시작해보겠다.

오라클 링크를 들어가보니 Java가 26 버전까지 나와있더라.... 불안하지만, 일단 상위버전은 하위버전을 호환되게 만든다고 하니까, 일단 써보기로!

 


1. Java 26 다운로드

 

오라클 링크를 통해 다운로드

https://www.oracle.com/java/technologies/downloads/#java17

 

Download the Latest Java LTS Free

Subscribe to Java SE and get the most comprehensive Java support available, with 24/7 global access to the experts.

www.oracle.com

 

나는 Windows 탭에서 x64 Installer 를 선택해 설치했다.

 

운영체제를 확인하는 방법은

윈도우키 + R 을 눌러 찾기 창에 dxdiag 를 찾으면 DirectX 진단 도구로 확인이 가능하다! ( 맨 아래 참고한 사이트를 보고 새로 알게된 사실이다)

 

x64 MSI Installer 와 x64 Installer 의 차이
1. x64 MSI Installer 
- MSI(Microsoft Installer) 형식의 설치 파일을 의미
- 시스템 레지스트리, 파일 배치, 권한 관리 등을 자동화하는 기능 있음
- 환경변수(JAVA_HOME, PATH) 자동 설정
- 여러 PC에 자동 배포해야 할 때 (기업환경)

2. x64 Installer
- 일반적인 설치 프로그램을 의미
- exe 또는 다른 형식의 파일이 포함될 수 있음
- 독자적인 설치 방식을 사용하여 자동화가 어려울 수 있음.
- 일반사용

나는 일반사용자이기 때문에 installer 를 이용하겠다.

 

설치된 파일 경로를 보면 C:/Program Files/Java/jdk-26 로 되어있다.

 

2. 자바 환경변수 등록

윈도우 키를 눌러 시스템 환경 변수를 찾아 클릭.

새로 만들기 클릭

변수이름 : JAVA_HOME

변수값: JDK 설치경로로 저장 (Java 설치 기본설정 경로 C:/Program Files/Java/jdk-26)

시스템 변수에 있는 Path 변수에 %JAVA_HOME%\bin 적어준 후,

맨 위로 이동 시켜준다.

 

3. 자바 설치 확인

설치 확인을 위해

윈도우키 + R 로 CMD(명령 프롬프트)를 실행시켜 명령어 java -version 를 통해 확인! 

에러가 뜬다면 설치가 잘못되었거나 환경변수의 설정이 잘못되었을 수 있음! 대부분은 환경변수 설정의 문제!

 

 

 

자바 설치 끄읏!

 

참고한 사이트 : https://mozzi-devlog.tistory.com/44

https://0pen3r.tistory.com/477

 

 

반응형
반응형

분명 vue-cli는 깔아져있는데, npm run serve 를 실행하면 계속 

'vue-cli-service'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다.

이런 메시지가 떠서 아무리 생각해도 이해가 되지 않았다. 하지만 전에 배울 때, package.json 에는 dependency 들이 모두 버전정보와 함께 들어있는데, 거기에 정의되어있는 dependency 의 버전이 현재 설치되어있는 vue 에 대한 버전들이 다 다르면 이렇게 인식을 못한다고 들었던 기억이 났다.

!! 그래서 git 으로 서로 형상관리를 할 때는 package.json 은 올리지 말라고 했던 기억이 난다.

npm 캐시를 지워주고 다시 npm을 설치해주면, package.json 에 의존하는 모듈을 설치해준다는 것을 찾았다.

 

npm cache clean --force    #npm 캐시 삭제
npm install    #package.json 의존하는 모듈 설치

이렇게 해준 후 npm run serve 해줬더니 서버가 실행됬다!!!!!!

반응형
반응형

git 에서 clone 을 해오는 과정에서 발생한 에러!

error: RPC failed; curl 56 OpenSSL SSL_read: Connection was reset, errno 10054

 

이 에러는 Git에서 사용되는 메모리가 적을 경우 발생한다고 한다.
기본적으로 정해져있는 pull 이나 push 의 용량이 정해져 있는데, 그걸 초과했을 때라고 한다.

 

에러 났을 때 캡쳐를 해두지 않은게 후회된다...... 정확하게 뭐라고 굉장히 많이 적혀있었는데,  시도 한번에 고쳐질줄은 몰라서.... 

아무튼!!!!!

 

해결 방법!!!

git 의 postBuffer 을 용량을 늘려줬다. cmd 창으로 가서

git config --global http.postBuffer 1048576000

 

잘됬는지 확인하기 위해서, 

git config --list

설정한대로 postbuffer가 늘어나있다. 그러고 나서 다시 clone 해오니 받아졌다.

끄읏!

반응형

'웹앱프로젝트 > git' 카테고리의 다른 글

Sourcetree 에서 다중계정의 git 사용하기  (0) 2022.06.13
반응형

에러내용:

31-Mar-2023 12:22:20.414 SEVERE [ajp-nio-0.0.0.0-8009-exec-255] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [appServlet] in context with path [] threw exception [Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:
### Error updating database.  Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLNonTransientConnectionException: Could not connect to address=(host=118.67.129.190)(port=3306)(type=master) : Socket fail to connect to host:118.67.129.190, port:3306. connect timed out
### The error may exist in file [/usr/local/tomcat9/webapps/ROOT/WEB-INF/classes/mybatis/AccessHistoryMapper.xml]
### The error may involve com.app.hanbat.accessHistory.AccessHistoryDao.insertAccessHistory
### The error occurred while executing an update
### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLNonTransientConnectionException: Could not connect to address=(host=118.67.129.190)(port=3306)(type=master) : Socket fail to connect to host:118.67.129.190, port:3306. connect timed out] with root cause
        java.net.SocketTimeoutException: connect timed out

 

 

해결>>>>>

commons-dbcp2 라이브러리를 추가하고

mybatis-context 에 validationQuery 를 value="select 1" 로 추가해준다.

기존에는 bean 이

<bean id="dataSource" class="org.springframework.jdbc.datasource.DrivermanagerDataSource"> 로 설정되어있었다. 하지만 spring 에서 제공하는 것이 아닌 apache 에서 제공하는 dbcp2를 이용해서 추가하였다.

build.gradle

compile group: 'mysql', name: 'mysql-connector-java', version: '5.1.13'
implementation group: 'org.apache.commons', name: 'commons-dbcp2', version: '2.9.0'

 

mybatis-context.xml

<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
    <property name="driverClassName" value="net.sf.log4jdbc.sql.jdbcapi.DriverSpy" />
    <property name="url" value="${jdbc.url}" />
    <property name="username" value="${jdbc.username}" />
    <property name="password" value="${jdbc.password}" />

    <!-- 특정 시간마다 validationQuery를 실행 셋팅 시작 -->
    <property name="validationQuery" value="select 1"/>
</bean>

 

 

 

반응형
반응형
<if test="payIngYn == 'Y'">
</if>

또는

<if test="payIngYn.equals('Y')">
</if>

한글자를 IF 문에 넣었더니, 항상 에러가 났다.

Cause: java.lang.NumberFormatException: For input string: "Y"

항상 그냥 다른 방식으로 우회해서 가다가, 아무리 생각해도 이건 말이 안되고 뭔가 방법이 있을 것 같아 찾아보았다. (여기서 기억나는건, 전에 한번 MyBatis 에서 select문을 해왔을 때, 그 값이 Y 였을 때,  JAVA에서 찍어보니 숫자 1 로 찍혀있던 기억이 난다. char를 숫자로 인식하나보다 라는 생각을 했던 기억이난다. 그런데 그 이유는 JAVA의 CHAR형태는 실제로 문자의 코드값을 저장하기 때문이라고 한다.)  

이건, MyBatis 의 문제가 아니고, OGNL(Object Graph Navigation Language)의 문제라고 한다.  MyBatis는 XML element 를 줄이고 다양한 조건을 처리하기 위해서 OGNL 표현 방식을 사용한다. (꿀팁! jsp 에서 주로 사용하는 JSTL 표현식이 OGNL 이기 때문에 이에 익숙한 사람은 MyBatis 조건문에 이를 적용하면 된다!)

싱클쿼테이션(') 으로 어떤 값을 감싼 경우, 이건 property 가 아니라고 명시해주는거지 '문자열'이라고 명시하는게 아니다. 그러면, 이를 자료형이 아니라 문자열 이라고 MyBatis에게 명시해주기 위해서는 더블쿼테이션(")으로 감싸주어 힌트를 주면된다.

그래서 결론! 해결책!

1. 싱클쿼테이션과 더블쿼테이션 위치를 변경
<if test='payIngYn=="Y"'>

2. 더블쿼테이션을 HTML 코드로 변경
<if test="payIngYn == &quot;Y&quot;">

3. toString() 함수를 이용해 String 형으로 변환
<if test="payIngYn == 'Y'.toString()">

1번을 추천한단다. (대신, 1번을 사용할 경우 == 대신에 equals 함수를 추천한다
반응형
반응형

DB정보에 같은 IP주소를 가진 DB서버를 연동하고 war파일을 tomcat서버에 반영했더니, 위와 같은 에러가 발생했다. 접근 권한이 없다는거...

근데 같은  IP인데? 라는 생각에 그냥 접속 할 수 있지 않을까 라고 생각할 수 있지만

나의 경우는, tomcat서버 안에 DB서버가 함께 들어있었다. 같은 DB와 접속서버의 IP주소가 같은데 그 주소를 DB접속 정보에 그대로 넣엇으니, 접속 서버에서 나가서 다시 DB서버로 접속하려고하더라. 그 말은 즉슨, 

같은 서버지만, 외부로 나갔다가 다시 안으로 들어오는 것이기 때문에 결국 보안을 거치는것이엇다. DB서버는 SHOW GRANTS 로 확인해본 결과 내부에서만 접속이 가능하게 지정해뒀다. 그래서 접근 권한 없다고 하는 것이다.

그래서, war 파일에 있는 DB접속정보를

이렇게 변경해줬다. 즉 localhost 로 인식하도록 바꿔줬더니 연결이 됬다!

반응형

+ Recent posts