1. 소크라테스 이전 철학자들은 겉모습과 실체를 구별하는 것을 사상의 중심으로 삼음

2. 사람들 눈에 보이는 겉모습과 본질적 실체는 다름

탈레스 - 겉모습은 다를지라도 만물은 근본적으로 물로 이루어져있다

헤라클레이토스 - 세상의 모든 것은 불로 이루어져있으며 만물이 끊임없이 운동한다고 생각한다.

파르메니데스 - 실제로 움직이는 것은 아무것도없으며, 움직이는 것처럼 보이는 모든 것은 환상에 불가하다.

3. 그들의 사상은 철학뿐만 아니라 현대 과학의 전신으로도 여겨짐

4. 플라톤, 스피노자, 라이프니츠를 포함한 소크라테스 이후의 철학자들은 평범하고 상식적인 세계관보다 더 진실에 가까운 모델이라고 주장하면서 사물의 실체에 대한 다양한 세계관을 내놓음

'1일 1페이지, 세상에서 가장 짧은 교양 수업 365' 카테고리의 다른 글

005. 음악의 기본 요소  (0) 2024.11.11
004. 복제  (0) 2024.11.11
003. 라스코 동굴 벽화  (1) 2024.10.13
002. 율리시스(Ulysses)  (1) 2024.10.13
001. 알파벳(Alphabet)  (1) 2024.10.12

 

1. 음악은 체계적인 소리이며 소음은 불규칙하고 체계가 없으며 그냥 들었을 때 음높이를 식별할 수 없다.

2. 음악 소리를 분석할 때 기본 요소는 음높이, 음계, 조이다.

음높이(pitch): 귀에 들리는 소리의 높낮이 정도이며, 파동이 반복되는 빈도로 측정

음계(scale): 음높이 차례로 음을 배열한 층계를 말하며, 서양음악은 장음계(밝고 쾌할하고 긍적적)나 단음계(어둡거나 슬프거나 부정적) 중 하나를 사용

조(key): 장음계나 단음계 중 하나를 바탕으로 한 음배열 또는 음체계이며 멜로디를 만드는 기준점이자 이끄는 힘

 

'1일 1페이지, 세상에서 가장 짧은 교양 수업 365' 카테고리의 다른 글

006. 겉모습과 실체  (0) 2024.11.11
004. 복제  (0) 2024.11.11
003. 라스코 동굴 벽화  (1) 2024.10.13
002. 율리시스(Ulysses)  (1) 2024.10.13
001. 알파벳(Alphabet)  (1) 2024.10.12

004. 복제

 

1. 1997년 엄마 양과 똑같은 세포핵 DNA를 가진 아기 양 돌리 탄생

2. 영국 과학자들이 핵 이식이라는 과정을 통해 돌리를 만들었음

(* 핵 이식 : 수정이 안된 난자에 유전물질을 제거하여 다른 세포해서 채취한 유전물질을 주입하는 것)

3. 돌리가 태어나기전에는 특정 세포로 같은 종류의 세포만 생산할 수 있다고 믿었으나 이번 실험에서 엄마 양 젖샘에서 추출한 세포로 개체 전체가 만들어졌기에 리프로그래밍이 가능하다고 입증됨

4. 6년된 양의 말단소체(나이가 들수록 짧아짐)를 물려받았기에 다른 양에 비해 짧았고 정상처럼 보였지만 많은 병들을 앓다가 태어난지 6년만에 안락사에 처해짐

 

 

 

003. 라스코 동굴 벽화

 

1. 프랑스 중부의 마을 몽티냑 인근 동굴에서 발견된 가장 초기의 예숙 작품 중 하나

2. 동굴이 동물 형상으로 보였을 수도 있고, 높은 위치에 있는 것으로 보아 주술 행위에 사용된 것 일 수도 있음

3. 벽화 속 동물은 검은 윤곽으로 그려져 있으며 어떤 그림은 뒤틀린 시각을 적용해 그려져 있음

4. '황소의 전당'이라고 불리는 곳이 있으며 이 벽에는 하나의 이야기가 펼쳐짐

5. 정밀 조사 한 결과, 구석기시대 유물로 밝혀졌고 관광객들의 훼손으로 현재는 폐쇄되으며 복제된 동굴이 만들어져 있음

 

'1일 1페이지, 세상에서 가장 짧은 교양 수업 365' 카테고리의 다른 글

006. 겉모습과 실체  (0) 2024.11.11
005. 음악의 기본 요소  (0) 2024.11.11
004. 복제  (0) 2024.11.11
002. 율리시스(Ulysses)  (1) 2024.10.13
001. 알파벳(Alphabet)  (1) 2024.10.12

