오늘 한 일 

 

SQLD 대비 공부를 했다. 최적화 쪽은 옵티마이저, 모델링쪽 앞부분을 공부했다. 

내일은 한번 훑고 SQL 연습을 해야겠다. 

 

 

생각거리

 

 

시간이 참 빠르다 벌써 2월 말이다. 

코로나19 감염자가 벌써 800명을 넘어섰다. 시험장에도 갈텐데 건강관리에 유의해야겠다. 

:) 

728x90

'일상 > Today I Learn(TIL)' 카테고리의 다른 글

2020-02-26 TIL  (0) 2020.02.26
2020-02-25 TIL  (0) 2020.02.25
2020-02-22 TIL  (2) 2020.02.22
2020-02-21 TIL  (0) 2020.02.21
2020-02-19 TIL  (0) 2020.02.19

오늘 한 일  

 

더블 링크드 리스트, 환형 더블 링크드 리스트를 다시 짜봤다.

SQLD 취득 준비를 위해 SQL 기본과 활용쪽을 공부했다. 

내일은 모델링쪽 보고 문제를 풀어볼 계획이다.

시험이 13일 남았다. 3월 7일!

 

 

생각거리

 

SQL 실습을 해봐야 하는데. 

다음주에는 집중적으로 해야지.

 

728x90

'일상 > Today I Learn(TIL)' 카테고리의 다른 글

2020-02-25 TIL  (0) 2020.02.25
2020-02-24 TIL  (0) 2020.02.24
2020-02-21 TIL  (0) 2020.02.21
2020-02-19 TIL  (0) 2020.02.19
2020-02-18 TIL  (0) 2020.02.18

오늘 한 일 

 

어제 오늘 이틀간 SQLD 공부만 했다. 

어제는 SQL 활용 쪽 공부하고, 오늘 SQL 기본이랑 활용 부분 실습 쭉 하려고 했는데. 

Toad 에 oracle xe 연결 과정에서의 문제를 해결중이다. 

oracle이 벌써 18이라니.

 

 

 

 

생각거리

 

oracle xe 설치는 금방이었지만 Toad 연결을 하는데 난관이 많았다. 

내일 꼭 해야지! :)

728x90

'일상 > Today I Learn(TIL)' 카테고리의 다른 글

2020-02-24 TIL  (0) 2020.02.24
2020-02-22 TIL  (2) 2020.02.22
2020-02-19 TIL  (0) 2020.02.19
2020-02-18 TIL  (0) 2020.02.18
2020-02-17 TIL  (0) 2020.02.17

racle 18 xe 를 Toad 에 연결할때 TNS file 검증에서 에러가 났다. 

 

일단, 다음과 같은 2 가지를 했다. 

 

 

 

1.  환경변수 등록 

 

윈도우키 누르고 '시스템 환경 변수 편집' 열어본다. 

 

'새로 만들기' 누르고  ORACLE_HOME 과 TNS_ADMIN  2개를 추가한다. 

시스템 변수를 새로 만든다!

 

 

ORACLE_HOME 추가

 

TNS_ADMIN 추가

 

 

시스템 변수 중에 Path가 있는데, '편집' 누르고 그 안에서 '새로만들기' 눌러서 

 

ORACLE_HOME에 썼던 변수값을 추가한다.  

 

 

 

2. tnsnames.ora 파일 수정 

 

파일 경로 : C:\app\사용자이름\product\18.0.0\dbhomeXE\network\admin 

 

tnsnames.ora 파일을 다음과 같이 수정했다. 중요한 파일인가보다. 

 

HOST에 컴퓨터이름이 쓰여있었는데, 127.0.0.1로 바꿨다.  

 

DESCRIPTION = 으로 ADDRESS와 CONNECT_DATA를 감싸줬다. 

# tnsnames.ora Network Configuration File: C:\app\csrc\product\18.0.0\dbhomeXE\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.

