기본적인 분석

마지막 업데이트: 2022년 2월 23일 | 0개 댓글
  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 카카오스토리 공유하기
종가와 고가의 가격이 같거나 종가와 저가의 가격이
같아 꼬리가 생기지 않는 경우도 있는데
이를 각각 '장대양봉' , '장대음봉' 이라고 한다.

보통 장대양봉은 떡상의 신호탄, 장대음봉은 떡락의
신호탄으로 생각하면 된다. 언제든 예외는 있다.

클래스 로딩 문제 분석하기, Part 2: 기본적인 클래스 로딩 예외(Exception)

네 편의 기술자료 시리즈를 통해 자바 개발 중에 발생할 수 있는 문제들을 이해하고 해결하는데 도움이 되는 자바™ 클래스 로딩 문제에 대해 설명합니다. Part 2에서는, IBM Hursley Labs의 Lakshmi Shankar와 Simon Burns가 매우 단순하지만, 개발자들을 당황시키는 몇 가지 예외(Exception)들을 분석합니다.

Simon Burns, Java Technology Center Development Team, IBM Hursley Labs
Lakshmi Shankar, Java Technology Center Development Team, IBM Hursley Labs

이 글에서는 애플리케이션을 실행할 때 생기는 다양한 클래스 로딩 예외(Exception)에 대해 살펴보도록 하겠다. 이러한 예외(Exception)는 일상적으로 보는 것이지만 자바 개발자들은 잘 이해를 못하는 경우가 있다. 각각의 예외들을 보면서, 이들이 어떻게 작동하는지, 원인은 무엇인지, 해결책은 어떤 것이 있는지를 상세한 예제들을 통해 설명하겠다. 가장 일반적인 ClassNotFoundException부터 시작해서 ExceptionInInitializerError 같은 잘 알려지지 않은 예외(Exception)로 옮겨가도록 하겠다.

이 글을 시작하기 전에, 클래스 로더 델리게이션 모델(class loader delegation model)과 클래스 링크(class linking)의 단계를 이해해야 한다. 본 시리즈의 첫 번째 기술자료를 참조하기 바란다.

ClassNotFoundException은 로딩 단계 동안 발생하는 가장 일반적인 유형의 클래스 로딩 예외(Exception)이다. 자바 스팩은 다음과 같이 ClassNotFoundException을 설명하고 있다.

애플리케이션이 다음과 같은 것을 사용하여, 스트링 이름을 통해 클래스에서 로딩을 시도할 때 예외(Exception)가 발생한다:

Class 클래스의 forName() 메소드
ClassLoader 클래스의 findSystemClass method()
ClassLoader 클래스의 loadClass() 메소드

하지만, 지정된 이름을 가진 클래스에 대한 정의는 찾을 수 없다.

따라서, ClassNotFoundException은 클래스를 로딩하려는 분명한 시도가 실패할 경우에 던져진다. Listing 1의 테스트 케이스는 ClassNotFoundException 예외(Exception)의 코드 예제이다.

071217_01-2_p1.jpg

이 테스트 케이스는 클래스 로더(MyClassLoader)를 정의하는데, 이것은 존재하지 않는 클래스(DoesNotExist)를 로딩할 때 사용된다. 이것이 실행되면 다음과 같은 예외(Exception)가 발생한다.

071217_01-2_p2.jpg

이 테스트에서는 loadClass()에 대한 호출을 사용하여 로드를 시도하기 때문에 ClassNotFoundException이 던져진다.

ClassNotFoundException을 통해서 이 클래스 로더는 클래스를 정의하는데 필요한 바이트코드(bytecode)가 클래스 로더가 찾고 있는 장소에 존재하지 않음을 알려준다. 이러한 예외(Exception)는 픽스가 간단하다. 이것이 IBM verbose 옵션으로 체크하여 사용 중인 classpath가 설정되는지를 확인한다. (이 옵션에 대한 자세한 내용은 본 시리즈의 첫 번째 기술자료를 참조하기 바란다.) classpath가 정확하게 설정되었지만, 계속 에러가 나타난다면, 원하는 클래스가 classpath에 없는 것이다. 이를 픽스하려면, 클래스를 디렉토리 또는 classpath에 지정된 JAR 파일로 옮기거나, 클래스가 classpath에 저장된 장소를 추가한다.

