반응형

jdbc를 활용하여 DB와 연결하는데 network adapter could not establish the connection오류가 발생했다.

대충 db접근 안된다는 뜻이다.

간단한거라 생각하는데 어쩜 이렇게도 에러와 에러가 무궁무진한건지 모르겠다.

보통 이런 경우라면 입력한 값을 먼저 확인하는게 좋다.

driver, url, id, pw를 확인해본다.

(아니면 Connection객체의 param이나 하여간 Connecting 부분을 먼저 확인해본다.)

근데 아무리 눈알을 빼서 닦고 넣어봐도 틀린게 없었다.

이럴때가 더욱 빡친다.

간단하게 해결될게 아니라는 뜻이기 때문~!~!~!~!

다른해결방법을 찾으러 열심히 구글링을 하다 발견했다.

작업관리자의 서비스 탭에서 확인할 수 있는데, 거지같은 Listener가 죽어있었다.

(Listener은 말그대로 듣는녀석이다. '내가 oracle을 부르면 들을것이다.'를 해주는 녀석인데 중지되어있으니 아무리 불러도 듣지를 못한다는 것이다.)

건방진 Listener같으니...!!!!!

내가 꺼지라 한 적도 없는데 혼자서 꺼지고 난리다.

분노를 가라앉히고 오른클릭 후 다시 실행을 시켜주면 연결이 아주 잘 된다.

반응형
반응형

톰켓과 아파치는 무료로 제공되어 웹 학습에 굉장히 긍정적인 영향을 미친다.

하지만, 이놈의 서버shack it은 도대체가 봐도봐도 잘 모르겠다.

갖은 오류와 에러를 뱉어대서 관련된 오류가 발생할 때마다 뒷목을 잡게 되는데, 오늘은 흔히 발생하는 Port 8080 required by Tomcat 에러 해결방법을 알아볼것이다.

열심히 코딩을 하고 신나게 서버에 올리는데 이런 에러가 발생한다.

대충 8080이란 포트에 이미 Tomcat이 점유하고 있다는 말이다.

아니 ㅋ 이게 무슨 소리?

내 Server는 Stopped 되어 있다고.

안 돌 아 간 다 고.

하지만, 뿅뿅같은 Tomcat은 계속 8080 웅앵 하면서 에러를 토하며 서버를 돌려주지 않는다.

이런 ㅁㄴㅇㄹ!!!

 

이럴때는 우선 진정하고 cmd(명령프롬프트)를 켠다.

soso한 팁으로써, 해당 실행 창은 window키와 R을 누르면 뿅하고 바로 나온다.

아니면 검색창에 cmd를 쳐서 가는 방법도 있다.

뿅하고 나타난 아무리 봐도 친근해지지 않는 cmd창에게 netstat -ano를 명령어로 날려준다.

나도 리눅스와 명령어에는 무지하게 약해서 뭔뜻인지는 정확하게 모르겠다.

(언젠간 더 공부하겠지..)

아무튼 치면은 8080을 찾아본다. 5152라는 PID(프로세스아이디)가 쓰고 있단다.

이 거지같은 프로세스덕분에 지금 Tomcat이 안켜지는 것이다.

해당 프로세스를 조져종료 시켜버리기 위해서 PID를 머릿속에 입력하고 다시 명령어를 날린다.

taskkill /F /PID 5152

난 cmd한테도 거부를 당한다.

니가뭔데 날 거부하냐 죽고싶냐

이성을 부여잡고 검색창에 cmd를 쳐서 관리자권한으로 실행한다.

관리자 권한으로 실행된 cmd에 다시 taskkill /F /PID 5152를 날려주면 성공적으로 프로세스가 종료된다.

그런다음 다시 tomcat을 실행해주면 잘 돌아간다.

반응형
반응형

JSP 수업 듣는 중 Filter을 만들었다.

implements를 하려는데, 뭔가 Filter들이 많이나와서 당황했는데 하나하나 해보니까 doFilter 있는 것은 javax.servlet.Filter였다.

그래서 그 클래스를 선택하여 상속을 받았는데, 강의에서는 3개의 Override된 메소드가 있었으나 지금은 doFilter하나 뿐이었다.