LISTNER_XE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = XE)
    )
  )

XE =
(DESCRIPTION =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
  (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = XE)
  )
  )

ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )

 

 

TNS 파일 검증 

 

아래 화면에서 TNSNames Editor를 클릭하고 초록색 체크브이 버튼을 눌렀을 때,  'TNS file is valid' 가 뜨면 성공.

TOAD에서 DB 연결 화면 
오예 성공.

 

 


 

 

근데 DB connect 가 안됬다. 

 

파일은 검증되었는데 리스너가 안잡힌다고 한다. 

ORA-12514 에러코드라도 주니까 감사하다 

 

.......

다음 포스팅 쓰면서 해결해 봐야겠다. 

728x90

'프로그래밍 > SQLD' 카테고리의 다른 글

SQL 기본 3 : TCL  (0) 2020.05.27
SQL 기본 2 : DML  (0) 2020.05.27
SQL 기본 1 : RDB 개요, DDL  (0) 2020.05.27
실습 환경 만들기 - Toad 설치  (0) 2020.02.21
실습 환경 만들기 - Oracle XE 설치  (0) 2020.02.21

cmd 창에서 sql 치고 싶지 않고, sql문을 편리하게 분석할 수 있는 툴이 필요하니까

 

30일 무료 체험 가능한 Toad를 설치해본다. (Toad는 유료 프로그램이다. )

 

Toad World

Toad World homepage Join the millions of users who trust Toad products. With nearly 20 years of development, Toad leads the way in database development, database management, and data analysis.

www.toadworld.com

 

 

맨 왼쪽의 Toad for Oracle 클릭 ! 

맨 왼쪽의 Toad for Oracle의 SELECT 클릭, 

 

그리고 팝업에서 나오는 Get Free Trial을 클릭하면 다음과 같은 매우 귀찮은 양의 개인정보를 입력창이 나온다.

 

이메일만은 똑바로 적어야 한다. 왜냐면 설치과정에 필요한 라이센스와 사이트메시지를 보내준다. 

 

빨간것들 다 채워야 설치 가능하다. 메일 빼고 다뻥침

징그럽군.

 

라이센스 등록 완료된 화면
5가지가 디폴트로 선택되어있다.

마지막 설치 단계에서 어쩌구 permission 필요하다고 하면 오른쪽 위에 'Ignore all' 하고 설치 고고한다. 

 

2분 기다리면 설치 끝난다.  

 

Toad 시험판 설치 성공.

눌러보면 라이센스 정보가 나오는데, 아래쪽에 "Done"버튼 누르면 라이센스 등록이 완료된다. 

 

연결 화면에서 oracle 계정을 적는다. 

 

TNSNames Editor 를 클릭하고 초록색 체크버튼을 눌러본다

 

에러나네.....!!!

tnsping은 됬었는데.

 

cmd에 netstat 로 확인해보니 1521로 연결이 안되있었다. 

 

에러 해결 포스팅은 다음 글에 써야겠다.

728x90

'프로그래밍 > SQLD' 카테고리의 다른 글

SQL 기본 3 : TCL  (0) 2020.05.27
SQL 기본 2 : DML  (0) 2020.05.27
SQL 기본 1 : RDB 개요, DDL  (0) 2020.05.27
Toad TNS file 검증 에러  (0) 2020.02.21
실습 환경 만들기 - Oracle XE 설치  (0) 2020.02.21

설치 

 

SQLD 취득에는 실습이 중요하다는 교재의 조언을 따라보려고 오라클XE를 설치했다. 

 

SQL 개발자(Developer)이론서+문제집(2019)

본 도서는 한국데이터진흥원에서 시행하는 ‘SQL 개발자...

www.kyobobook.co.kr

교재는 oracle 11g xe 이지만, 18c xe 를 설치한다. 

 

오라클XE 설치 링크

 

Oracle Database Express Edition (XE) Downloads

