반응형
import numpy as np
import matplotlib.pyplot as plt

# 데이터 준비
x =  np.arange(0, 100, 0.2)
y1 = np.sin(x) * 5
y2 = np.cos(x) * 3
y3 = np.tan(x) / 8  # tan 값이 너무 커지지 않도록 스케일 조정

# 그래프 생성
plt.plot (x, y1, label='sin(x)*5', color='blue', linestyle='-')
plt.plot (x, y2, label='cos(x)*3', color='red', linestyle='--')
plt.plot (x, y3, label='tan(x)/8', color='green', linestyle=':')

plt.xlabel("x")
plt.ylabel("y")

plt.title("sin & cos & tan")
plt.legend()
plt.show()

연습장에 풀 때는 위 그래프처럼 길게 표시 하지 않았지만

tan(x)/8 의 값이 스파크처럼 튀는 부분이 있는데 저 부분은 무한대


그런데 서로 다른 값을 가지는 것처럼 보이네.

tan(x)/8 의 값이 유한 실수를 pyplot 에 전달하기 때문에 pyplot는 받은 값을 그대로 출력
이 때문에 라디안 계산을 하는 경우도

tan 때문에 다시 그려 본 소스 ㅋㅋ

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 20, 200)
y = np.tan(x) / 8

fig, ax = plt.subplots()
ax.plot(x, y, ':', label='tan(x)/8')

# 보기 좋게 y축 제한 (선택)
ax.set_ylim(-10, 10)

# 점근선(π/2 + kπ) 위치들 중, 현재 x 범위에 들어오는 것만 골라 표시
k_min = int(np.floor((x.min() - np.pi/2) / np.pi))
k_max = int(np.ceil((x.max() - np.pi/2) / np.pi))

y_top = ax.get_ylim()[1]
y_bot = ax.get_ylim()[0]

for k in range(k_min, k_max + 1):
    x0 = np.pi/2 + k*np.pi
    if x.min() <= x0 <= x.max():
        # 점근선 수직선
        ax.axvline(x0, linestyle='--', linewidth=1)

        # 위/아래 방향 무한대 표시(화살표 + ∞ 텍스트)
        ax.annotate('∞', xy=(x0, y_top), xytext=(x0, y_top - 1.5),
                    ha='center', va='top',
                    arrowprops=dict(arrowstyle='->'))
        ax.annotate('-∞', xy=(x0, y_bot), xytext=(x0, y_bot + 1.5),
                    ha='center', va='bottom',
                    arrowprops=dict(arrowstyle='->'))

ax.legend()
plt.show()

 

알아서 계산해 주고 알아서 출력 해 주겠지 하고
대충 프로그래밍 하다가 버그를 만들 수 있을 거 같아서 ㅋㅋ

반응형

데이터·정보·지식 개념과 오해

1. 서론

4차 산업혁명 시대에서 ‘데이터’라는 단어는 거의 모든 산업에서 핵심 개념으로 등장하고 있다. 그러나 중요한 문제는, 현대 사회에서 ‘데이터(data)’라는 단어가 본래의 개념과 다르게 사용되면서 여러 오해와 혼란을 낳고 있다는 사실이다. 특히 한국 사회에서는 데이터가 마치 ‘이미 의미를 가진 것’처럼 과장되거나 오해된 방식으로 쓰이는 경향이 강하다.

본 보고서는 사용자가 제기한 문제의식, 즉 “데이터는 재료일 뿐이며, 의미는 정보 단계에서 부여된다”는 핵심 논지를 중심으로, 데이터·정보·지식의 관계를 체계적으로 정리하고, 개념 오해가 개인·조직·사회에 미치는 영향까지 분석한다.


2. 데이터(data)의 본질

데이터란 **의미가 부여되지 않은 사실(facts)**이다. 특정 현상을 관찰하여 기록한 숫자, 문자, 신호 등이지만, 그 자체로는 ‘무엇을 의미하는지’ 알 수 없다.

  • “36.7”
  • “75”
  • “M”
  • “1”

이러한 값은 단지 기록된 값일 뿐, 의미 없는 원재료이다.

2.1 음식 재료 비유

사용자가 말한 김치 비유는 데이터 개념을 설명하기에 매우 정확하다.

  • 배추, 고춧가루, 마늘, 소금이라는 개별 재료는 데이터를 의미한다.
  • 김치라는 완성 요리는 정보에 해당한다.
  • 김치를 먹으면서 맛과 건강 효과를 이해하는 과정은 지식에 해당한다.