NoClassDefFoundError는 로딩 단계 동안 클래스 로더에 의해 던져진 또 다른 예외(Exception)이다. JVM 스팩은 NoClassDefFoundError를 다음과 같이 정의하고 있다.

자바 가상 머신(Java virtual machine) 또는 ClassLoader 인스턴스가 클래스 정의 중 로딩을 시도하고(정상적인 메소드 호출의 일환으로, 또는 새로운 식을 사용하여 새로운 인스턴스를 생성하는 것의 일환으로), 이 클래스에 대한 어떤 정의도 찾을 수 없을 때 예외(Exception)가 던져진다.

현재 실행 중인 클래스가 컴파일 될 때 searched-for 클래스 정의가 존재했지만, 그 정의는 더 이상 찾을 수 없다.

NoClassDefFoundError는 실패한 클래스 로드의 결과로 생기는 예외(Exception)이다.

Listing 2에서 Listing 4까지의 테스트 케이스는 클래스 B의 로딩이 실패했기 때문에 만들어진 NoClassDefFoundError를 보여주고 있다.

071217_01-2_p3.jpg
071217_01-2_p4.jpg
071217_01-2_p5.jpg

이러한 리스팅에서 코드를 컴파일 했다면, B의 classfile을 제거하라. 이 코드가 실행되면 다음과 같은 에러가 생긴다.

071217_01-2_p6.jpg

Class A는 Class B를 오버라이드(override)한다. 따라서, Class A가 로딩될 때, 클래스 로더는 Class B를 내재적으로 로딩한다. Class B는 존재하지 않기 때문에, NoClassDefFoundError가 던져진다. 클래스 로더가 Class B를 로딩 명령을 받으면 (예를 들어, loadClass("B") 호출), ClassNotFoundException이 던져진다.

확실히, 이 특수한 예제에서 문제를 해결하려면, Class B는 합당한 클래스 로더의 classpath에 존재해야 한다. 이 예제는 단순하고도 비현실적이다. 많은 클래스들을 갖고 있는 복잡한 기본적인 분석 실제 시스템에서는, 패키징 또는 전개 동안 클래스가 소실될 때 이 같은 상황이 발생할 수 있다.

이 예제에서 A는 B를 확장한다. 하지만, A가 메소드 매개변수 또는 인스턴스 필드로서 B를 참조한다면 같은 에러가 여전히 발생한다. 두 클래스들 간 관계가 상속이 아닌 참조라면, A를 로딩하는 동안이 아닌, A를 처음 사용할 때 예외(Exception)가 던져진다.

클래스 로더가 던질 수 있는 또 다른 예외(Exception)는 ClassCastException이다. 이것은 유형 비교에서 비호환 유형의 결과로 던져진다. JVM 스팩인 이 ClassCastException 예외(Exception)를 다음과 같이 정의하고 있다.

이는 코드가 인스턴스가 아닌 것의 하위 클래스로 객체를 캐스팅(cast)할 때 생기는 예외(Exception)이다.

Listing 5는 ClassCastException 예외(Exception)의 예제이다.

071217_01-2_p7.jpg

Listing 5에서, storeItem() 메소드가 호출되고, Integer 어레이, int, 그리고 스트링으로 전달한다. 하지만, 내부적으로는 메소드는 두 가지 일을 수행한다.

String 객체 유형을 Object 유형으로 던진다. (매개변수 리스트)
Object 유형을 Integer 유형으로 던진다. (메소드 정의)

프로그램이 실행될 때, 다음과 같은 예외(Exception)가 발생한다.

071217_01-2_p8.jpg

이 테스트 케이스는 String 유형을 Integer로 변환하려고 했기 때문에 예외(Exception)가 생겼다.

테스트되고 있는 객체(Listing 5의 item)과 캐스팅 될 대상 클래스(Integer)가 있다면, 클래스 로더는 다음 규칙들을 체크한다.