002. 율리시스(Ulysses)

 

1. 율리시스는 제임스 조이스의 작품이며 고대 그리스 대서사시인 <오디세이아>를 배경으로 하루동안 벌어지는 사건으로 재설정한 소설

2. 주인공은 용서, 동정, 관용을 베푸는 영웅적 존재

3. 이 소설은 의식의 흐름 기법을 광범위하게 사용하며, 등장인물에 대한 풍부한 묘사와 무수히 많은 문학 작품과 예술작품에 대한 인유 그리고 혁신적인 언어 표현 기법으로 유명

4. 블룸의 아내 몰리의 생각을 묘사하는 마지막 장은 물리의 몽상적인독백은 2만 4000개 이상의 단어로이루어진 8개의 긴 문장으로구성되어 있어 난해함

더보기

그리고 그러고 나서 그가 내게 물었지 그래 나의 들꽃이라고 말하겠느냐고 그리고 처음으로 나는 그의 목에 팔을 두르고 그래 그렇게 그를 내쪽으로 끌어당겼지 그가 내 가슴의 향기를 느낄 수 있도록 그래 그리고 그의 심장이 미친 듯이 뛰고 있었고 그래 나는 그러리라고 말했지.

 

'1일 1페이지, 세상에서 가장 짧은 교양 수업 365' 카테고리의 다른 글

006. 겉모습과 실체  (0) 2024.11.11
005. 음악의 기본 요소  (0) 2024.11.11
004. 복제  (0) 2024.11.11
003. 라스코 동굴 벽화  (1) 2024.10.13
001. 알파벳(Alphabet)  (1) 2024.10.12

001. 알파벳(Alphabet)

1. 고대 이집트왕이 전쟁에서 승리해서 많은 포로를 잡아 노예로 삼았지만 노예들은 이집트인들이 사용하는 상형문자를 읽을 수 없어 이집트 왕이서면으로 명령 내릴 수 없었음.

2. 이집트 상형문자는 복잡해서 실제로 극소수의 이집트인만이 읽거나 쓸 수 있음.

3. 현대의 알파벳은 거의 이집트의 상형문자를 간단하게 변형해서 만든 기호 체계에서 파생된 것이며 알파벳의 발달로 고대 이집트인들의 의사소통 방식도 바뀜

4. 이집트 상형문자는 고대 유물로 남겨져있엇으나 1799년 로제타석이 발견되고 나서야 해독할 수 있게 됨.

더보기

로제타석이란?

1799년 프랑스군이 로제타(이집트)라는 지역에서 비석을 발견.

이 비석의 이름은 로제타석이며 비석에는 그리스어, 이집트 민중 문자,고대 이집트의 상형 문자인 '성각 문자' 등 세 가지 다른 물자로 글귀가 적혀 있음

 

 

'1일 1페이지, 세상에서 가장 짧은 교양 수업 365' 카테고리의 다른 글

006. 겉모습과 실체  (0) 2024.11.11
005. 음악의 기본 요소  (0) 2024.11.11
004. 복제  (0) 2024.11.11
003. 라스코 동굴 벽화  (1) 2024.10.13
002. 율리시스(Ulysses)  (1) 2024.10.13

 

이클립스 환경에서 간단하게 DB가 연결되었는지 확인하는 방법

IDE - eclipse

DB - Oracle

JDBC - OJDBC6

 

 

이클립스에서 새로운 자바 프로젝트를 생성한다.

프로젝트 이름은 ExConnection으로 설정 후 Finish를 눌러준다

 

 

생성된 프로젝트에 우클릭>Properties>Java Build Path > Libraries

 

 

이후 Modulpath를 클릭한 후Add External JARs....를 눌러서 적용할 jar파일를 선택 후 열기를 누른다.

 

그러면 밑의 사진과 같이 Modulpath 안에 jar파일이 적용되어있을것이며 Apply and Close를 클릭한다.

 

 

DB와 연동을 할 수 있게끔 클래스 파일을 만든다.

 

만들어진 클래스에서 아래 코드와 동일하게 작성하면 콘솔에 DB연결 성공 또는 DB연결 실패가 뜨는 걸 확인할 수 있다.

package com.dream;

import java.sql.Connection;
import java.sql.DriverManager;