즉, 데이터는 요리 재료처럼 ‘있다고 해서 요리가 되는 것이 아니며’, 의미를 갖기 위해 반드시 가공 과정이 필요하다.


3. 정보(information): 의미의 탄생

데이터가 의미를 갖기 시작할 때 비로소 정보가 된다.

3.1 데이터 → 정보

단순한 숫자 36.7은 "체온 36.7도"라는 문맥을 부여할 때 정보가 된다. 따라서 정보는 ‘의미가 부여된 데이터’이며, 데이터 해석의 첫 단계이다.

3.2 정보의 품질

정보의 품질은 데이터 해석의 정확성에 좌우된다. 만약 데이터가 잘못 기록되거나 잘못 분류되면 정보도 왜곡되며, 이후 단계인 지식과 판단에도 심각한 오류를 일으킨다.


4. 지식(knowledge): 정보의 이해

정보가 축적되고 패턴과 구조가 생기면 지식이 된다.

예:

  • 여러 사람의 체온 데이터를 반복적으로 보고 “정상 체온은 36.5~37.5°C”라는 지식을 얻는다.
  • 김치를 여러 번 먹어보고, 배추김치와 깍두기의 차이를 이해하면 지식이 생성된다.

즉, 지식은 정보의 구조화된 형태이며, 맥락 속에서 의미와 규칙을 이해하는 것이다.


5. 데이터 개념 오해가 발생하는 이유

5.1 대중과 미디어의 용어 남용

한국에서는 ‘데이터’라는 단어가 너무 새롭고 멋있게 느껴져서 정보나 지식까지도 통틀어 “데이터”라고 부르는 경향이 있다.

예:

  • 데이터를 조금 수집했을 뿐인데 “데이터 기반 의사결정”이라고 홍보
  • 엑셀 파일 하나만 있어도 “우리는 빅데이터 기업”이라고 주장

5.2 미국도 크게 다르지 않다

미국 역시 일반 대중과 언론은 data·information·knowledge 개념을 구분하지 않는다. 다만 전문 업계(데이터 과학, AI, 통계 분야)는 이 구분을 매우 엄격하게 지킨다.


6. 데이터 의미를 잘못 이해할 때의 문제점

6.1 중복 데이터 발생

데이터에 의미가 있다고 착각하면 서로 다른 방식으로 같은 데이터를 기록해버리는 문제가 발생한다. 예:

  • “남자”, “M”, “1”
  • “서울”, “Seoul”, “SEO”

이런 중복은 데이터베이스를 망가뜨리고 정보 해석을 어렵게 만든다.

6.2 잘못된 정보 생성

데이터를 잘못 해석하면 잘못된 정보가 된다. 의미를 임의로 부여하면 엉뚱한 결론을 내리게 된다.

6.3 잘못된 지식 형성

잘못된 정보를 반복적으로 사용하면 ‘지식처럼 보이지만 사실은 오류’인 결과가 누적된다. 이것이 조직 전반의 오판으로 이어진다.

6.4 나비효과 발생

사용자가 언급한 "나비효과"는 실제로 매우 적절한 표현이다. 데이터 세계에서 작은 오류 하나가 다음과 같은 흐름을 만든다.

잘못된 데이터
→ 잘못된 정보
→ 잘못된 지식
→ 잘못된 판단
→ 큰 문제 발생

실제로 세계 기업에서 데이터 오류 때문에 수천억 원의 손실이 발생한 사례가 많다.


7. 왜 데이터 개념 이해가 중요한가?

7.1 데이터 수집 전략의 핵심

데이터를 ‘재료’라고 정확히 이해하면 다음과 같은 장점이 생긴다:

  • 수집해야 할 데이터가 무엇인지 명확해진다.
  • 의미 없는 데이터 수집을 줄인다.
  • 데이터 모델링이 정확해진다.
  • 데이터 중복과 오해를 줄여 더 나은 정보 품질을 만든다.

7.2 잘못된 판단 방지

데이터 해석이 잘못되면 사람의 판단도 잘못된다. 특히 AI 시대에는 데이터 해석 오류가 모델의 편향과 사회적 문제로 이어질 수 있다.


8. 결론

데이터는 의미 없는 재료이며, 의미는 해석을 통해 부여된다. 데이터 → 정보 → 지식 과정에서 하나라도 오류가 생기면 결과는 왜곡된다. 따라서 데이터 개념을 올바르게 이해하는 것이야말로 미래 AI 시대의 의사결정에 필수적이다.