정상 객체 (non-array): 이 객체는 대상 클래스의 인스턴스이거나 대상 클래스의 하위 클래스여야 한다. 대상 클래스가 인터페이스라면, 그 인터페이스를 구현할 경우 하위 클래스로 간주된다.
어레이 유형: 대상 클래스는 어레이 유형 또는 java.lang.Object, java.lang.Cloneable, 또는 java.io.Serializable이 되어야 한다.

위 규칙들 중 하나라도 위반하면, 클래스 로더는 ClassCastException을 던진다. 이 같은 예외(Exception)를 해결하는 가장 쉬운 방법은 객체가 캐스팅 될 유형이 위에 언급한 규칙에 순응하는지를 검사하는 것이다. 어떤 경우에는 클래스 캐스팅을 수행하기 전에 instanceof 체크를 사용하는 것이 좋다.

클래스 로더는 네이티브 호출을 적절한 정의로 연결할 때 중요한 역할을 한다. UnsatisfiedLinkError는 프로그래밍이 존재하지 않는 라이브러리나 잘못 기본적인 분석 배치된 기본 라이브러리를 로딩할 때 링크 단계(linking phase)의 끝에서 발생한다. JVM 스팩은 UnsatisfiedLinkError를 다음과 같이 설명하고 있다:

JVM이 native로 선언된 메소드의 적절한 기본 언어 정의를 찾을 수 없을 때 발생한다.

기본 메소드가 호출될 때, 클래스 로더는 그 메소드를 정의하는 기본 라이브러리를 로딩하려고 한다. 그 라이브러리를 찾을 수 없을 경우 에러가 생긴다.

Listing 6은 UnsatisfiedLinkError의 테스트 케이스이다.

071217_01-2_p9.jpg

이 코드는 call_A_Native_Method() 메소드를 호출하는데, 이것은 기본 라이브러리인 myNativeLibrary에서 정의된다. 이 라이브러리는 존재하지 않기 때문에, 프로그램이 실행될 때 다음과 같은 에러가 발생한다.

071217_01-2_p10.jpg

기본 라이브러리의 로딩은 Listing 6에서 나온 UnsatisfiedLinkErrorTest의 클래스 로더인 System.loadLibrary()를 호출하는 클래스의 클래스 로더에 의해 초기화 된다. 이것이 어떤 클래스 로더인지에 따라, 다른 위치가 검색된다.

부트스트랩 클래스 로더에 의해 로딩된 클래스의 경우, sun.boot.library.path가 검색된다.
확장 클래스 로더에 의해 기본적인 분석 로딩된 클래스의 경우, java.ext.dirs가 검색되고, 그 뒤를 이어 sun.boot.library.path와 java.library.path가 검색된다.
시스템 클래스 로더에 의해 로딩된 클래스의 경우, sun.boot.library.path가 검색되고, 그 뒤를 이어 java.library.path가 검색된다.

Listing 6에서, UnsatisfiedLinkErrorTest 클래스는 시스템 클래스 로더에 의해 로딩된다. 참조된 기본 라이브러리를 로딩하기 위해 이 클래스 로더는 sun.boot.library.path와 java.library.path를 검색한다. 이 라이브러리는 이 두 개의 위치에서 사용할 수 없으므로, 클래스 로더는 UnsatisfiedLinkageError를 던진다.

라이브러리 로딩에 사용된 클래스 로더를 이해했다면, 이 라이브러리를 올바른 위치에 두어서 이러한 유형의 문제를 해결할 수 있다.

JVM 스팩은 ClassCircularityError를 다음과 같이 설명하고 있다:

클래스나 인터페이스는 자기 자신의 하위 클래스나 하위 인터페이스가 되므로 클래스나 인터페이스는 로딩될 수 없다.

이 에러는 링크 단계에서 생긴다. 자바 컴파일러는 이와 같은 순환적인 상황이 발생하지 않도록 하기 때문에 약간 이상한 에러이다. 하지만, 이 에러는, 클래스들을 개별적으로 컴파일하고 이들을 한데 모각해 보자. 우선, Listing 7과 8에서 클래스를 컴파일 한다.

071217_01-2_p11.jpg

071217_01-2_p12.jpg

그리고 나서, Listing 9와 10에서 클래스를 개별적으로 컴파일 한다.