아마 사람들이 doFilter만 쓰니까 저것 만 남긴 것 아닐까 싶다.

여튼, 하단의

request.setCharacterEncoding("UTF-8");

chain.doFilter(request, response);

코드를 작성해줘서 UTF-8 Encoding 설정을 코딩해줬다.

 

그리고 실행하니까 한글이 당연스럽게 깨졌다.

왜냐면 was녀석은 저 클래스를 인지 못 하기 때문이다.

그래서 우리는 저 Filter가 내 Filter다.

저 Filter가 이 web에서 쓰일 필터다!!!!

라는 것을 입력해줘야 한다.

어디에? web.xml에.

혹시, web.xml이 없어 당황스럽다면 내가 적은 다른 글을 참조하면 되겠다.

https://gwer.tistory.com/8?category=824313

 

[JSP] wbe.xml이 없을때

이클립스로 Dynamic Web Project를 만들었는데, Generate web.xml deployment descriptor을 선택하지 않아 web.xml이 없을 때가 종종 있다. BGM : 행방 불명인가 보다~ Filter를 만드는 실습을 하던 와중에, web.x..

gwer.tistory.com

위의 welcom-file 친구들은 web.xml이 기본적으로 가지고 있는 설정들이다.

하단의 filter 부분만 설정해주면된다.

그리고 실행을 하면!

뙇 하고 NotFound가 뜬다.

ㅂㄷㅂㄷ 왜 못찾는데!!!!!!! 쾅코아쾅

(격분)

끓어오르는 분노를 가라앉히며 침착하게 이클립스의 console에 가서 나의 과오를 확인해봤다.

java.lang.ClassNotFoundException: UserFilter
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1365)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1188)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:540)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:521)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:150)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:249)
at org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:102)

~블라블라~

한마디로 니가 설정한 UserFilter라는걸 못 찾겠단 말이다.

그래서 경로를 확인해봤다.

아, com.session 밑에 들어가 있었당 ㅎ

머쓱한 마음으로 class의 경로를 com.session.UserFilter로 바꿔 주었다.

그리고 나서 실행을 하니 아주 잘되었다.

한글을 넣어준 후 실행하니 Encoding도 잘 되었당구리.

Filter란 클래스 하나만 있으면 serChar~어쩌고를 골백번 반복하지 않아도 되는 것 같다.

개이덕ㅎ

반응형

'Java > JSP' 카테고리의 다른 글

[JSP] wbe.xml이 없을때  (0) 2019.12.14
반응형

 이클립스로 Dynamic Web Project를 만들었는데, Generate web.xml deployment descriptor을 선택하지 않아 web.xml이 없을 때가 종종 있다.

BGM : 행방 불명인가 보다~

Filter를 만드는 실습을 하던 와중에, web.xml이 없어서 당황했는데 처음에 프로젝트를 만들지 않아도 나중에 만들어주는 방법을 알게되었다.

(Filter : 한글깨짐을 방지하기 위해 Encoding을 해주는 상속해서 쓰는 클래스. 온갖 서블릿에 setCharset~을 안해줘도 되는 편리한 클래스 이다.)

 

해당 프로젝트를 오른쪽 마우스로 클릭하고, Java EE Tools > Generate Deployment Descriptor Stub를 클릭해주면 알아서 WEB-INF밑에 web.xml을 만들어 준다.

새로 프로젝트를 다시 만들어서 복사해서 갖고올게 아니라, 이런 방법으로 하면 더욱 간결하다!

반응형

'Java > JSP' 카테고리의 다른 글

[JSP] Filter 설정 / Encoding 편하게 하기  (0) 2019.12.14
반응형

오라클 설치 후, cmd(명령프롬프트)에서 sqlplus 접근하니 계속 invalid 어쩌고 하고 접근이 되지 않았다.

하여간 이놈의 것들은 한번에 되는게 없어

구글을 아무리 뒤져봐도 해결방법이 없었는데, 그 이유가 내 추측에는 비밀번호에 / 가 들어가 있어서 그런 것 같았다.

재 설치 후 비밀번호를 / 가 없는 것으로 설정하지 접속이 잘 되었다.

무튼, 삭제하고 재설치를 하려는데 이놈의 oracle 인스톨러가 게속 'Oracle XE service instance failed' 라는 에러를 뱉았다.