Support Oracle Database Express Edition (XE) is a community supported edition of the Oracle Database family. Please go to the Oracle Database XE Community Support Forum for help, feedback, and enhancement requests. Note: Oracle Support Services only provid

www.oracle.com

 

(오라클은 회원가입하고 로그인해야 다운받을 수 있다는 것이 조금 귀찮다.)

 

다운받아서 압축풀고 setup파일 찾아서 설치한다.

 

기본으로 주어지는 system 계정의 비밀번호는 oracle로 해 두고.

 

Oracle 기본 위치는 C:\app\brocolia\product\18.0.0\ 디폴트 그대로 뒀다. 끝.

 

 

 

 

윈도우 서비스 확인 

 

윈도우 키 누르고 '서비스' 쳐보면 서비스가 바로 뜨는데 

알파벳 o 쳐서 OracleServiceXE를 찾아서 '상태'쪽이 '실행' 임을 확인한다. 

 

 

tnsping 실행 

 

cmd 켜서 tnsping 127.0.0.1 입력해본다 

 

 

 

Oralce 사용

 

최근에 추가한 앱에 가보면 SQL Plus가 있다.

 

SQL Plus 시작화면에 고정해두자
system oracle 치고 로그인!

system oracle 차례로 치고 접속된 것을 확인했다. 

 

 

 

사용자 생성 

 

oracle 12c 부터는 PDB 개념 때문에 사용자 생성할 때 c##을 붙여준다고 한다. 구글링 하니까 나옴.

 

사용자 생성할 때 c## 붙이기

 

권한 부여할 때도 c## 붙인다

 

 

다음 포스팅은 Toad 프로그램 설치다.

728x90

'프로그래밍 > SQLD' 카테고리의 다른 글

SQL 기본 3 : TCL  (0) 2020.05.27
SQL 기본 2 : DML  (0) 2020.05.27
SQL 기본 1 : RDB 개요, DDL  (0) 2020.05.27
Toad TNS file 검증 에러  (0) 2020.02.21
실습 환경 만들기 - Toad 설치  (0) 2020.02.21

온라인 샵에서 보고 눈독들이다가. 신세계백화점에서 한 번 매보고는... 마음에 정말 쏙 들었다.

https://mute-muse.com/product/list.html?cate_no=30

 

MUTEMUSE, a silent inspiration

라이프패션 브랜드 뮤트뮤즈의 공식 온라인 스토어입니다.

mute-muse.com

2019년 9월에 면세점에서 구입하고 주구장창 들고다닌 아뮤즈백 그린! (정가 24만8천원)

 

소가죽 스트랩도 같이 구매해서 겨울에 바꿔 끼우고 연말에 아주 잘들고 다녔다. 

 

이쁜 초록색 :)

 

카드지갑, 화장품파우치, 에어팟, 리스테린 넣었는데 널널하다. 아쥬 실용적.
기본스트랩

기본 스트랩은 구멍이 5개 뚫려있는데. 키가 158이라서 3번째에다가 꼈을때 제일 잘 맞았다. 

 

 

피지오겔 150ml 크림의 세로길이랑 가방 높이랑 비슷하다.

 

 

같이 구매한 소가죽 스트랩 꺄-

 

아무래도 면세점이 저렴하니까 스트랩도 추가 구매했다. 

 

사진 참 못찍었지만... 스트랩이 느무 이쁘다 ^^ 영롱하다.....

하운드 체크 아트웍 스트랩. 이름길다..

(정가 4만9천원)

 

스트랩 바꿔끼고 다니니까 사람들이 더 예쁘다고 어디서 샀냐고 물어봤다. 

 

가방이 그린이라서. 무채색 옷이 많은 나에게는 포인트가 되는 가방이라서 좋다.

 

 

 

장점 

* 가볍다! 진짜 가볍다.  (구입 이유 1번이 이거.)

* 안쪽 가죽도 보들보들 바깥쪽도 엄청 보들보들. 은은한 광도 나고.