071217_01-2_p13.jpg

071217_01-2_p14.jpg

마지막으로, Listing 7에서 Class A와 Listing 10에서 Class B를 가져다가, A 또는 B를 로딩하는 애플리케이션을 실행한다. 있을 법 하지 않는 상황처럼 보이지만, 다양한 많은 부분들이 결합된 복잡한 시스템에서는 가능한 일이다.

이 문제를 해결하려면 순환적인(cyclic) 클래스 계층(hierarchy)을 피해야 한다.

JVM 스팩에서는 ClassFormatError를 다음과 같이 설명하고 있다:

요청 받은 컴파일 된 클래스 또는 인터페이스를 지정하는 바이너리 데이터가 잘못 구성되었다.

이 예외(Exception)는 클래스 로딩의 링크 단계 중 확인 단계(verification stage) 동안 발생한다. 바이너리 데이터는 바이트코드가 변경되었을 경우, 예를 들어, 메이저 넘버 또는 마이너 넘버가 변경되었을 경우에 잘못 구성될 수 있다. 바이트코드가 교묘하게 해킹되었거나, 네트워크를 통해서 클래스 파일을 전송할 때 에러가 발생할 경우 이러한 상황이 생길 수 있다.

이러한 문제를 해결하는 유일한 방법은 재컴파일을 통해서, 수정된 bytecode를 얻는 것이다.

JVM 스팩은 ExceptionInInitializer를 다음과 같이 설명하고 있다:

이니셜라이저가 E라는 예외(Exception)를 갑자기 던지고 종료하고, E의 클래스가 Error 또는 이것의 하위 클래스들 중 하나가 아니라면, ExceptionInInitializerError 클래스의 인스턴스가 E라는 인자와 함께 생성되어 E를 대신하여 사용된다.
JVM이 ExceptionInInitializerError 클래스에서 새로운 인스턴스를 만들기를 시도하지만 Out-Of-Memory-Error가 발생하여 그렇게 할 수 없을 경우, OutOfMemoryError 객체가 대신 던져진다.

Listing 8의 코드는 ExceptionInInitializerError 예제이다.

071217_01-2_p15.jpg

정적 코드 블록에 예외(Exception)가 발생할 때, ExceptionInInitializerError를 사용하여 예외(Exception)는 자동으로 포착되고 래핑된다. 아웃풋은 아래와 같다.

071217_01-2_p16.jpg

이 에러는 클래스 로딩의 초기화 단계 동안에 발생한다. 이를 픽스하는 방법은 ExceptionInInitializerError(Caused by:: 아래 스택 트레이스에서 볼 수 있음)를 일으켰던 예외(Exception)를 검사하여 이 예외(Exception)를 중지하는 방법을 찾을 수 있다.

이 글에서는 다양한 클래스 로딩 예외(Exception)들에 대해 설명했다. 다음 글에서는 보다 복잡한 애플리케이션을 실행할 때 발생하는 클래스 로딩 문제들에 대해 알아보기로 하겠다.

"Understanding the Java ClassLoader" (Greg Travis developerWorks, 2001년 4월): 클래스 로딩 소개

코인일기#1] 기본적인 차트분석 : 그래프 보는 법, 기본 용어

주변에 가상화폐로 돈을 벌었다는 사람들이 많아지면서
언제 어떤 코인에 돈을 걸면 좋을 지 물어보는 친구들도
많아졌다. 난 너흴 잃고 싶지 않아..
그래서 기본적인 그래프 보는 법이라도 알려주면
좋겠다고 생각되어 작성하게 되었다.

일단 그래프를 이해해보자.
- 시가 : 처음 거래된 가격을 뜻한다.
- 종가 : 마지막으로 거래된 가격을 뜻한다.
- 저가 : 가장 낮게 거래된 가격을 뜻한다.
- 고가 : 가장 높게 거래된 가격을 뜻한다.

그렇담 그래프를 그려보며 이해를 해보자.
1.시가 : 500
2.종가 : 750
3.고가 : 1000
4.저가 : 250
인 차트를 예로들어 순서대로 그려보면

