반응형

포인터에 관한해서.

https://ansan-survivor.tistory.com/1237

 

[C언어] 포인터란? 포인터에 대해 쉽게 이해하기. (포인터 변수 사용하기, 포인터로 값 변경하기,

(알아두기) 컴퓨터는 32비트와 64비트를 많이 사용한다. 이는 1번 처리에 사용할 수 있는 메모리의 크기이다. 만약 32비트(4byte) PC라면, 8 byte를 할당해도 저장할 수 있는 공간은 4byte 뿐이다. 나머지

ansan-survivor.tistory.com

 

더블포인터에 관해서.

https://ansan-survivor.tistory.com/1288

 

[C언어] 포인터의 포인터 (더블 포인터, 이중 포인터, 삼중 포인터) 이해하기 예제

앞서 간단하게 포인터란 무엇인지, 예제를 통해 설명. https://ansan-survivor.tistory.com/1237 [C언어] 포인터란? 포인터에 대해 쉽게 이해하기. (포인터 변수 사용하기, 포인터로 값 변경하기, (알아두기)

ansan-survivor.tistory.com

 

더블포인터의 swap 예제.

#include <stdio.h>

/*
	더블포인터 **ptr
	더블 포인터를 이용해 
	swapIntptr 함수 만들기.
	num1 -> num2 값으로,
	num2 -> num1 값으로,
*/

//	주소값의 인자를 받기 위해
//  (*p1)의 자료형 int*, ptr1에 저장하기 위해서는 자료형이 같아야 한다.
void SwapIntPtr(int* * p1, int* * p2)							
{
	int * temp = *p1;	//	*p1 = ptr1 을 의미, ptr1의 주소를 temp에 저장.
	*p1 = *p2;			//	ptr2의 주소를 ptr1에 저장.
	*p2 = temp;			//	*p2 = ptr2 이고, ptr2의 자료형은 (int *) 이므로 temp의 자료형과 같아서 대입 가능.
}

int main()
{
	int num1 = 10, num2 = 20;		
	int * ptr1 = NULL;
	int * ptr2 = NULL;	//	포인터 초기화
	
	ptr1 = &num1, ptr2 = &num2;

	SwapIntPtr(&ptr1, &ptr2);	//	함수를 통해 값을 변경하려면, 그 주소값을 인자로 전달해야함.

	/*
		즉, p1 -> ptr1 -> num1 을 가리키고,
			p2 -> ptr2 -> num2 를 가리킴.
	*/


	printf("num1: %d\n num2: %d \n", *ptr1, *ptr2);

	return 0;
}
반응형

(결과)

 

 

반응형
반응형

앞서 간단하게 포인터란 무엇인지, 예제를 통해 설명.

https://ansan-survivor.tistory.com/1237

 

[C언어] 포인터란? 포인터에 대해 쉽게 이해하기. (포인터 변수 사용하기, 포인터로 값 변경하기,

(알아두기) 컴퓨터는 32비트와 64비트를 많이 사용한다. 이는 1번 처리에 사용할 수 있는 메모리의 크기이다. 만약 32비트(4byte) PC라면, 8 byte를 할당해도 저장할 수 있는 공간은 4byte 뿐이다. 나머지

ansan-survivor.tistory.com

 

보통 일반적으로 많이 사용되는 것은, * 하나만을 사용하는 "싱글포인터"이다.

때로는 필요에 의해 포인터에서 또다른 포인터로 참조를 하는 더블포인터, 또 더 참조하면 트리플포인터 까지 사용된다.

위와 같은 다중포인터에 대한 예제.

 1. double* ptr = &num;  => ptr의 타입은 double* 으로 num의 주소값을 저장.

 2. double* *dptr = &ptr;   => dptr은 double* 타입인 ptr이 대입되므로, *을 하나 더 붙여 double** 으로 만듦

#include <stdio.h>

/*
	포인터의 포인터에 대한 이해.
	변수의 주소값을 저장하기 위해서 * 을 추가 하기만 하면 된다.
*/

int main()
{
	double num = 3.14;
	double* ptr = &num;

	// ptr의 타입이 double* 이므로 dptr을 포인터 선언하기 위해서는 *를 더 붙인다.
	double** dptr = &ptr;
	// dptr의 타입이 double** 이므로 tptr을 포인터 선언하기 위해서는* 를 더 붙인다.
	double*** tptr = &dptr;

	/*
		위에 포인터의 정의를 통해, (참조관계)
		tptr -> dptr -> ptr -> num  이런식으로 포인터가 가리키고 있다.
	*/
	printf("num값: %f\n", num);
	printf("ptr값: %f\n", *ptr);
	printf("dptr값: %f\n", **dptr);
	printf("tptr값: %f\n", ***tptr);

	return 0;
}

반응형

위와 같은 참조 관계가 구성되어있기 때문에, num의 값을 새로운 포인터변수로 바꿔주면 모두 바뀌게 된다.

새로운 ptr2를 선언해서 num의 주소값을 넣고 값을 5.2를 대입해보기

#include <stdio.h>

/*
	포인터의 포인터에 대한 이해.
	변수의 주소값을 저장하기 위해서 * 을 추가 하기만 하면 된다.
*/

int main()
{
	double num = 3.14;
	double* ptr = &num;

	// ptr의 타입이 double* 이므로 dptr을 포인터 선언하기 위해서는 *를 더 붙인다.
	double** dptr = &ptr;
	// dptr의 타입이 double** 이므로 tptr을 포인터 선언하기 위해서는* 를 더 붙인다.
	double*** tptr = &dptr;

	// 새로운 ptr2선언
	double* ptr2 = NULL;
	ptr2 = &num;
	*ptr2 = 5.2;

	/*
		위에 포인터의 정의를 통해, (참조관계)
		tptr -> dptr -> ptr -> num  이런식으로 포인터가 가리키고 있다.
	*/
	printf("num값: %f\n", num);
	printf("ptr값: %f\n", *ptr);
	printf("dptr값: %f\n", **dptr);
	printf("tptr값: %f\n", ***tptr);

	return 0;
}

모두 num을 참조하기 때문에 다 바뀌게 되었다.

가리키고 있는 대상의 주소값을 확인하기

#include <stdio.h>

/*
	포인터의 포인터에 대한 이해.
	변수의 주소값을 저장하기 위해서 * 을 추가 하기만 하면 된다.
*/

int main()
{
	double num = 3.14;
	double* ptr = &num;

	// ptr의 타입이 double* 이므로 dptr을 포인터 선언하기 위해서는 *를 더 붙인다.
	double** dptr = &ptr;
	// dptr의 타입이 double** 이므로 tptr을 포인터 선언하기 위해서는* 를 더 붙인다.
	double*** tptr = &dptr;

	// 새로운 ptr2선언
	double* ptr2 = NULL;
	ptr2 = &num;
	*ptr2 = 5.2;

	/*
		위에 포인터의 정의를 통해, (참조관계)
		tptr -> dptr -> ptr -> num  이런식으로 포인터가 가리키고 있다.
	*/
	printf("num값: %f\n", num);
	printf("ptr값: %f\n", *ptr);
	printf("dptr값: %f\n", **dptr);
	printf("tptr값: %f\n", ***tptr);


	// 모두 가리키는 대상은 num의 주소값
	printf("num주소: %9p\n", &num); // ptr은 num의 주소값을 가리킴
	printf("ptr이 가리킴: %9p\n", ptr); // ptr은 num의 주소값을 가리킴
	printf("dptr이 가리킴: %9p\n", *dptr);
	printf("tptr이 가리킴: %9p\n", **tptr);
	
    return 0;
}

모두 한곳을 가리키고 있다.

 

 

포인터 변수 연산 이해 과정.

아래와 같이 괄호를 활용해서 연산 순서를 이해해보면 더 이해를 잘할 수 있다.

 

반응형
반응형

mysql을 실행하는데 아래와 같은 에러가 발생.

 

 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

반응형

이는 대부분 MySQL서버가 실행되지 않아서 그렇다.

종료할 때 자동실행되도록하는 enable설정을 하지않았다면, 리눅스 서버를 껐다가 켜면 MySQL 서버는 꺼져있다.

 

고로 해결 방법은, 다시 켜면된다. 그리고 자동 실행되도록 등록까지 해놓는다.

 * MySQL인 경우,

sudo systemctl start mysqld
sudo systemctl enable mysqld

 * Mariadb 인 경우,

sudo systemctl start mariadb
sudo systemctl enable mariadb

 

 

 

 

반응형
반응형

먼저 Oracle사에서 만든 MySQL이 점점 유료화가 되면서 자유재단에서 동일한 구조를 가진 MariaDB가 탄생했다.

MySQL이나 MariaDB나 똑같은 SQL이라고 생각하면 편리하다.

 

먼저 리눅스 CentOS 7 에 MariaDB를 설치하는 방법은 아래를 참고한다.

https://ansan-survivor.tistory.com/1185

 

[CentOS 7] 리눅스 Maria DB(마리아DB), MySQL 설치하기, MySQL 계정 생성 암호 설정

MariaDB를 새로 설치할때, 기존의 것과 충돌 방지를 위해 삭제명령을 한번 해주면 좋다. 삭제 방법은 아래 참고. https://ansan-survivor.tistory.com/1184 [CentOS 7] 리눅스 Maria DB(마리아DB), MySQL 제거하기..

ansan-survivor.tistory.com

 

이제 리눅스위에 SQL서버를 구축한 후, MySQL 계정생성, 간단한 DB생성 방법에 관한 것이다.

 

<계정 설정>

 

0.  SQL실행 명령 및 나가기 명령

  - 실행

mysql

mysql을 입력하면, 위와같이 MariDB &amp;gt; 으로 변경된다.

  - 나가기

exit

Bye가 뜨면 다시 Shell으로 나가진다.

 

 

1. 루트 계정 설정, 패스워드 변경

/usr/bin/mysqladmin -u root password

 

2. 루트 접속

mysql -u root -p

    패스워드 입력하면 접속 됨.

 

3. 새로운 계정 생성, 아이디와 패스워드를 생성.

 * wordpress-user : 내가 원하는 ID , your_strong_password : 내 패스워드 입력

CREATE USER 'wordpress-user'@'localhost' IDENTIFIED BY 'your_strong_password';

 * 위에서 만든 wordpress-user 입력. 

CREATE DATABASE `wordpress-db`;
GRANT ALL PRIVILEGES ON `wordpress-db`.* TO "wordpress-user"@"localhost";
FLUSH PRIVILEGES;

exit

 

<DB 생성 및 조작>

데이터베이스 생성하는 방법은 아래와 같다.

CREATE DATABASE [IF NOT EXISTS] database_name
[CHARACTER SET charset_name]
[COLLATE collation_name]

 - [ ] 에 들어가있는 것은 옵션이므로 생략 가능

 - 중복되는 db이름이 있으면 에러를 일으킴

 - [IF NOT EXITSTS] 라는 옵션값을 넣으면 해당 이름이 없다면 생성, 있다면 생성 안함

 - 나머지 옵션들은 쓰지 않으면 default로 생성 함.

 

 

1. 로그인 (여기서는 root로 로그인 했다)

mysql -u root -p

로그인 성공

    (옵션) 어떤 데이터베이스가 있는지 확인하기

SHOW DATABASES;

 

2. 새 데이터베이스 생성하기

CREATE DATABASE testdb;

위와 같은 메세지가 생성된것, 중복된 이름이면 에러 발생

    (옵션) 어떤식의 옵션으로 생성했는지 상세보기

SHOW CREATE DATABASE testdb;

어떤 옵션으로 생성했는지 뒤에 보여준다.

 

3. 해당 database 사용하기 (선택하기), 테이블 생성하기 - 테이블 생성을 위해서는 해당 db가 선택되어야 한다.

    3-1. db 선택

USE testdb;

선택이 되며, 프롬프트에 해당 db이름이 잡힌다.

    3-2. db에 아래와 같은 테이블을 생성해본다.

출처:&nbsp;https://www.everdevel.com/MySQL/creating-table/

    * 주의할점은 위에 따옴표는 ' 가  아닌 ` 이다. (1번키 왼쪽에 있는)

CREATE TABLE `student_tb` (
    `sno` int(11) NOT NULL,
    `name` char(10) DEFAULT NULL,
    `det` char(20) DEFAULT NULL,
    `addr` char(80) DEFAULT NULL,
    `tel` char(20) DEFAULT NULL,
    PRIMARY KEY (`sno`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 

    3-3. 테이블 생성 확인하기

SHOW TABLES;

    3-4. 필드가 잘 생성되었는지 확인하기

    -> DESC 테이블명

DESC student_tb;

 

4. 새로운 필드 삽입하기 (중간에 삽입하기)

  -> (student_db 테이블의 age라는 이름을 int형 타입으로 name뒤에 생성) 이라는 뜻이다.

ALTER TABLE student_tb ADD age int AFTER name;

name아래 age가 추가됨을 확인

5. 새로운 필드 삽입하기 (맨끝에 삽입하기)

  -> 맨뒤에 AFTER 필드명이 없으면 맨 아래 자동 생성된다.

ALTER TABLE student_tb ADD sex int;

 

6. 필드 삭제하기 (DROP 명령)

ALTER TABLE student_tb DROP age;

age가 삭제 된다.

7. 필드 수정하기 (CHANGE 명령)

ALTER TABLE student_tb CHANGE tel phone int;

tel이라는 이름이 phone으로 변경되었다.

 

8. db에 또다른 테이블 만들기, 그리고 삭제 해보기

    testdb 내 다른 테이블을 만든다.

 * 테이블 생성

CREATE TABLE `delete_tb` (
    `name` char(10) DEFAULT NULL,
    `tel` char(30) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 (확인)

SHOW TABLES;

 * delete_tb 을 삭제해보기

DROP TABLE delete_tb;

delete_tb가 삭제됨을 확인

 

 

 

(아래 블로그 출처)

https://www.everdevel.com/MySQL/creating-table/

 

everdevel

웹 입문 사이트 everdevel - HTML, CSS, JavaScript, jQuery, ReactJs, MySQL, PHP

www.everdevel.com

https://www.mysqltutorial.org/mysql-create-database/

 

MySQL CREATE DATABASE - Creating a New Database in MySQL

This tutorial shows you step by step how to use the MySQL CREATE DATABASE statement to create a new database in the MySQL server.

www.mysqltutorial.org

 

 

반응형
반응형

아마추어, 개인이 아닌 무료 전문 디자이너가 무료로 홈페이지를 제작해주는 사이트가 있어 추천 공유한다.

홈페이지 생성을 위해서 견적을 받아보면, 심플한 사이트까지도 생각보다 비용이 많이든다.

PC홈페이지나 모바일, 테블릿에서도 잘 작동하는 반응형의 웹페이지를 만드려면 추가비용을 줘야 하고

비용증가는 결국 홈페이지 제작의 꿈을 포기하게 만든다...

 

아니 아이디어가 있는 데, 홈페이지를 만들 기술이 없다면 억울하지 않는가?

그래서 무료로 전문가의 도움을 받을 수 있다.

 

바로 "바른웹" 업체에서 이러한 서비스를 제공한다.

https://bjpleaders.co.kr/mtaVn9a6

 

무료홈페이지제작

 

leaderscpa.com

 

제작자가 임대하는 웹페이지가 아닌, 바로 의뢰하는 사람, 이글을 보는 여러분이 해당 홈페이지를 소유할 수 있는 홈페이지를 제작해준다. 그것도 무료로 ! 전문가가 !

대부분의 업체들은 임대형 서비스로 홈페이지를 관리하면, 수정하고 싶어도 돈을 요구하고... 의뢰인들은 이만저만 불만이 많다. 뭐 버튼 옮기는거 조차도 돈을 지불하라고 하고...

하지만 바른웹은 다른 임대홈페이지 제작 업체와 아래와 같은 차별성을 둔다.

- 소유권 자체를 의뢰인에게 넘긴다.

- 초기에만 비용을 지불하고 기간이 넘어가면 완전히 비용지불없이 다 넘겨준다.

- 심지어 버튼수정에도 돈을 요구하는 다른 업체와 달리, 임의수정에 돈을 요구하지 않는다.

이 화사를통해 제작된 웹페이지만해도 벌써 1만개 이상이라고 한다.

홈페이지 제작을 하면 까다로운 작업들이 있다. 보안, 데이터베이스, 사용자편의성, 트레픽 등등 이러한 작업들을 내가 관리하는게 아니라, 바른웹에 3만원 관리비만 내면 관리해준다고 한다.

웹페이지는 당연히 검색노출이 중요하다.

검색노출을 위해서는 각 검색콘솔업체(구글, 네이버, 다음 등) 본인의 포털 사이트를 등록해야 하는데, 이 또한 함께 해준다.

이미 위와 같은 업체들이 바른웹을 통해 사이트를 구축했다고 한다.

자, 이제 아이디어가 있다면, 사업계획이 있다면, 웹페이지 제작에 고민하지 말고

일단 전문가 상담을 통해 무료로 홈페이지를 제작해본다 !~

(문자가 안오면 스팸문자함 보면 있을 것이다)

반응형
반응형

MySQL Workbench 툴을 이용해서 쿼리를 사용하는 방법이다.

 

Workbench가 없는 경우 설치 방법은 아래 참고.

https://ansan-survivor.tistory.com/1130

 

[MySQL] MySQL windows 10에 설치하기 환경 세팅하기, 오라클 DBMS 설치하기

기본 요구사항 Windows 10 64 bit. (win7은 MySQL 8.0.3 rc버전) (32bit는 MySQL 5.7.x 버전) 1. 아래 공식 다운로드 페이지에서 다운로드 https://downloads.mysql.com/archives/community/?version=8.0.17 MySQL..

ansan-survivor.tistory.com

반응형

<Workbench에서 쿼리를 사용하는 방법 순서>

  1. 원하는 db선택

  2. SQL아이콘 선택 (새 SQL 입력창 불러오기)

  3. SQL 쿼리문 작성

  4. 번개아이콘 선택 (쿼리 실행)

  5. 결과 확인

 

 

 

 

반응형
반응형

OrCAD / Allegro PCB에서 필수로 사용되는 Constraint Manager창이다.

 

이때 Worksheet Selector가 왼쪽에 있는데, 실수로 지웠을 때 다시 되돌리는 방법.

실수로 x를 눌러 아래와 같이 지워졌다면?

아래와 같이 되돌린다.

 

1. View - View Options

2. Worksheet Selector 선택

(결과) 다시 생겼다.

 

 

반응형
반응형

 

아래 사이트에서는 영문으로 이력서를 작성할 때 키워드를 추천해주며 꾸미기 힘든 UI를 여러 템플릿을 소개해주며 작성하기 편하게 되어있다.

https://www.livecareer.com/

반응형

 

사용방법은 간단하다.

 

1. Build a resume로 시작하면 된다

 

2. 정보를 입력하면, 템플릿에 알아서 정보가 들어간다.

 

3. 프리뷰 보기도 가능하다.

프리뷰를 누르면 위와 같이 어떤식으로 나오나 미리보기가 된다.

 

4. 왼쪽과 같이 추천 샘플 문장들이 있으니 참고해서 입맛에 맞게 수정해서 쓴다

 

5. 맨 마지막에는 여러 템플릿을 선택하면 해당 템플릿에 맞게 변경된다.

 

6. 구글 로그인

 

7. 결제하고 쭉 진행하면 템플릿을 쓸 수 있다.

 

Tip. 만약 유료로 사용하기 싫으면 결제까지 하지말고 위에 키워드넣으면 단어 문장 추천하는 것만 참고해도 유용하다.

 

 

반응형
1···27282930313233···181

+ Recent posts