public class ExCon {
	public static void main(String[] args) {
		Connection con = null;
		try {
			String url = "jdbc:oracle:thin:@localhost:1521:xe";
			String user = "testadm";
			String password = "testadm";
			
			con = DriverManager.getConnection(url, user, password);
			System.out.println("DB연결 성공");
		} catch(Exception e) {
			e.printStackTrace();
			System.out.println("DB연결 실패");
		} finally {
			if (con != null) {
				try {
					con.close();
				} catch(Exception e) {
					e.printStackTrace();
				}
			}
		}
	}
}

DataBase 생성

이전 글에서 아래 명령어를 이용하여 mysql 데이터베이스에 권한을 부여해줬었다.

grant all privileges on mysql.* to 'boardadm'@'%';

 

하지만 board라는 데이터 베이스를 생성할 것이며 거기에 맞는 권한을 부여해줘야 한다.

아래 명령어를 이용하여 database 생성 후 권한 부여

CREATE DATABASE board;

GRANT ALL PRIVILEGES ON board.* TO 'boardadm'@'%';

 

테이블 생성

User 테이블 

CREATE TABLE User (
    user_id INT PRIMARY KEY AUTO_INCREMENT,
    user_pw VARCHAR(255) NOT NULL,
    user_name VARCHAR(100) NOT NULL,
    user_email VARCHAR(100) NOT NULL UNIQUE,
    user_regDate DATETIME DEFAULT CURRENT_TIMESTAMP
);

 

Roll 테이블

CREATE TABLE Roll (
    roll_id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(50) NOT NULL
);

 

User_Roll 테이블

CREATE TABLE User_Roll (
    user_id INT,
    roll_id INT,
    PRIMARY KEY (user_id, roll_id),
    FOREIGN KEY (user_id) REFERENCES User(user_id) ON DELETE CASCADE,
    FOREIGN KEY (roll_id) REFERENCES Roll(roll_id) ON DELETE CASCADE
);

 

Category 테이블

CREATE TABLE Category (
    category_id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(100) NOT NULL
);

 

Post 테이블

CREATE TABLE Post (
    post_id INT PRIMARY KEY AUTO_INCREMENT,
    user_id INT,
    title VARCHAR(255) NOT NULL,
    content TEXT NOT NULL,
    category_id INT,
    view_count INT DEFAULT 0,
    created_date DATETIME DEFAULT CURRENT_TIMESTAMP,
    updated_date DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES User(user_id) ON DELETE CASCADE,
    FOREIGN KEY (category_id) REFERENCES Category(category_id) ON DELETE SET NULL
);

 

Post_Category 테이블

CREATE TABLE Post_Category (
    post_id INT,
    category_id INT,
    PRIMARY KEY (post_id, category_id),
    FOREIGN KEY (post_id) REFERENCES Post(post_id) ON DELETE CASCADE,
    FOREIGN KEY (category_id) REFERENCES Category(category_id) ON DELETE CASCADE
);

 

Comment 테이블

CREATE TABLE Comment (
    comment_id INT PRIMARY KEY AUTO_INCREMENT,
    post_id INT,
    user_id INT,
    content TEXT NOT NULL,
    created_date DATETIME DEFAULT CURRENT_TIMESTAMP,
    updated_date DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    FOREIGN KEY (post_id) REFERENCES Post(post_id) ON DELETE CASCADE,
    FOREIGN KEY (user_id) REFERENCES User(user_id) ON DELETE CASCADE
);

 

Maria DB 설치

다운로드 방법

아래 페이지에서 MariaDB 설치 가능하며

https://mariadb.org/download/?m=blendbyte&t=mariadb&p=mariadb&r=10.6.19&os=windows&cpu=x86_64&pkg=msi&mirror=blendbyte

 

Download MariaDB Server - MariaDB.org

REST API Release Schedule Reporting Bugs … Continue reading "Download MariaDB Server"

mariadb.org

 

11.0, 11.1, 11.2이 버전도 다운로드가 가능하지만 1년 동안만 유지되는 단기 릴리스라고 해서 버전은 10.6.19로 설치

 

 

Use UTF8을 클릭해 UTF8 문자코드로 사용하도록 체크하고 비밀번호를 설정한다.

password : mariadb123

 

Next를 누르고 나면 MariaDB 설치 완료

 

시작 메뉴에서 MySQL Client (MariaDB 10.6 (x64))를 실행시키면  아래 사진처럼 나오며 설치 시 설정했던 비밀번호 입력 시

정상적으로 root 권한으로 로그인이 된다.

 

계정 생성

계정 생성하는 방법은

create user '생성하려는ID'@'%' identified by '비밀번호';

 

- @: 사용자 이름과 호스트 이름을 구분하는 기호입니다. (이 기호는 MySQL/MariaDB의 문법에서 필수)