이렇게 된다.
처음에 시가를 표시하고 종가를 표시한 후 올랐는지
내렸는지에 따라 색을 다르게 칠해준다. 그 후 저가와
고가를 찍고 꼬리를 그려준다.
가격이 올랐을 경우 이를 '양봉' 이라 하는데 초록색
기둥이 메로나를 연상시켜 '메로나' 라고도 한다.
가격이 내렸을 경우 이를 '음봉' 이라 하고 빨간색
기둥이 불기둥을 연상시켜 '불기둥' 이라고도 한다.
(양봉, 음봉을 빨강/파랑 으로 표시하는 거래소도 있다.)

KakaoTalk_20171229_125243796.jpg

종가와 고가의 가격이 같거나 종가와 저가의 가격이
같아 꼬리가 생기지 않는 경우도 있는데
이를 각각 '장대양봉' , '장대음봉' 이라고 한다.

보통 장대양봉은 떡상의 신호탄, 장대음봉은 떡락의
신호탄으로 생각하면 된다. 언제든 예외는 있다.

떡상 : 가격이 급격히 오른다는 뜻
떡락 : 가격이 급격히 떨어진다는 뜻

이것들이 그래프를 이해하는 기본이라면
그래프를 분석하는데에 중요한 것은 바로
거래량이다.
바로 그래프를 보며 확인해 보자.

이는 스팀달러의 최근 그래프이다.
설명하기 편한 부분을 떼어왔다.
여기서 거래량은 바로 뒤에 회색 기둥인데,
첫날 장대양봉이 있었고 거래량도 많았다. 그 뒤
둘째날도 떡상을 했고 셋째날은 꼬리가 생겼다.
오르긴 했지만 저 부분에서 매도를 하는 사람들과
매수를 하는 사람들이 경쟁을 했다는걸 알 수 있다.
넷째날 다시 경쟁을 하였는데 매도세가 조금 앞선 걸
볼 수 있다. 매도세가 앞섰지만 거래량이
적게 나타났는데, 이럴 땐 거래량에 초점을 두어
'매수세가 약했다' 고 한다.

--거래량이 많았을 때--
-주가 상승 : 매수세가 강하다.
-주가 하락 : 매도세가 강하다.
--거래량이 적었을 때--
-주가 상승 : 매도세가 약하다.
-주가 하락 : 매수세가 약하다.


이렇게 불이 났는데 거래량까지 폭발했을때. 애도
그만큼 저 지점에서 물린 사람들이 많단 얘기다.
(자의로 존버하는 것과 물려서 강제로 존버하게 되는
멘탈의 차이는 겪어봐야 안다..)
저 지점에 물린 사람들이 많다는 것은 나중에 가격이
상승하게 될 때 물렸던 사람들이 안도를 하며
본전인 가격에 팔 가능성이 높다는 뜻이다. 즉, 매도벽이 기본적인 분석
높다고 볼 수 있다. 저 기둥을 뚫어내려면
많은 인내와 노력이 필요해 보인다.

마지막으로 '갭 상승', '갭 하락'을 알아보자.
이 그래프는 나의 첫 기도매매법으로 투자한
퍼스트블러드 라는 코인이다. 인생교육 시켜주신 코인

그래프를 보면 둘째날에 시가가 깜빡이도 없이
바닥을 찍으며 들어왔다. 이와 같이 구간에 없는 곳에서
시작 하는 것을 '갭 상승', '갭 하락' 이라고 하는데
이 처럼 갭을 이루고 떨어져서 시작하는 것을 '갭 하락'
이라고 한다. (갭 상승은 상승해서 시작)
보통 갭 상승은 매수의 신호이고 갭 하락은 매도의
신호이지만 코인판에선 전혀 예측이 안된다.
갭 하락 후 전 날보다 몇 배가 뛰어버린 모습이다.
퍼스트블러드가 연이은 하락세로 거래량이 적었었는데
이 날의 기적을 그분들의 장난질로 보는 사람도 있다.

추가로 차트 관련 용어 몇 개 더 적어보면

익절 : 이득보고 있는 상황 중 더 이상 오르지 않을 것이라 판단 하여 팔아 버리는 것.