* 잠금 장치가 없고 자석으로 되어 있어서 열고 닫기가 편하다. 

* 튼튼하다. 마감이 깔끔하게 잘 되어 있다.

 

단점(?)

* 6개월 맸는데 딱 1번 콘크리트 바닥에 떨어뜨렸더니... 스크레치가 바로 났다. ㅠㅠ 

* 예쁜 스트랩이 많아서 자꾸 사고싶다.

* 가죽가방이니까 비조심 물조심

* 정가를 생각하면 가격이 좀 비싼편이다.

 

 

 

매거진백도 갖고싶은데.

 

스몰로 할지 오리지날로 할지가 고민이다.

728x90

오늘 한 일 

 

링크드 리스트로 스택 짜는 것을 배웠다. 

아직 정리는 덜 됬다. 내일 복습이 필요하다. 

 

 

 

생각거리

 

건강관리를 잘 하자.

긍정적으로 생각하자.

:)

728x90

'일상 > Today I Learn(TIL)' 카테고리의 다른 글

2020-02-22 TIL  (2) 2020.02.22
2020-02-21 TIL  (0) 2020.02.21
2020-02-18 TIL  (0) 2020.02.18
2020-02-17 TIL  (0) 2020.02.17
2020-02-16 TIL  (0) 2020.02.16

스택과 스택의 노드 

 

링크드 리스트는 배열과 달리 인덱스로 노드에 접근할 수 없습니다. 

리스트를 쓰면 배열과는 달리 용량에 제한을 두지 않아도 된다는 장점이 있습니다. 

그러나 '인덱스'가 없기 때문에 자신의 위에 위치하는 노드를 가리키는 포인터가 필요합니다. 

( 자신의 위에 위치한다: 스택 구조에서 자기 노드를 기준으로 최상위 노드 방향을 '위'라고 한 것입니다. )

typedef struct Node {
	char* data;
	struct Node* nextNode;
}Node;

 

스택의 구조체입니다. 

배열과는 다르게 최대길이, 최상위 노드의 인덱스가 필요 없습니다. 

그 대신 리스트의 헤드와 테일을 가리키는 포인터가 필요합니다. 

스택의 구조체에서 

헤드는 리스트의 '시작점'을 뜻하고, 테일은 '최상위 노드'를 가리킵니다. 

 

typedef struct LLStack {
	Node* list;
	Node* top;
}LLStack;

 

 

스택생성

 

먼저, 스택을 자유저장소(==스택메모리)에 생성하는 CreateStack() 함수를 만듭니다. 

 

void CreateStack(LLStack** stack) {

	(*stack) = (LLStack*)malloc(sizeof(LLStack));
	(*stack)->list = NULL;
	(*stack)->top = NULL;

}

 

 

노드 생성 

노드 만큼의 메모리를 할당 합니다. 

문자열의 길이와 NULL문자에 필요한 1을  포함한 길이의 메모리를 할당받습니다. 

그곳을 newNode의 data가 가리키도록 합니다. 

자유저장소에 문자열을 저장해야 하므로, strcpy()를 이용하여 저장합니다. 

strcpy() 와 strlen() 함수를 쓰려면 #include <string.h> 선언이 필요합니다.  

Node* CreateNode(char* data) {

	Node* newNode = (Node*)malloc(sizeof(Node));
	newNode->data = (char*)malloc(strlen(data) + 1);
	strcpy(newNode->data, data);
	newNode->nextNode = NULL;

	return newNode;
}

 

 

노드를 메모리에서 해제 

문자열을 가리키는 포인터를 메모리에서 해제 후, 노드를 메모리에서 해제합니다. 

void FreeNode(Node* targetNode) {
	free(targetNode->data);
	free(targetNode);
}

 

스택을 메모리에서 해제 

 

스택 제거에 앞서 노드들을 메모리에서 전부 해제합니다.