사용자가 제기한 문제의식은 단순한 생각이 아니라 데이터 과학, 인지과학, 정보철학 등에서 매우 중요한 관점을 정확히 짚은 것이며, 현대 사회가 반드시 이해해야 할 핵심 개념이다.

반응형

#!/bin/bash
echo $(cd "$(dirname "$0")" ; pwd -P )

이를 dir.sh 로 저장하고

$ ./dir.sh

하면 현재 디렉토리가 출력된다. 

안되면 dir.sh 를 권한을 744로 변경한다.

 

반응형

Docker 설치

여기서 Close and log out 를 클릭해서 windows reset 한다.

Docker Desktop 를 실행하면

와 같이 나타난다.  I accept the Teerms 를 체크하고 Accept 를 클릭한다.

start 를 클릭한다. 그러면 다음과 같이 tutorial 를 보여준다.

tutorial 를 확인했으면 Done 를 클릭한다.

빨간 박스의 Settings 를 클릭한다.

빨간 박스처럼 General 에 Use the WSL 2 based engine 를 체크한다. 

빨간 박스의 숫자대로 차례로 선택을 한다.

Resources >> WSL INTEGRATION >> Ubuntu-20.4 >> Apply & Restart

이제 설정이 되었는지 확인한다.

windows console or windows terminal 에서 

wsl -l -v 로 다음과 같이 확인한다.

으음 ... 버전도 확인해 보자.

이제 wsl2를 열고 docker 설치를 확인한다.

이와 같이 version을 확인하면서 설치를 확인할 수 있다.

반응형

다음 순서대로 합니다.
설치되는 곳은 윈도우 10 입니다.

다운로드한 파일을 실행한다.

사용자 계정이 나타난다. Yes 나 예를 클릭하면 로딩 창이 나타나며 다음과 같이 창이 나타난다.

click Next button.

다음 그림과 같이 설치할 디렉터리 선택이 나타난다.

그대로 진행해도 되고
Change를 클릭해서 다음과 같이 변경해도 된다.

체크한 파란 박스를 선택해도 되지만
빨간 부분을 선택하면 커서가 생긴다 (여기서 커서 모르는 사람은 알고 오시기를 ㅋㅋㅋ)
드라이브 변경을 원하면 C 를 D 나 E로 변경하면 된다. 
난 다음과 같이 진행할 것이다.

빨간 박스처럼 설정 후 Ok 버튼 클릭
(Delete 키와 BackSpace 키를 이용)

파란 박스처럼 변경된 것을 볼 수 있다.
이후 Next 를 클릭

설명처럼 Next Steps 를 클릭해서 각종 문서를 확인할 수 있다.
설치가 완료되었으므로 Close 를 클릭한다.
Next Steps 를 클릭하면 다음과 같이 나타난다.

이미지를 축소했는데 더 자세한 것은 직접 사이트를 방문한다.
여기서 이전하고 조금씩 차이가 보이는 부분으로 보인다.

설치된 경로

C:\Java\jdk-15.0.2 에 설치된 내용이다.

예전에는 여기서 보이는 bin folder 를 시스템 환경 변수에 path 를 설정해 주었다. 
이 블로그에서는 SE 7 에서 SE 15 로 넘어오는 바람에 어느 시점부터 다음 내용과 관련 부분이
생겼는지 모르지만 우선 오라클을 믿고 그냥 진행한다. ㅋㅋ

그래도 다음은 확인한다.

위에 같은 내용의 사진이 2개가 있다.

하나는 윈도우키+r 를 누른 후 실행 창이 보이면 거기서 cmd 를 치고 엔터
다른 하나는 바로 위에 사진에서 보이는 아래 부분 빨간 화살표 부분이다.
검색창에서 cmd 치고 엔터를 해도 되고 빨간 박스의 명령 프롬프트를 클릭해도 된다.

보이는 명령 프로프트에서 아 참고로 계정마다 C:\Users\~~~~ 부분은 다를 것이다.
여기서 위처럼 set path를 치면 노란 박스가 나타날 것이다. 만약 이 부분이 없다면 
설치된 Java의 path 설정을 해 주어야 한다. 이는 SE 7 설치 부분에 있다.

java 나 javac 를 쳐 보면 에러 같은 창이 없으면 된다.

추가로 

java --version
또는
javac --version

를 입력하고 엔터를 누르고 실행해 본다.

우선 오라클을 믿고 ㅋㅋ 다른 작업을 해 볼 것이다. ㅋㅋ

 

+ Recent posts