뒤적거려 보니까, sc delete OracleServiceXE를 해주라고 했었다.

그래서 cmd에서 해당 명령어를 날렸으나 액세스가 거부되었다는 메시지가 나왔다.

딥빡

 

심호흡을 하고, 액세스 거부에 대해 확인해보니 cmd를 관리자 권한으로 접근하여 명령어를 실행하라고 되어 있었다.

윈도우 10 기준으로 검색창에 cmd를 입력한 후 오른쪽 클릭을 하여 관리자 권한으로 실행하면 된다.

그런다음, sc delete OracleServiceXE 명령어를 날려주면 정상적으로 삭제되었다는 메시지가 나온다.

그러면 다시 oracle를 설치해주면 성공적으로 설치가 된다!

반응형
반응형

Kotlin 기본 타입 정리

https://www.inflearn.com/course/%EC%BD%94%ED%8B%80%EB%A6%B0-%EA%B0%95%EC%A2%8C-%EC%83%88%EC%B0%A8%EC%9B%90/lecture/7229

위 inflearn 사이트의 강의 중

새차원, 코틀린(Kotlin)강좌를 기반으로 작성하였습니다.


 

1. 기본 타입

- 코틀린에서 모든 것은 객체임

- 모든 것에 멤버 함수나 프로퍼티를 호출 가능하다는 의미

 

2. 숫자

- Java의 숫자형과 거의 비슷하게 처리

- Kotlin에서 숫자는 클래스. Java의 primitive type에 직접 접근 할 수 없음

- Java에서 숫자형이던 char가 kotlin에서는 숫자 형이 아님

 

3. 리터럴 (Literal)

- 10진수 : 123 (Int, Short)

- Long : 123L

- Double : 123.5, 123.5e10

- Float : 123.5f

- 2진수 : 0b00001011

- 8진수 : 미지원 ( Java : int I = 017; )

- 16진수 : 0X0F

 

4. Underscore in numeric literals (since 1.1)

- 긴 숫자를 표기할 때 유용

 

5. Representaion

- Java플랫폼에서 숫자형은 JVM primitive type으로 저장됨

- Nullable이나 제네릭의 경우에는 박싱됨

- 박싱된 경우 idendtity를 유지 하지 않음

 

6. Explicit Conversions

- 작은 타입은 큰 타입의 하위 타입이 아님, 즉 작은 타입에서 큰 타입으로의 대입이 안됨

- 명시적으로 변환을 해주어야함

 

toByte(): Byte

toShort(): Short

toInt(): Int

toLong(): Long

toFloat(): Float

toDouble(): Double

toChar(): Char

 

7. 문자 (Characters)

- Char는 숫자로 취급 되지 않음

 

8. 배열

- 배열은 Array 클래스로 표현됨

- get, set([] 연산자 오버로딩됨)

- size 등 유용한 맴버 함수 포함

 

9. 배열 생성

- Array의 팩토리 함수를 이용

- arrayOf() 등의 라이브러리 함수 이용

 

10. 특별한 Array 클래스

- primitive 타입의 박싱 오버헤드를 없애기 위한 배열

- IntArray, ShartArray, IntArray

- Array를 상속한 클래스같아 보이지만 아님. Array와 같은 메소드와 프로퍼티를 가짐

- size 등 유용한 맴버 함수 포함

 

11. 문자열

- 문자열은  String 클래스로 표현

- String은 characters로 구성됨

- s[i]와 같은 방식으로 접근 가능 (immutabled이므로 변경 불가)

 

12. 문자열 리터럴

- escaped string("Kotlin")

> 전통적인 방식으로 Java String과 거의 비슷

> Backslash를 사용하여 escaping 처리

- raw string ("""Kotiln""")

> escaping 처리 필요 없음

> 개행 이나 어떠한 문자 포함가능

반응형

'kotlin' 카테고리의 다른 글

[kotlin] anko 라이브러리 설치방법  (0) 2020.08.31
[Kotlin] 기본 문법 정리  (0) 2019.08.08
반응형

 

Kotlin 기본 문법 정리