마지막으로 스택을 메모리 해제 합니다. 

// 스택의 메모리해제 
void FreeStack(LLStack* targetStack) {

	while (!IsEmpty(targetStack)) {
		Node* popped = Pop(targetStack);
		FreeNode(popped);
	}

	free(targetStack);
}

 

 

 

Push 연산 

 

스택이 비었다면 새 노드가 헤드노드가 됩니다. 

그렇지 않다면, 테일 노드를 찾아서 그 뒤에 새 노드를 붙입니다. 

/* Push */
void Push(LLStack* stack, Node* newNode) {
	printf("[ Push ] %s 삽입 \n", newNode->data);

	if (NULL == stack->list) { // 스택이 비었다면, 뉴노드가 헤드.
		stack->list = newNode;
	}
	else {
		// 테일 노드를 찾아서, 그 뒤에 뉴 노드를 붙인다.

		Node* tempNode = stack->list;

		while (NULL != tempNode->nextNode) {
			tempNode = tempNode->nextNode;
		}

		tempNode->nextNode = newNode;
	}

	stack->top = newNode;
}

 

 다음과 같이 'top' 뒤에 새노르를 추가해도 됩니다. 

void Push(LLStack* stack, Node* newNode) {

	if (stack->top == NULL) {
		stack->list = newNode;
	}
	else {  // 테일 뒤에 붙인다 
		stack->top->nextNode = newNode;
	}

	stack->top = newNode;
}

 

 

 

Pop 연산

 

Pop 연산은 두 가지 경우를 처리합니다.  

헤드가 탑인 경우 (스택에 노드가 하나 밖에 없다)

탑 직전 노드를 찾아야 하는 경우 (탑 직전 노드를 탑 노드로 갱신해준다)

Node* Pop(LLStack* stack) {

	Node* topNode = stack->top;
	   
	Node* current = stack->list;

	if (current == topNode) { // 헤드가 탑이라면, 1개 남은 노드를 제거하는 상황.
		stack->top = NULL;
		stack->list = NULL;
	}
	else { 	// top의 직전 노드를 찾는다

		while (current->nextNode != stack->top) {
			current = current->nextNode;
		}

		current->nextNode = NULL;
		stack->top = current;		//top 갱신
	}
	
	return topNode;
}

 

 

스택이 비어있는지 확인 

int IsEmpty(LLStack* stack) {
	return (NULL == stack->list);
}

 

 

스택에 노드가 몇개 있는지 확인 

int GetSize(LLStack* stack) {
	
	Node* temp = stack->list;
	int count = 0;

	while (temp != NULL) {

		temp = temp->nextNode;
		count++;

	}

	return count;
}

 

728x90

'알고리즘 > 알고리즘 C' 카테고리의 다른 글

링크드 큐  (0) 2020.03.10
순환 큐  (0) 2020.03.09
배열로 구현하는 스택  (0) 2020.02.18
환형 링크드 리스트  (0) 2020.02.17
더블 링크드 리스트  (0) 2020.02.14

오늘 한 일 

 

환형 링크드 리스트를 다시 보고, 스택을 배열로 짜봤다. 

공부한 내용과 코드를 포스팅으로 정리했다. 

 

 

 

생각거리 

 

나름 깔끔한 포스팅을 위해 카카오 오븐을 이용해 그림을 그렸는데. 귀찮으면서도 재미있었다.

포스팅을 정성껏 해주는 사람들의 정성을 절감했다. 

내일은 SQLD에 더 시간을 들여야지. 

728x90

'일상 > Today I Learn(TIL)' 카테고리의 다른 글

2020-02-21 TIL  (0) 2020.02.21
2020-02-19 TIL  (0) 2020.02.19
2020-02-17 TIL  (0) 2020.02.17
2020-02-16 TIL  (0) 2020.02.16
2020-02-14 TIL  (0) 2020.02.14

+ Recent posts