- '%': 호스트 이름을 나타내며, 모든 호스트에서 접근할 수 있음을 의미

         %는 와일드카드로 사용되며, 다음과 같은 방식으로 해석

         -> '%': 모든 IP 주소에서 접근 가능

 

         -> 'localhost': 로컬 호스트에서만 접근 가능

         -> 특정 IP 주소나 도메인명으로 제한 가능 (예: '192.168.1.100', 'example.com').

 

 

계정 권한 부여

각 계정에 권한 부여 방법은

grant 권한 on 데이터베이스명.테이블 to '계정명'@'host';

 

*  권한 확인

 show grants for '계정명'@'host';

1. 전역 권한 (Global Privileges)
전역 권한은 서버 내 모든 데이터베이스와 테이블에 적용됩니다. 예:
ALL PRIVILEGES: 모든 권한을 부여합니다.
CREATE USER: 새로운 사용자 계정을 생성할 수 있는 권한.
SHUTDOWN: 서버를 종료할 수 있는 권한.
RELOAD: 서버에서 재구성을 강제할 수 있는 권한.
2. 데이터베이스 권한 (Database Privileges)
데이터베이스 권한은 특정 데이터베이스 내에서의 작업을 정의합니다. 예:
CREATE: 데이터베이스를 생성할 수 있는 권한.
DROP: 데이터베이스를 삭제할 수 있는 권한.
GRANT: 다른 사용자에게 권한을 부여할 수 있는 권한.
ALTER: 데이터베이스 구조를 수정할 수 있는 권한.
3. 테이블 권한 (Table Privileges)
SELECT: 테이블에서 데이터를 조회할 수 있는 권한.
INSERT: 테이블에 데이터를 삽입할 수 있는 권한.
UPDATE: 테이블의 데이터를 수정할 수 있는 권한.
DELETE: 테이블에서 데이터를 삭제할 수 있는 권한.
INDEX: 인덱스를 생성할 수 있는 권한.
4. 컬럼 권한 (Column Privileges)
컬럼 권한은 테이블의 특정 컬럼에 대한 작업을 정의합니다. 예:
SELECT(column_name): 특정 컬럼에서 데이터를 조회할 수 있는 권한.
UPDATE(column_name): 특정 컬럼의 데이터를 수정할 수 있는 권한.
INSERT(column_name): 특정 컬럼에 데이터를 삽입할 수 있는 권한.
5. 프로시저 권한 (Routine Privileges)
프로시저나 함수를 호출할 수 있는 권한을 정의합니다.
예: EXECUTE: 저장 프로시저나 함수를 실행할 수 있는 권한.
6. 기타 권한
FILE: 파일 시스템에서 파일을 읽거나 쓸 수 있는 권한.
PROCESS: 현재 프로세스를 볼 수 있는 권한.

HeidiSQL에 연결

HeidiSQL 실행 후 세션을 신규 생성하여 설정했던 내용을 바탕으로하여 설정 후 저장 및 열기

 

 

 

 

개발 환경

언어 - JavaScript

Framework - Spring Boot

DB - MariaDB Server 10.6.19

DB Tool - HeidiSQL

IDE - IntelliJ IDEA 2024.2.1

배포 환경 - 미정


기능

회원가입, 로그인, 글 작성, 글 삭제, 글 수정, 댓글, 조회수, 권한 관리, 입력 유효성 검사, 파일 업로드, 공지 사항, 프로필 관리, 검색 기능, 글 임시 저장, 카테고리, 페이지 네이션 


테이블 설계

User 

user_id 유저 아이디 PK
user_pw 유저 비밀번호  
user_name 유저 이름  
user_email 유저 이메일  
user_regDate 유저 가입날짜  

 

Roll

roll_id 권한 아이디 PK
name 권한 이름  

 

User_Roll

user_id 유저 아이디 FK
roll_id 권한 아이디 FK

 

Category

category_id 카테고리 아이디 PK
name 카테고리 이름  

 

Post

post_id 글 아이디 PK
user_id 작성자 아이디 FK
title 글 제목  
content 글 내용  
category_id 카테고리 아이디 FK
view_count 조회수  
created_date 작성일  
updated_date 수정일  

 

Post_Category

post_id 글 아이디 FK
category_id 카테고리 아이디 FK

 

Comment

comment_id 댓글 아이디 PK
post_id 글 아이디 FK
user_id 유저 아이디 FK
content 내용   
created_date 작성일  
updated_date 수정일  

 

 

 

 

 

 

 

+ Recent posts