손절 : 손해보고 있는 상황 중 더 떨어질거라 판단하여 팔아 버리는 것.

데드캣 바운스 : 고양이를 사랑하시는 분들 때문에 차마 적지 못하겠네요 (=회광반조)

회광반조 : 사람이 죽기전에 일시적으로 몸이 좋아지는 때가 있는데 이를 회광반조라 한다. 이미 가치를 잃어 계속 떨어지는 코인이지만 잠깐 반등 하는 상황을 표현.(=데드캣 바운스)

끝으로 이건 그저 기본적인 개념들 뿐이고
미지의 코인판에서는 한치 앞도 알 수가 없다.
그래프를 보며 이렇게도 생각해보고 저렇게도
생각해보며 자기 자신을 믿는 것이 최고가 아닐까싶다.

Imgur


코인들아 한번 더 가즈아아아아아.

[Ourselves 캠페인]
셀프보팅을 하지 않고 글을 올리시고
ourselves 테그를 달아 주시면
어떤 일이 일어날까요?
긴 젓가락으로 서로 먹여주는 천국이 이뤄지지 않을까요?

Google Forms로 유용한 정보 빠르게 얻기

목록을 붙여넣는 것만큼이나 쉽게 여러 질문 유형 중에서 선택하고 드래그 앤 드롭하여 질문을 재정렬하고 값을 맞춤설정할 수 있습니다.

정돈된 설문조사 및 양식 전송

색상, 이미지, 글꼴을 맞춤설정하여 디자인을 조정하거나 조직의 브랜딩을 반영합니다. 또한 답변을 기반으로 질문을 표시하는 맞춤 로직을 추가하여 보다 원활한 환경을 제공합니다.

자동 요약이 포함된 응답 분석

응답 데이터가 실시간으로 업데이트되는 차트를 확인하거나 Google Sheets로 원시 데이터를 열어 심층 분석하거나 자동화할 수도 있습니다.

어디서나 설문조사 작성 및 응답

화면의 크기에 관계없이 이동 중에도 액세스하여 양식을 만들고 수정할 수 있습니다. 사용자는 모든 휴대기기, 태블릿 또는 컴퓨터를 사용하여 어디서나 설문조사에 응답할 수 있습니다.

함께 양식을 작성하고 결과 분석

Google Docs, Sheets, Slides와 마찬가지로 공동작업자를 추가하여 실시간으로 함께 질문을 작성하세요. 그런 다음 여러 버전의 파일을 공유하지 기본적인 분석 않고도 함께 결과를 분석할 수 있습니다.

정확한 응답 데이터로 작업

내장된 인텔리전스 기능을 사용하여 응답 유효성 검사 규칙을 설정하세요. 예를 들어 이메일 주소의 형식이 올바른지 또는 숫자가 지정된 범위 내에 있는지 확인할 수 있습니다.

이메일, 링크 또는 웹사이트를 통해 양식 공유

양식을 웹사이트에 삽입하거나 소셜 미디어에 링크를 공유하여 특정 사용자나 광범위한 잠재고객을 대상으로 간편하게 공유할 수 있습니다.

한빛아카데미

IT CookBook, 데이터 과학 기반의 파이썬 빅데이터 분석

4차 산업혁명, 데이터 과학, 빅데이터의 관계를 이해하고 빅데이터 분석에 적용할 데이터 과학 방법론을 배웁니다. 빅데이터 분석에 필요한 핵심 파이썬 문법을 살펴보고 빅데이터 수집 방법으로 유용한 파이썬 크롤링 방법도 실습과 함께 살펴봅니다.

기본 분석부터 머신러닝 기반의 프로젝트까지 14개 핵심 분석 방법을 실습으로 배울 수 있습니다.

데이터 과학 방법론과 빅데이터에 대한 이해를 바탕으로 통계 분석, 텍스트 빈도 분석, 지리 정보 분석과 같은 기본적인 분석 프로젝트를 실습으로 배울 수 있습니다. 그리고 머신러닝의 지도 학습 방식인 회귀, 로지스틱 회귀, 결정 트리를 사용하는 분류 분석과 비지도 학습의 K-평균 군집화를 프로젝트로 다루고 텍스트 마이닝 프로젝트로 실습을 마무리합니다.