https://www.inflearn.com/course/%EC%BD%94%ED%8B%80%EB%A6%B0-%EA%B0%95%EC%A2%8C-%EC%83%88%EC%B0%A8%EC%9B%90/lecture/7229

위 inflearn 사이트의 강의 중

새차원, 코틀린(Kotlin)강좌를 기반으로 작성하였습니다.


 

1. 패키지 정의

- 패키지 정의는 파일의 최상단에 위치

- 디렉터리와 패키지를 일치시키지 않아도 됨

*import는 자바와 유사함

 

2. 함수 정의

- 함수는 fun 키워드로 정의

- 함수 몸체가 식(Expression)인 경우 return 생략가능

- 이런 경우 return type이 추론됨

- 리턴 할 값이 없는 경우 Unit(Object / 자바에서 void라고 생각하면됨)으로 리턴 함

- Unit은 생략가능

 

3. 지역 변수 정의

- val: 읽기전용 변수

- 값의 할당이 1회만 가능 Java의 final과 유사

*내 생각*

final 변수는 값을 한 번만 할당할 수 있다.

때문에 예시 중, 첫번째는 a라는 변수에 Int라는 자료형을 지정하고

곧 바로 1이라는 값을 할당하여 정상적으로 a에 1이 할당 되었다.

또한, 이제 a에게 다른 값을 지정해주어도 할당이 되지 않는다.

ex)

위와 같이 다른 값을 주었을때, 빨간줄이 뜨면서

'Val cannot be reassigned' 이라는 오류가 뜬다.

정확하지는 않지만, 'Val은 재접근(?)될 수 없다.'는 의미 같다.

두번째 예제는 첫번째와 같은 것인데 Kotlin 이친구가 똑똑하여

자동으로 자료형을 추론 할당해준다는 것 같다.

여기서 가장 문제가 세번째인데,

이 세번째 예제가 이해를 하고자 하면 기본적인 프로그래밍 지식이 필요할 듯 하다.

일단, 위의 구문을 보면 Val로 c라는 변수가 자바에서 final과 같은 것임을 선언했다.

그리고 c의 자료형은 Int라는 것도 동시에 선호하였는데,

문제는 c에 어떤 값을 넣어줄지를 정해주지 않았다.

이 때 print()로 c의 내용을 출력해주려 하면 에러가 발생한다.

**initialized : [타동사][VN] (컴퓨터) 초기 내용을 설정하다

출저 : https://endic.naver.com/enkrEntry.nhn?sLn=kr&entryId=6cca7c6116f04f0fb63679142fcc8c6e

 

initialize : 네이버 영어사전

초기 내용을 설정하다

endic.naver.com

 

변수 c는 반드시 초기화가 되어야 한다는 내용인것 같다.

그런데 웃긴게 밑에서 c = 3이라고 값을 넣어주는데,

거기에도 에러가 발생한다.

여기서 ???왜 초기화 해주는데 뭐임뭐임??? 하고 생각할 수도 있다.

적어도 나는 그렇게 생각했는데,

자바에서 final은 한 번 초기화되면 변하지 않는다.

즉, 해당 라인(선언되는 라인)을 벗어나서는 값을 줄 수가 없다.

그래서 c도 마찬가지로 선언과 초기화를 동시에 해주지 않으면 안되는 듯 하다.

*내 생각 끝*

 

- var : Mutable 변수

 

4. 주석

- Java와 Javascript와 동일함

- // 한 줄 주석

- /* */ 여러 줄 주석

- 여러 줄 주석이 Java와 달리 중첩 허용됨

 

5. 문자열 템플릿

- Srting Interpolation(문자열 보관법)

 

*내 생각*

이 기능 솔직히 대박적인것 같다.

엄청 간결하고 큰 따옴표를 남발하지 않아도 되서 편리한 것 같다.

*내 생각 끝*

 

6. 조건문

- 조건식으로도 사용가능

 

7. nullable

- 값이 null일 수 있는 경우 타입에 nullable 마크를 명시 해야 함

- nullable 타입의 변수를 접근 할 때는 반드시 null 체크를 해야함

- 그렇지 않을 경우 컴파일 오류 발생

 

8. 자동 타입 변환

- 타입 체크만 해도 자동으로 타입 변환이 됨

