버그&에러/Java
The Project: OOO which is referenced by the classpath, dose not exist 문제 해결
2019. 9. 10. 13:12원인: 해당 JAVA Project의 이름과 해당 workSpace 경로의 폴더명이 동일해서 나타나는 문제.
해결: JAVA Project명을 바꾸어 주면 해결 !
원인: 해당 JAVA Project의 이름과 해당 workSpace 경로의 폴더명이 동일해서 나타나는 문제.
해결: JAVA Project명을 바꾸어 주면 해결 !
1. Anaconda 설치
반드시 파이썬을 설치하지 않은 상태에서 아나콘다를 설치할 것 !!
( anaconda는 수학과 과학 패키지를 포함한 파이썬이므로 파이썬을 먼저 설치해줄 필요가 없다. 그런데 python을 먼저 설치해버리면, anaconda에 내장된 python과 기존의 python이 충돌이 일어나 문제가 생기는 것이다. )
최근 텐서플로우가 파이썬3.7버전도 지원을 하게 되면서 현재 가장 최신 버전인 3.7 버전을 받으면 된다.
(참고) Windows 환경에서 Anaconda + Tensorflow 설치문제 해결하기
2. 텐서플로우 + 쥬피터 노트북 설치
출처 : https://zvi975.tistory.com/65
(anaconda Prompt)
> conda update conda
conda create -n py36 python=3.6 anaconda
> conda info --envs
> activate [가상환경 이름]
> conda install tensorflow
(삭제: conda remove 패키지이름)
conda install tensorflow==1.14 (2.0 버전은 tf.placeholder등 인식 불가)
> conda list
> jupyter notebook
* 필요하면 3.6 버전으로 다운그레이드 시켜서 'py36'이라는 이름의 conda가상환경을 만들어주도록 하자. (3.7 버전은 케라스와 호환X)
2-1. import tensorflow 안될 때
https://copycoding.tistory.com/79
* (참고) 파이참(Pycharm) 개발도구 설치 + Tensorflow 설치
(참고) Pycharm에 Tensorflow 설치하는 법
https://webnautes.tistory.com/1173
* (참고) 파이참 콘솔에 뜨는 경고 메세지 없애기
(참고) 텐서플로우 경고 메세지 없애기 : Your CPU supports instructions that this tensorflow binary was not compiled to use AVX
사진출처 : 인프런 유튜브 강의
View : 클라이언트에게 보여지는 페이지, 즉 한마디로 화면
DOM : 화면에 나타나지는 '버튼, 리스트' 등 화면을 구성하는 요소
Model : data
Vue.js의 궁극적인 목적 :
데이터 바인딩, 화면단위를 컴포넌트 형태로 제공하는것
I 심화 디렉티브 (4가지)
v-bind
v-model
v-for
v-on
I v-bind
만약, Html 태그의 속성값을 데이터값으로 사용하려 한다면 어떻게 해야할까 ?
예를 들어, <img src="링크삽입"/> 에서의 데이터값을 사용하고 싶다면,
우리는 <img src={{ image }} /> 또는 <img src=" {{ image }}" /> 를 시도해 볼것이다.
하지만 이렇게 작성할 경우 작동이 되지않거나 오류가 발생한다 !
사용법은 매우 간단하다.
HTML 엘레먼트 에서 src 값을 Vue 엘레먼트의 데이터 중 image 로 설정하고 싶다면,
<img v-bind:src="image"/> 와 같이 사용하면 된다.
v-bind를 생략하여 :src 라고만 써도된다
정상적으로 이미지가 나오는것을 확인 할 수 있다.
그렇다면, 응용을 해보도록 하자.
smile 이라는 변수에 따라 두개의 링크중 어떤것을 이용할지 삼항 연산자를 이용해서 구현해보는 예제이다.
각자 콘솔창에서 app.smile을 false 로 바꾸어서 실행시켜 보도록 하자.
I v-model
v-model : 양방향 바인딩
우리가 지금껏 해왔던 예제들은 단방향 바인딩 이라고 할 수 있다.
단방향 바인딩 이란?
데이터 → 뷰 의 형태로 바인딩이 되어있어서, 데이터의 값이 변하면 바로 바로 업데이트됨
양방향 바인딩 이란?
뷰 ⇄ 데이터 형태로 바인딩하여 데이터가 양 방향으로 흐르게 해주는 것.
즉, 데이터에 있는 값이 뷰에 나타나고, 이 뷰의 값이 바뀌면 데이터의 값도 바뀜.
※ 뷰, 데이터 의 관계도와 그에대한 설명은 다음 강에 업로드 될 예정입니다. :)
입력창에서 원하는 문자열로 바꾸어보자.
그렇다면 이번에는 이전에 개구리 예제를 응용해보자.
I v-for
간단한 for문 예제이다.
이번에는 indexing 을 이용하여 for문을 생성해보자.
index라는변수는 사용자 지정 변수이므로 i 와 같은 변수로 작성해도 상관없다.
I v-on
이벤트 처리 역할 담당
v-on: 대신 @ 를 사용해도 된다.
I 기본 디렉티브 (9가지)
v-text
v-html
v-show
v-if, v-else-if, v-else
v-pre
v-cloak
v-once
I 1. v-text
{{ }} 는 머스태쉬 태그 이다. ( 수염처럼 생겼다 해서 머스태쉬 -ㅅ- )
그렇다면,
{{ name }} 부분을 v- text 를 이용하여 바꾸어보자.
같은 결과를 나타내는것을 알 수 있다.
I 2. v-html
HTML 은 기본적으로 텍스트형태로만 렌더링되게 해주기때문에 태그를 차단하고, XSS 같은것도 차단하기에 유용
하지만, 가끔씩은 html 을 '렌더링' 해야 할 때가 있다.
그럴 땐, “여기서 렌더링 할 건 html 형식이다” 라는걸 지정하기 위해서, v-html 이라는 디렉티브를 사용한다.
v- html 을 지정하지 않았을때는 태그모양 그대로 나온다
v-html 을 적용하면 html형식을 렌더링해서 정상적으로 보여준다.
I 3. v-show
v-show 는 이처럼 해당 element가 보여질지 아닐지 true/false 로 나타낼 수가 있다.
visible 이라는 변수는 사용자 지정이기때문에, 어떻게 설정하든 상관은 없다.
I 4. v-if, v-else-if, v-else
그냥 보면 뭔지 알 수 있다.
I 5. v-pre
이 디렉티브는 특정 엘리먼트를 무시하는데에 사용.
이걸 사용함으로서, Vue 시스템에서 해당 엘리먼트는 지시문이 없다는걸 인식하게 되어 그 엘리먼트 내부의 자식엘리먼트들을 신경쓰지 않고,
그냥 건너뜀
이렇게 함으로써, 컴파일 속도가 증가
v- pre 를 사용하면 위의 지시자들을 무시하고 정상적으로 출력이된다
v-pre 를 지워보면 에러가 발생하는것을 확인할 수 있다.
I 6. v-cloak
Run을 계속 눌러보면, 자바스크립트가 다시 실행이 되는것을 확인할 수 있을것이다.
그 과정에서 우리가 숨겨놨던 엘리먼트들이 정말 짧은순간 동안 깜박이는 현상 발생할것이다.
Why ?
아직 자바스크립트 코드가 실행되기 전 이기 때문 !!
만약 자바스크립트가 실행 되기전에,
즉, Vue 인스턴스가 제대로 준비되기 전 까지 우리의 템플렛을 위한 HTML 코드를 숨기고 싶을 때,
바로 이 v-cloak 이라는 디렉티브를 사용!
이렇듯, CSS부분도 설정해주어야 정상적으로 작동한다.
이제, JSFiddle 에서 Ctrl+Enter (실행) 을 계속 누르면서 어떻게 바뀌었는지 각자 확인해보자.
I 7. v-once
이 디렉티브를 사용하면, 컴포넌트를 초기에 딱 한번만 렌더링해준다. 즉, 자바스크립트에서 사용하는 데이터를 사용하긴하는데, 변동이 없고 한결같은 정적인 부분을 보여줄 떄 사용.
개발자도구(F12)의 콘솔창에서 app.value 의 값을 바꿔가면서 각자 결과를 확인해보자.
I 디렉티브(Directive)란 ? :
말 그대로 '지시문' 이라는 뜻이다.
* 디렉티브의 정의 :
"Vue Element에서 사용되는 속성지정 값"
즉, element에게 ~~한 것을 하라고 명령(지시) 하는것!!
I 기본 Directive 목록
v-text
v-html
v-show
v-if
v-else
v-else-if
v-pre
v-cloak
v-once
I 심화 Directive 목록
v-bind
v-model
v-for
v-on
I 1. 코드 작성환경 : JSFiddle
I 2. CDN 방식 사용
이렇게 아주 간단하게 환경설정을 할 수 있다.
※ 추후, npm을 사용할 작업단계에서는 Atom을 이용하여 작업할 예정이다.
css파일이 적용이 되지않길래 약 30분~1시간 가량을 문법적 오류만 찾고있었다...
css파일은 민감하기때문에 하나의 오류라도 있을시 제대로 적용이 안될때가 종종 있긴하다.
그러나, 분명히 css파일에 문법적 오류도없고 제대로 link를 이용해 가져왔는데도 불구하고 적용이 되지않을 때가 있다.
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" href="css/custom.css"> ← 바로 이부분
<title></title>
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script src="js/bootstrap.js"></script>
</head>
해결방법
<방법 1>
HTML 문서에서는
<link rel="stylesheet" type="text/css" href="css/custom.css">
바로 이 부분을 웹서버에서 캐시에 올려놓고 이전버전을 계속 사용하기 때문에 에러가 발생하는것이다.
<link rel="stylesheet" type="text/css" href="css/custom.css?ver=1"> 와 같이 버전 정보를 같이 보내서,
웹서버에서 새로운 css파일을 캐시에 로드하여 css파일의 수정된내용이 반영될 수 있도록 하면된다.
<방법 2>
(크롬) 방문기록 - 인터넷 사용 기록 삭제
JSP 실행중 흰화면 발생에러
& The value for the useBean class attribute ... is invalid 에러
Step1 : 제일먼저, 서버단 문제인지 아닌지 확인한다.
뾰족한 오류 메세지가 발생하지 않는경우, 위의 예처럼 어디서 오류가 발생하는지 알기위해 의심되는 코드 사이사이에
System.out.println() 문장을 삽입해놓는다.
위의 콘솔창에서처럼 검정글씨가 뜬다면 서버쪽에는 문제가 없는것이다.
( 만약, 검정글씨조차 뜨지않는다면 서버쪽문제이므로 Tomcat을 다시 설치하거나, 환경변수 설정자체가 잘못됐을 가능성이 크다. )
Step2 : 서버딴 문제는 아니지만, 여전히 서버를 실행시키면 흰화면이 나오는경우.
로그인에 대한 int 값을 받아오는 함수 부분에서 각 상황에따른 return 값에 주목하자.
이 UserDAO 클래스에서의 return 값과 loginAction에서 이를 끌어다쓰는 부분에서의 return 값이 일치해야한다.
( tip. 로직을짤때는 try~catch 부분으로 묶어서 예외처리가 일어날수있게끔 환경을 만들어주는것이 중요하다. )
Step3 : PrintWriter 변수명을 바꾸어보자 & Stirng dbURL 의 주소를 수정하자.
이 response 라는 객체는 매우 민감한 객체이므로 설정해주는 변수명에 주의할 필요가있다.
필자는 맨처음 PrintWriter 의 변수명으로 script 를 넣어주었는데, 이를 outter 라는 변수명으로 바꾸어주었다. (out으로 바꾸면 중복에러가 일어난다)
아무튼, 이렇게 response 객체의 변수명을 바꾸어보도록하자.
또한,
String dbURL의 설정부분에서 마지막 데이터베이스명인 /BBS 다음에, ?useSSL=false 를 설정해줌으로써, SSL로 인한 에러발생도 예방하도록 하자.
아무튼 이렇게 JSP 실행중 흰화면 발생에러 및 javaBean invalid 에러 해결방법에 대하여 알아보았다.
톰캣오류.
먼저, Dynamic Web Project 우클릭 - Build Path - Configure Build Path
그다음,
톰캣이 제대로 Libraries 안에 들어가 있는지 확인후
아래 콘솔창에 Tomcat v8.5 Server at localhost [Started, Synchronized] 부분을 더블클릭하여, 저 포트번호 3개를 전부 바꾸어 준다. (1개만 바꾸면 안된다)
창을 닫으면 Save 할지 여부가 나오는데 변경내용을 Save 후, 다시 서버를 껐다가 실행시키면 해결 완료
java was started but returned exit code=13 문제
& eclipse.exe 파일 실행오류
jdk다운로드 후, 환경변수 설정도 제대로 했지만 eclipse.exe 가 실행되지 않아 매우 당황하였다.
'java was started but returned exit code=13' 해결방법에는 흔히 검색을 하면 나오는 javaw.exe 파일을 이용하는 방법이있다.
하지만, 필자는 이 방법으로 해결이 되지않아, 다른 방법을 소개할까 한다.
먼저, cmd 에서 java -version 과 javac -version 이 같은지 확인한다.
만약, 다르다면 아래와 같은 방법을 해보도록 하자.
고급시스템설정 - 환경변수 클릭
Path - 편집 클릭
이와같이 이전에 설치한 jdk 파일경로가 있는부분이 맨위에있는 \Oracle... 부분보다 밑에있어서 발생하는 현상이다.
이렇게 맨 위로 올려주도록 하자.
다시 cmd 창을 켜서 java -version 과 javac -version 을 확인후, 일치한다면 오류가 해결 될 것이다.
만약, 이방법으로도 해결되지않을경우, jdk 를 버전을 바꾸어 다시 설치하고 환경변수 설정을 다시 해주면 해결될 수 도 있다.
필자는 jdk1.8.0_201에서 jdk1.8.0_131 로 바꾸어서 환경변수를 설정해주었다. (이게 효과가 있을지는 잘 모르겠다 -_-)
3개월 만에 100점이상의 점수를 올려 고득점을 맞은 비법은 바로 "리스닝"이다.
토익은 무조건 리스닝에서 점수를 따야된다.
공부법이라 해서 화려한 스킬이나 방법이 아니고, 말 그래도 정공법이니 그대로 따라하면 된다.
듣기
part1 : 그림 ★
토익 듣기 파트중 가장 쉬운 부분에 해당한다. 사실 시험에서 나오는 그림에 관한 단어들은 정해져있다.
이 정해진 몇몇 단어들을 크게 벗어나는 문제는 잘 출제되지 않는다.
각설하고, part1은 평소 듣기 연습을 할때, 나오는 모든 단어를 한권의 공책에 정리 해 두도록 하자.
평소 정리해둔 단어만 보아도 만점을 받을 수 있다.
part2 : 짧은지문 ★★★★★
듣기 고득점을 맞고, 못맞고 차이가 여기서 벌어진다 해도 과언이 아닐정도로 어렵다.
그러나, part2는 그림도 없고, 보기 지문도 없기 때문에 어렵게 느껴지는것 뿐이다.
Why,What,How,When 등의 의문사에 집중해서 듣도록하자. 평서문으로도 많이 출제되니 주의 !
실제 시험에서 킬링파트로 출제되는 문제들은... 쓰는 트릭이 비슷하다.
연습을 하다보면 자연스레 그 트릭들이 몇가지 보이게 될것이다.
요행을 바라지말자. 하는 만큼 맞는다.
ex)
지문 : 김사원은 해외여행갔다가 언제 돌아오나요 ?
정답 : 오늘 그는 회사에 있어요.
( 언제 돌아오는지 명확히 말하는 선택지 없음 )
part3 : 남&여 대화 ★★
part3 부터는 3지문이 묶여있는 지문이 등장한다.
사실 이부분은 리스닝 에서 그림파트 다음으로 쉬운파트이다.
왜?
남,여가 번갈아가며. 말을 하기 때문이다.
예를들어, 문제에서 남자의 OO말의 의도는? 이라고 물으면 그 부분만 집중해서 들으면 되는것이다.
part3 와 part4는 연습할때 가장 중요한것이 있다.
바로, 듣기 지문이 시작되기 전에 그 3묶음 문제들의 글씨를 모두 읽어 놓아야 한다.
사실 이부분은 듣기 문제라기보다는 독해실력이 더 많이 가미되는부분이다.
혹시, 듣기가 시작되기전 글씨를 모두 읽지 못하여도 크게 상관은없다.
다만, 다 읽지 못하겠으면 3개의 질문이라도 읽어놓아야한다.
이걸 읽지 못하고 듣기를 시작하면 제 아무리 잘푸는 사람이라도 잘 안들리기 마련이다.
정리하면...
연습할때 듣기가 끝나는 동시에, 바로 다음 지문을 읽는습관을 들이도록하자.
그렇다. 애매한 문제 과감히 버리라는 얘기다. 고민하는 순간 다음 3지문 모두 ㅂㅂ.
part4 : 독백 ★★★★
part4는 ... part2 다음으로 어려운 부분이다.
part3에서는 남&여가 번갈아 가며 말을 했지만, part4 는 남 또는 여 혼자서 말을한다.
상당히 어렵다.
왜?
이미 part1~3 까지 듣기를 해오는 와중에 당신은 이미 집중력이 바닥인 상태이다.
듣기 난이도 자체도 꽤 어렵다.
( part3와 마찬가지로 당연히 지문은 먼저 읽어놓자. )
팁을 주자면.. 시험장에서 part4 가 시작하기전, 목캔디나 졸음껌 등을 하나 먹길 바란다.
여기서 부터는 집중력 싸움이기 떄문에 이 약간의 집중력이 엄청난 점수 차이를 만든다.
독해
독해는 딱히 공부법이랄게 없다. 많이 하는 사람이 고득점 맞는다.
연습하는만큼 점수는 나온다.
토익은 복습. 무조건 복습이다.
듣기를 한번 듣고, 해설 스크립트 읽고 덮을 거라면 성적은 절대 오르지 않는다.
듣기는 앞서 언급했듯이, 절대 한번듣고, 해설보는식으로 공부를 하면 안된다.
다음의 절차를 꼭 따라야만 듣기 점수는 오른다.
복습법
Step1.
문제를 푼다. 채점을 하되, 틀린문제는 답을 적지않는다.
Step2.
틀린문제를 다시푼다.
왜?
문제를 틀리는것은 둘중 하나이다.
1. 집중력이 떨어져서 틀리거나, 2. 몰라서 틀리거나
만약, 1.번의 이유떄문에 틀린거면 그 문제는 다시 복습할 필요가 없다.
그렇기에 다시푼다.
Step3.
이제 Step2.에서 틀린것만 해설지 스크립트를 보고 다시 듣는다.
Step4.
방금 연습한 듣기mp3 파일중 틀린문제를 핸드폰에 넣고, 1.0배속으로 평소에 듣고 다닌다. (버스안, 밥먹을때, 길걸어다닐때...
이게 익숙해지면, 이제 그 파일들을 1.2배속으로 평소에 듣고 다니도록 하자.
이것마저 익숙해지면, 그때 그 mp3파일을 삭제하면 된다.
(맞은 문제는 다시 들을 필요없다.)
자, 이렇게 하면 한 지문에 대해서 적어도 10번 이상은 복습을 하게된다.
다시말하지만, 듣기는 이렇게 하지 않으면, 절대 성적이 오르지 않는다.
항상 피지컬을 올리기위해서는 극한의 상황에서 연습을 해야한다.
시중의 해커스토익 1000제 실전LC (1) 책이 정말 어렵게 나오기로 유명한 책이다.
이 책으로 공부를 하고 시험장에 가서 들으면 훨씬 쉽게 느껴질 것이다. (필자도 이걸풀면 20개씩 틀리는날도 있었다)
명심하자. 항상 연습을 힘들게 해야, 시험때 편하게 풀 수 있다.
ps. 시험장에서 독해책,단어책보고 있는사람은 바보다.
ps. 시험장에서는 감독관이 이어폰을 빼라 할때까지 귀에서 이어폰을 빼지말자.
ps. 자신이 900이상 점수 맞을거아니면 , 독해 part7은 공부하지 말자. 왠만큼 공부를 해서는 점수가 오르지 않는다. 포기하고 듣기에 집중하자.