데이터 과학 방법론으로 배우는 파이썬 빅데이터 분석 프로젝트

데이터 과학의 개념, 파이썬 기초, 데이터 크롤링 방법을 익힌 후 14개의 프로젝트를 ‘연구 목표 설정→데이터 수집→데이터 준비→데이터 탐색→데이터 모델링→결과 시각화’ 순의 데이터 과학 방법론에 따라 실습하는 책입니다. 통계 분석, 텍스트 빈도 분석, 지리 정보 분석부터 머신러닝 기반의 회귀 분석, 분류 분석, 군집 분석, 텍스트 마이닝 등의 핵심 분석 방법과 시각화 기법도 함께 익힐 수 있습니다.

1.png

현재 서경대학교 소프트웨어학과 조교수로 재직 중입니다. 빅데이터&AI 프로젝트 컨설턴트와 프로젝트관리기술사로 활동하고 있으며 인공지능교육원에서 교육 콘텐츠를 개발하고 있습니다. 대표 저서로는 『자바로 배우는 쉬운 자료구조』(2009년 우수학술도서 선정), 『데이터 과학 기반의 파이썬 빅데이터 분석』 등이 있습니다. 주요 연구 분야는 소프트웨어 공학, 머신러닝/딥러닝 알고리즘, 딥러닝 기반 자연어 처리이며 자료구조, 빅데이터 마이닝, 데이터 크롤링 및 분석 등을 강의하고 있습니다.

ScienceON Chatbot

고등학교 과학 교과서에 제시된 화학반응속도 측정을 위한 기본적인 실험의 분석 및 개선 원문보기 인용 Full Text XML

Analysis and Improvement of the Fundamental Experiments for Measuring Chemical Reaction Rates in the High School Science Textbooks

저자의 다른 논문