*Any : 최상위 자료형? 객채?

 

9. while 문

- Java와 거의 같다

 

10. when

*자바의 switch ~ case 문과 유사하지만 더욱 강력함*

 

11. ranges

- In 연산자를 이용해서 숫자 범위를 체크 가능

- range를 이용한 for loop

*내 생각*

바로 위의 for문은 무한 반복문이다.

n은 영원히 3이기 때문..

*내 생각 끝*

 

12. collections

- 컬렉션도 in으로 loop 가능

 

- in으로 해당 값이 collection에 포함되는지 체크 가능

 

! 여기서 잠깐 !

**보충 필요**

강의에서 설명이 없어서 직접 찾아본 setOf와 listOf의 차이점

- setOf : 주어진 인자값을 읽기전용으로set하여 return 해준다

- listOf : 주어진 인자값을 읽기전용 list로 return 해준다

참조 : https://kotlinlang.org/

 

Kotlin Programming Language

 

kotlinlang.org

 

13. Collections

- 람다식을 이용해서 컬렉션에 filter, map 등의 연산 가능

 

*이 부분은 람다식과 각 연산에 대해 추가설명을 조사하여 업로드 예정*

 

~ 첫 수강 후 느낀점 ~

1. 재미있다. 난 모바일 코딩이 젤 잼나는 것같다.

2. 솔직히 설명이 너무 빈약하다.

프로그래밍 모르는 사람이 들으면 진심 1도 이해 못 할듯.

3. kotlin 뭔데 이렇게 획기적인가? 파이썬도 수박 겉핡기만 해봤지만,

개인적으로는 kotlin이 호감이다. 이유는 X

반응형

'kotlin' 카테고리의 다른 글

[kotlin] anko 라이브러리 설치방법  (0) 2020.08.31
[Kotlin] 기본 타입 정리  (0) 2019.08.11
반응형

 

유니티 인터페이스, 단축키 (Hotkey)

 


 

*단축키

 

1. 핸드툴

 

 

- 유니티에서 오브젝트의 위치나 크기 등을 조절하기 위한 핸드툴. 왼쪽부터 Q, W, E, R, T, Y까지 단축키로 사용할 수 있다.

Q : Hand Tool. 오브젝트를 잡고 움직일 수 있다.

W : Move Tool. x, y, z 세가지 축이 나타나며, 원하는 축을 이용해 오브젝트의 위치를 옮길 수 있다.

E : Rotate Tool. 오브젝트를 회전시킬 수 있다.

R : Scale Tool. 오브젝트의 크기를 x, y, z축을 이용하여 조절할 수 있다.

T : Rect Tool. 오브젝트의 크기를 사각형 기준으로 조절할 수 있다.

Y : Move, Rotate or Scale selected objects. 다용도 툴. 위치, 회전, 크기 변경이 가능하다.

 

2. 게임 플레이, 멈춤

 

 

- 게임을 플레이 해보기 위한 버튼들. 왼쪽부터 Ctrl + P 재생, Ctrl + Shift + P 일시정지, Ctrl + Alt + P 단계 실행 이다. 게임재생 중 멈춤은 다시 Ctrl + P를 눌러주면 된다.

 

*인터페이스

 

1.Hierarchy / 하이어라키 / 하이어라키 뷰

 

 

- 현재 씬에 사용되는 게임 오브젝트를 관리하는 뷰. 새로운 게임 오브젝트를 생성/삭제 할 수 있다. 계층 구조를 설정할 수 있다.

 

2. Inspecter / 인스펙터 / 인스펙터 뷰

 

 

- 현재 선택한 게임 오브젝트 혹은 애셋의 정보를 보여주는 뷰이다. 컴포넌트의 추가 / 삭제 / 변경이 가능하다. 또한, 게임 오브젝트의 이름, 태그, 레이어 변경도 가능하다.

 

3. Scene / 씬 / 씬 뷰

 

 

- 게임화면을 만들기위해 실질적으로 제작하는 공간. 게임의 오브젝트들을 배치할 수 있다.

 

4. Game / 게임 / 게임 뷰

 

 

- 현재 씬이 실제로 작동하는 모습을 보여준다. 다양한 해상도로 테스트 가능.

반응형

+ Recent posts