참고문헌 (25)

  1. 1. Ministry of Education Science Curriculum; Daehan Textbook Publishing: Seoul, Korea, 2001. pp 13-17
  2. 2. Kwon, J.-S.; Kim, B.-G.; Woo, J.-O.; Jeong, W.-H.; Jeong, J.-W.; Choi, B.-S. Theory of Science Education; Education Science Publishing: Seoul, Korea, 2003. pp 1-9
  3. 3. White, R. T. Int. J. Sci. Educ. 1996, 18, 761 상세보기
  4. 4. Kim, H.-B.; Kim, D.-U. J. Kor. Assoc. Res. Elem. Sci. Educ. 1995, 14, 163
  5. 5. Jeong, W.-H. J. Kor. Bio. Soc. 1981, 9, 3
  6. 6. Kim, H.-J.; Kim, W.-G.; Park, H.-J. J. Kor. Chem. Soc. 1999, 43, 5
  7. 7. Ryu, O.-H.: Choi, M.-Y.; Song, J.-H.; Kweon, J.-G.; Baik, S.-H.; Park, K.-T. J. Kor. Chem. Soc. 2001, 45, 481
  8. 8. Ryoo, J.-J.; Park, W.-K. J. Kor. Chem. Soc. 2003, 47, 401 원문보기 상세보기
  9. 9. Jang, R.-H.; Lee, K.-O.; Lee, J.-S.; Seo, J.-S. J. Kor. Chem. Soc. 2003, 47, 79 원문보기 상세보기
  10. 10. Sin, D.-H.; Lee, S.-K.; Choi, B.-S. J. Kor. Chem. Soc. 2002, 46, 363 원문보기 상세보기
  11. 11. Lee, K.-P.; Seo, H.-K.; Lee, M.-S. J. Kor. Chem. Soc. 2000, 44, 74
  12. 12. Vetter, T. A.; Colombo, Jr. D. P. J. Chem. Educ. 2003, 80, 788 상세보기
  13. 13. Pacer, R. A. J. Chem. Educ. 1997, 74, 543 상세보기
  14. 14. Birk, J. P.; Walters, D. L. J. Chem. Educ. 1993, 70, 587 상세보기
  15. 15. Summerlin, L. R.; Ealy, Jr. J. L. Chemical Demonstrations; 2nd ed.; American Chemical Society: Washington, D.C., U. S. A., 1988; Vol. 1, pp 99-115
  16. 16. Lee, M.-W.; Jeon, S.-Y.; Choi, B.-S.; Kwon, S.-M.; No, T.-H.; Hur, S.-I.; Kim, C.-B.; Gang, S.-J.; Park, H.-S.; Kim. G.-S.; Chae, K.-P.; Kim, J.-M.; Jeong, D.-Y. High School Science; Keumsung Publishing: Seoul, Korea, 2002; pp 174-195
  17. 17. Lee, G.-S.; Jo, H.-Y.; Park, B.-S.; Park, M.-S.; Sim, K.- S.; Sim, J.-S.; Choi, J.-B.; Jang, J.-C.; Lee, C.-J.; Lee, Y.-J. High School Science; Daehan Textbook: Seoul, Korea, 2002; pp 159-175
  18. 18. Kim, C.-J.; Seo, M.-S.; Kim, H.-B.; Sim, J.-H.; Hyun, J.-H.; Han, I.-O.; Gweon, S.-G.; Park, S.-S. High School Science; Didimdol Publishing: Seoul, Korea, 2002; pp 146-164
  19. 19. Lee, Y.-W.; Gang, S.-B.; Kim, I.-S.; Lee, J.-W.; An, J.- J.; Bae, M.-J.; Jeon, W.-Y. High School Science; Seoul Education Information Publishing: Seoul, Korea, 2002; pp 136-157
  20. 20. Woo, G.-H.; Lee, C.-W.; Oh, D.-W.; Kim, Y.-Y.; Kyeong, J.-B.; Lee, K.-H.; Park, T.-Y.; Lee, Y.-J.; Baek, S.-K.; Kim, B.-I.; Kim, B.-R.; Lee, G.-Y. High School Science; Joongang Education Development Center Publishing: Seoul, Korea, 2002; pp 164-181
  21. 21. Lee, M.-W.; Jang, B.-K.; Go, J.-D.; Yun, S.-H.; Lee, J.- S.; Rye, S.-I.; Kim, H.-S.; Lim, C.-S.; Bae, J.-H.; Baek, S.-Y.; Lee, S.-J.; Choi, B.-G. High School Science; Jihak Publishing: Seoul, Korea, 2002; pp 156-172
  22. 22. Cha, D.-W.; Kim, H.-S.; Lee, M.-S.; Choi. J.-H.; Lee, B.-Y.; Ok, J.-S.; Yun, S.-J.; Lee, W.-K.; Jeong, N.-S.; Sin, D.-W. High School Science; Cheonjae Education Publishing: Seoul, Korea, 2002; pp 136-154
  23. 23. Jeong, W.-H.; Kwon, J.-S.; Kim, D.-S.; Kim, B.-G.; Sin, Y.-J.; Woo, J.-O.; Lee, G.-J.; Jeong, J.-W.; Choi, B.-S.; Hwang, W.-G. High School Science; Kyohak Publishing: Seoul, Korea, 2002; pp 156-173
  24. 24. Sung, M.-W.; Kim, B.-G.; Jo, S.-D.; Kang, D.기본적인 분석 기본적인 분석 -H.; Kang, C.-H.; Goo, J.-O.; No, I.-H.; Lee, Y.-C.; Lim, T.-H.; Choi, B.-S.; Han, E.-T. High School Science; Moonwongak Publishing: Seoul, Korea, 2002; pp 기본적인 분석 170-189
  25. 25. Frost, A. A.; Pearson, R. G. Kinetics and Mechanism; 2nd ed.; John Wiley & Sons, Inc.; New York, U.S.A., 1961; pp 45-46

이 논문을 인용한 문헌

  • DOI : 10.5012/jkcs.2005.49.1.105 [무료]
  • 대한화학회 : 저널>권호
  • Korea Open Access Journals : 저널

원문 PDF 파일 및 링크정보가 존재하지 않을 경우 KISTI DDS 시스템에서 제공하는 원문복사서비스를 사용할 수 있습니다. (원문복사서비스 안내 바로 가기)


0 개 댓글

답장을 남겨주세요