출처: https://software-creator.tistory.com/11

 

플러터를 빠르게 배우려면

어떻게 UI를 코드로 만드는지 알아야합니다.

다트를 공부하고 플러터를 배우는 것도 좋지만

플러터를 갖고 위젯을 조금씩 수정하고, 핫리로딩해보다가

모르는 게 나올 면 그때 다트를 찾아보는 게 효율적입니다.

제가 추천하는 학습 순서는 다음과 같습니다.

일단 위젯과 레이아웃의 사용법에 익숙해지고,

그 다음에 구글이 제공한 풍부한 예제를 분석해보고

실제 앱을 만들어보는 겁니다.

 

추천 사이트 학습 순서

1.코드랩 2.플러터 레이아웃 튜토리얼 문서 3.구글 플러터 예제 (갤러리) 분석 4.플러터 행성 만들기 튜토리얼 5.실제 제작

1. 코드랩- 첫 플러터 앱 만들기 1, 2

  • 구글 코드랩은 정말 설명이 깔끔한 편이고, 플러터 튜토리얼도 잘 되어 있습니다.

  • 배울 수 있는 것 : 첫 플러터앱 만들기, 위젯 개념 잡기, 리스트뷰 만들어보기, 버튼 클릭(Interactivity), 다른 페이지로 넘어가기 (Routing)

     

2. 플러터 레이아웃 튜토리얼 문서

  • 플러터도 위젯과 레이아웃의 종류가 다양한데요. 그 차이를 알아야 플러터를 자연스럽게 쓸 수 있죠. 이 문서를 보면 Row, Column, Expanded의 차이부터 시작해, 각종 레이아웃들(GridView, ListView, Stack )이 다 나와 있습니다. 무엇보다 예제 코드가 짧아서 바로 실행해 보기 좋죠.
  • 배울 수 있는 것 : 레이아웃에 대한 깊은 이해

 

3. 구글 예제 분석

  • 이런 게 있었나 싶은 위젯이나 기능들이 정말 많습니다. 꼭 폰에 넣어서 확인하면서 소스 분석해보세요.
  • 배울 수 있는 것 : 쿠퍼티노 디자인, 구글 표준 코드

 

4. 행성 정보 앱 만들기 (미디엄 글)

  • 5개의 포스트에 걸쳐 플러터의 기본 기능을 알려줍니다.
  • 디자인이 깔끔한데다가 2페이지로 구성된 앱이라 어떻게 페이지를 이동하는지 알 수 있습니다.
  • 배울 수 있는 것 : 이쁘게 레이아웃 잡기, Routing(페이지 이동), 애니메이션, 전반적인 복습

 

마무리

사실 여기까지 했으면 기본적으로 UI만드는 건 무리가 없습니다.

이제 제대로 앱을 만드려면 아래의 것들을 천천히 찾아보시면 되요.

  • 안드로이드, ios 네이티브 코드 쓰기
  • 웹에서 데이터 받아서 파싱하기
  • 각종 플러그인(로컬 데이터 베이스, 파이어베이스, 지도) 써보기
  • 위젯 깊이 알기 (렌더링 과정, inheritedWidget)

 

저도 이 글에서 소개한 글을 통해 플러터를 배웠고, 같은 순서로 튜토리얼을 만들어보려고 합니다~!

아, 그리고 전 유데미 플러터 과정은 좀 안 맞더군요. 별로 안 배웠는데 문제를 풀어야되서요.

 

영상으로 배우실 거면 유튜브 TensorProgramming도 좋습니다.

설명이 깔끔합니다.

세부적인 것도 다 풀어서 이야기해줍니다.

여기는 왜 async를 쓰고, isolate는 왜 쓰고, 왜 모델을 쓰는지 등 차근차근 말해주죠.

이해가 잘 됩니다. 단점은 영어란 거죠.

그래도 무료 영상 중에 이정도 퀄리티인 곳은 없습니다.

 

그럼 플러터 개발을 즐기실 수 있기를 바라며 글을 마치도록 하겠습니다.

flutter에서 생성한 폴더에 이동 후 실행 하면 정상적으로 실행된다. 

출처: https://pragp.tistory.com/entry/Mac-OS-X에서-루트-사용자su-활성화-및-사용 [Pragmatic Programming]

 

처음 맥에서 su 명령어를 사용하려고 패스워드를 입력하면 

su: Sorry

라고 나오면서 들어가 않습니다.

이는 비밀번호 초기 설정이 안되어있어서 나오는 것인데 이렇게 하면 설정할 수 있습니다.

'sudo -s' 를 치고 비밀번호를 입력해 bash-3.2# 을 들어갑니다. (경고창은 무시해도 괜찮습니다.)

그 후 'passwd root' 를 입력해서 root 의 비밀번호를 설정해 줍니다.

 

 

이제 su를 치고 설정된 비밀번호를 입려하면 루트 사용자로 들어갈 수 있습니다.



출처: https://pragp.tistory.com/entry/Mac-OS-X에서-루트-사용자su-활성화-및-사용 [Pragmatic Programming]

출처: https://ohgyun.com/390


문제:
PATH 정보를 조회해보니, git과 관련된 bin 디렉토리가 경로의 마지막에 포함되어 있다.

  $ echo $PATH
  ..(중략)..:/usr/local/git/bin

얼마 전 .bash_profile을 정리하면서,
추가적으로 정의하는 PATH 경로는 아래처럼 PATH의 앞 부분에 추가하도록 했었다.
  $ export PATH=새패스:$PATH

어딘가에서 추가되었다면 앞 부분에 있는 게 당연한데,
마지막에 정의되어 있는 것이 이상해 어디서 정의됐는지 파일을 뒤적여봤다.
그리고, /etc/paths.d/git 파일에 정의되어 있는 걸 발견했다.

/etc/paths.d 는 처음 들어 생소한 데다,
/etc/paths 도 자세히 확인해본 적이 없어 잘 모르겠다.

/etc/paths와 /etc/paths.d 의 차이가 뭘까?
PATH는 어떻게 초기화되고 있는 걸까?


해결책:

두 파일 모두 시스템의 초기 PATH를 정의하기 위한 목적으로 사용된다.

/etc/paths 를 조회해보면 각 경로가 아래처럼 라인 단위로 정의되어 있는데,

  /usr/bin
  /bin
  /usr/sbin
  /sbin
  /usr/local/bin

위에서부터 순서대로 각 라인 단위로 PATH 변수에 추가된다.

  /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin

처럼 말이다.


/etc/paths.d 는 디렉토리다.
여기에 초기화 시 필요한 PATH를 파일 단위로 추가할 수 있고,
각 파일에 정의되어 있는 경로가 마찬가지로 라인 단위로 PATH 변수에 추가된다.

/etc/paths.d 에 여러 파일이 존재한다면,
파일 이름의 오름차순 순으로 추가된다.

PATH 경로에 /usr/local/git/bin 이 추가되어 있었던 이유는,
/etc/paths.d/git 파일 내에 해당 경로가 포함되어 있었기 때문이다.


하지만, 사실 /etc/paths 가 시스템의 초기 PATH 정보를 가지고 있는 건 아니다.
직접 /etc/paths 파일을 삭제해보거나 수정해보면 알 수 있는데,
파일을 삭제하더라도 시스템의 중요 경로는 PATH 변수에 정의되어 있다.
(테스트 해보려면, 어드민 권한으로 paths를 삭제하고 새 터미널을 띄워보면 된다)


PATH가 초기화되는 방식을 여러모로 확인해봤다.
맥 OS X 레오파드부터는, /usr/libexec/path_helper 에서부터 PATH가 설정되는데,
전체적인 프로세스는 아래와 같다. (라고 추측한다)

  1. 로그인 쉘이 시작되면 /etc/profile 을 실행한다.
  2. /etc/profile 에서는 /usr/libexec/path_helper 를 실행한다.
  3. path_helper는 /etc/paths 로부터 초기 PATH를 설정한다.
      한 라인 당 하나씩 순서대로 추가한다.
  4. 다음으로 /etc/paths.d 디렉토리에 있는 각 파일로부터 PATH를 설정한다.
      파일 이름의 오름차순 순으로, 각 파일에 정의된 순서대로 추가한다.
  5. 만약, 시스템에 필요한 중요한 경로가 PATH에 누락되어 있다면 추가한다.
      이 떄, 이미 추가되어 있는 것들을 제외하고 추가한다.
      /usr/bin:/bin:/usr/sbin:/sbin 가 PATH에 추가된다.


5번의 항목은, /etc/paths 를 삭제하거나 수정해보면 테스트해볼 수 있는데,
/etc/paths 에서 중요 경로가 누락된 경우, 아래와 같이 초기화된다.

  /etc/paths에서 설정한 경로:/etc/paths.d에서 설정한 경로:중요 경로 중 누락된 것


따라서, 실제 초기화 시점의 PATH를 변경하고자 한다면,
path_helper가 실행되기 전인 /etc/profile 에서 초기화하는 게 가장 좋은 방법이다.


출처:https://gomcine.tistory.com/entry/PHP%EB%A5%BC-%ED%99%9C%EC%9A%A9%ED%95%9C-%EC%9B%B9%ED%8E%98%EC%9D%B4%EC%A7%80-%ED%8C%8C%EC%8B%B1-%EA%B8%B0%EB%B2%95-%EC%9A%94%EC%95%BD


가끔 사이트 개발을 하거나 여러가지 데이터를 모으기 위해 웹페이지를 파싱해야할 경우가 있죠. 다양한 언어와 기법을 활용하여 웹페이지 파싱이 가능한데요. 저는 주로 PHP를 활용하여 웹페이지 스크랩하고 정규표현식을 통해 파싱 작업을 하고 있습니다. 그 내용을 간단하게 요약해 보도록 하죠.



파싱 대상 html 가져오기

1. echo file_get_contents(웹페이지 URL); => 서버 설정으로 막힌 경우가 많음.
2. curl (스누피라는 라이브러리 쓰면 좀 편함)
3. fsocketopen (최종 방법)


파싱할 때 주로 쓰는 함수 5가지

1. str_replace(".", "", $string); // . 삭제
2. $language = preg_replace( '/[^a-zA-Z_]/', '', $_REQUEST['language'] ); // 정규식으로 치환
3. preg_match_all('/[가-힣a-zA-Z0-9 ]*/i', $resultHtml, $find_words); => 그냥 preg_match 하면 1개만 가져옴
4. explode("-", "2017-09-20");
5. substr("테스트", 1, 2); => 스트
6. strip_tags("<b>테스트</b>")
7. print_r($array); => 배열 출력


정규표현식 상식

. => 모든 문자, .*? : 모든문자 최초매칭
greedy vs non-greedy (최대매칭 vs 최초매칭 => 조건이 만족되는 최초의 위치까지만 일치하는 것으로 간주 / ?를 사용함)
() : 그룹, [] : 범위


정규표현식 예시

preg_replace("/[#\&\+\-%@=\/\\\:;,\.'\"\^`~\_|\!\?\*$#<>()\[\]\{\}]/i", "", $title); // 특수문자 제거, 공백은 포함

/["[가-힣a-zA-Z0-9 ]*",/i

/\[[가-힣a-zA-Z0-9]*\]/
/[0-9,]+건/
/[0-9.]*[0-9.]/
/[0-9-]*[0-9-]/

/([0-9]{3}cm)/i
/([0-9]{2,3}kg)/i
/([A-Z]{1,2}형)/i

/^(to|cc|bcc|Reply-To)$/
/[^A-Za-z0-9!#$%&'*+\/=?^_`{|}~ -]/
/Location:\s([^\s]*)\s/
/(src|background)=["'](.*)["']/Ui
/^Get(\w+Service)$/I


결국 웹페이지 파싱 작업은 첫 번째로 웹페이지를 어떻게 스크랩할 것인가 그리고 두 번째로 가져온 html 데이터를 어떻게 파싱해서 데이터를 추출할 것인가에 달려 있는 것 같습니다. 첫 번째 부분은 어느 정도 정형화되어 있기 때문에 한 번만 잘 소스를 만들어두면 계속 재사용할 수 있으며 두 번째 부분은 웹페이지 구조를 얼마나 잘 분석하고 정규표현식을 잘 활용하여 데이터를 뽑아내는가에 달려 있는 것 같습니다.

출처: https://gomcine.tistory.com/entry/%ED%8E%98%EC%9D%B4%EC%8A%A4%EB%B6%81-API-%EC%97%B0%EB%8F%99-%EB%B0%8F-%EA%B0%9C%EB%B0%9C-%EB%B0%A9%EB%B2%95-%EC%A0%95%EB%A6%AC

 

페이스북 페이지를 운영하면서 포스팅 자동화 방법을 찾다가 직접 프로그램을 개발하기로 하였습니다. 그러면서 Google API와 Facebook API를 사용하게 되었는데요. 지난번 Google API 개발 방법 정리에 이어 이번에는 Facebook API 연동 및 개발 방법을 정리해봤습니다. 

 

1. 페이스북 앱 개발 과정 개요

2. 페이스북 API 종류

3. 페이스북 그래프 API와 SDK

4. 페이스북 개발자 계정 생성과 앱 등록

5. 사용자 엑세스 토큰 발급

6. 페이지/그룹 엑세스 토큰 발급

7. 페이스북 앱 검수

1. 페이스북 앱 개발 과정 개요

페이스북 API를 사용하려면 다음과 같은 과정을 거쳐야 합니다. 

 

페이스북 개발자 계정 생성 -> 앱 등록 및 앱 ID 생성 -> 엑세스 토큰 발급 -> 앱 개발 및 테스트 -> 앱 검수 -> 서비스 시작

2. 페이스북 API 종류

페이스북 API는 크게 두 종류로 나뉩니다. 바로 그래프 API와 마케팅 API 인데요. 그래프 API(=Graph API)는 Facebook 소셜 그래프에 있는 정보를 조회하거나 쓸 수 있는 API로 페이스북 개발을 한다면 주로 이 API를 사용하게 됩니다.

 

 

페이스북 마케팅 API는 페북 광고 캠페인이나 보고서 등에 이용하는 API로 주로 광고 회사나 마케팅 회사의 프로그램을 개발할 때 사용합니다.

 

3. 페이스북 그래프 API와 SDK

사용자 게시물이나 페이지, 그룹 등에 자동으로 포스팅하거나 게시글을 조회하려면 그래프 API를 사용해야 합니다. 페이스북에서는 그래프 API 조금 더 편리하게 사용할 수 있도록 플랫폼별 SDK 설치를 지원하고 있습니다.

 

 

페이스북에서 공식으로 지원하는 SDK로는 안드로이드, iOS, Javascript, React, Swift, PHP 등이 있습니다. 될 수 있으면 페북 공식 SDK로 개발하는 것을 추천합니다.

 

참고로 그래프 API는 2015년 4월 30일 버전 1.0에서 2.0으로 업그레이드 되었으며, 2019년 현재 최신 버전은 3.2입니다. 페북 API 개발을 할 때 꼭 버전을 확인한 후 개발해야 합니다.

 

4. 페이스북 개발자 계정 생성과 앱 등록

 

먼저 facebook for developer 사이트에 접속해서 페이스북 개발자 계정을 생성하고 로그인해야 합니다. 본인 페이스북 계정이 있다면 그 계정으로 로그인하면 됩니다. 

 

 

▼ 개발자 계정 로그인을 하면 앱 대시보드가 나옵니다. 여기서 내 앱을 클릭하고 새 앱 만들기를 눌러줍니다. 해당하는 정보를 입력하고 완료하면 다시 대시보드가 나옵니다. 여기서 왼쪽 메뉴 중 설정 -> 기본 설정을 누릅니다.

 

 

▼ 기본 설정에서는 앱 ID와 앱 시크릿 코드를 확인할 수 있습니다. 앱 도메인에는 아직 개발 중이기 때문에 localhost를 입력합니다. 추후에 앱 검수를 요청할 때는 실제 도메인을 입력해야 합니다. 비즈니스 사용은 개인용으로 사용한다면 내 비즈니스 지원을 선택합니다.

 

 

▼ 하단에 사이트 URL에는 사용자 로그인 요청 후 콜백을 받을 소스를 입력합니다. 여기서는 PHP SDK를 사용했기 때문에 callback php 파일의 위치를 지정했습니다. 각 언어별 플랫폼별 맞는 콜백 주소를 입력해줍니다. 

 

 

5. 사용자 엑세스 토큰 발급

▼ 다음으로 Facebook 로그인 과정을 거칩니다. 이 과정을 거치면 Facebook 로그인 메뉴 왼쪽에 초록색 체크 표시가 나타나고 사용자 엑세스 토큰을 발급 받게 됩니다. 로그인 설정을 위해 좌측 메뉴에서 Facebook 로그인 > 설정을 클릭합니다.

 

 

▼ 아래와 같이 세팅을 합니다. 유효한 OAuth 리디렉션 URI에는 앞선 콜백 URL을 입력합니다. 개발 중인 경우 localhost 리디렉션은 따로 추가하지 않아도 됩니다. 반대로 운영 단계에 들어가면 반드시 입력해주어야 합니다.

 

 

▼ 운영 단계에서 OAuth 리디렉션 URI를 추가했다면 하단에 있는 검사기를 통해 URI 리디렉션 유효성을 검사할 수 있습니다. 

 

 

▼ 간단하게 본인 계정으로 Facebook 로그인 단계를 거치기 위해 왼쪽 메뉴에서 Facebook 로그인 > 빠른 시작을 클릭합니다. 그리고 본인에게 맞는 서비스를 클릭합니다. (여기서는 웹 선택)

 

 

▼ 사이트 URL에 콜백 리디렉션 URL을 입력하고 save합니다. 이 빠른 시작은 javascript 용 SDK를 이용했습니다. 만약 다른 언어나 플랫폼이라면 다음 단계를 실행합니다.

 

 

▼ 빠른 시작으로 Facebook 로그인을 할 수 있지만 javascript 개발 시에만 유용합니다. 이 때는 그래프 API 탐색기를 통해 간단하게 로그인 과정을 거칠 수 있습니다.

 

 

▼ 사용자 또는 페이지에서 사용자 토큰을 누르고 사용자 액세스 토큰 받기를 클릭합니다.

 

 

▼ 권한 추가에서 필요한 권한을 추가합니다. 여기서는 일단 페이스북 페이지에 자동으로 포스팅하기 위한 목적이기 때문에 manage_pages와 publish_pages 권한이 기본적으로 필요합니다. (참고 : 페이스북 페이지 시작하기 문서)

 

 

▼ 이제 Get Access Token 버튼을 누르면 사용자 액세스 토큰이 생성됩니다. 이 토큰 정보와 app id, app secret을 코드에 넣습니다. 아래 코드는 PHP로 개발한 사례로 제 GitHub 레파지토리를 참고하길 바랍니다.

 

 

위 예제에서는 facebook_login.php와 facebook_login_callback.php 파일을 통해 새로운 사용자 엑세스 토큰을 받을 수도 있습니다.

 

 

 

하지만 이 예제는 간단하게 페이지 자동 포스팅을 구현하기 위한 예제로 실제 다른 사용자에게 서비스하려면 페이스북 로그인 과정을 그에 맞게 코딩하여야 합니다.

6. 페이지/그룹 엑세스 토큰 발급

▼ 이제 사용자 엑세스 토큰을 통해 페이지 엑세스 토큰을 발급 받는 방법을 살펴보도록 하겠습니다. (그룹 엑세스 토큰 발급도 페이지 엑세스 토큰 발급 방법과 거의 동일합니다. ) 먼저 관리하고 있는 각 페이지의 목록과 페이지 별 access token을 조회합니다.

 

 

페이지 정보를 조회하는 방법은 그래프 API 탐색기에서 me/accounts?fields=access_token, name, id 를 입력하고 제출을 누릅니다. 이 때 "사용자 또는 페이지" 메뉴에 "사용자 토큰"으로 선택되어 있는지 확인하세요.

 

우측 상단에 있는 제출 버튼을 누르면 각 페이지별로 ID와 이름, 그리고 access token이 발급됩니다. 이 토큰은 페이지에 엑세스할 수 있는 토큰으로 사용자 엑세스 토큰과는 다릅니다.

 

▼ 참고로 그래프 API 탐색기 아래를 보면 "코드 받기"라는 버튼이 있습니다. 이 버튼을 누르면 각 Request 에 대한 플랫폼별 소스 코드 snippet을 볼 수 있는데요. 앱 개발을 할 때 이 코드들을 활용하면 됩니다.

 

 

▼ 아래 소스와 같이 그래프 api를 통해 페이지에 포스팅 할 수 있습니다. 이 때 page id와 page access token을 파라미터로 같이 보냅니다.

 

7. 페이스북 앱 검수

▼ 페이스북 페이지에 자동으로 포스팅 되는 기능을 만들어도 페이스북 API 앱 검수를 통과하지 못하면 쓸 수 없습니다. 테스트할 때 페이지에 포스트가 올라가긴 하지만 이 포스트는 관리자 혼자만 볼 수 있고 홍보도 할 수 없습니다.

 

 

페이스북은 최근 개인정보 유출 사태 등을 겪으면서 페이스 북 API 제한과 앱 검수를 강화했습니다. 따라서 앱 검수에 2주 또는 한 달이 걸리기도 하는데요. 단순 조회를 위한 API 사용은 앱 검수 절차가 필요 없지만 페이지나 그룹에 글쓰기 등을 하는 경우는 앱 검수가 필요합니다. 또한 페이스북 api 사용자 정보를 이용하면 검수가 더 엄격해집니다.

 

 

 

앱 검수 시에는 실제 도메인이며 https 로 서비스 해야 하며, 페이스북 권한 요청에 대한 스크린캐스트 영상을 업로드 해야 합니다. 페이스북 앱 검수에 대한 자세한 내용은 위 영상과 아래 글들을 참고하시길 바랍니다.

 

페북 앱 검수 참고글

Instagram API 연동하기 - Medium Blog

HOW DO I SETUP A FACEBOOK APP, TO ALLOW ME TO POST AUTOMATICALLY TO FACEBOOK?

 

페이스북 API 개발 참고 문서

Graph API page reference

Short-Term Tokens and Long-Term Tokens

Getting started with the Facebook SDK for PHP

PHP Facebook SDK 시작하기

Page API 시작하기

출처: https://toma0912.tistory.com/47

 

안녕하세요. 오늘은 제약사항에 대해서 포스팅 해보려고 합니다. 우선 '제약 조건'의 의미에 대해서 알아보고 간단한 예제를 통해 제약 조건에 대해서 알아보겠습니다.

 

제약조건(Constraint)?

 

제약조건(Constraint)이란, 데이터의 무결성을 지키기 위해 제한된 조건을 의미합니다. 즉, 데이터를 삽입할 때 무조건적으로 삽입되는 것이 아니라 어떠한 조건을 만족했을 경우에만 데이터가 삽입되도록 제약을 할 수 있는 것이라고 생각하시면 됩니다.

 

우선 기본적인 제약 조건들의 사용법에 대해서 알아보겠습니다.

// 제약조건 확인하기

DESC 데이터베이스 명.테이블 명;

 

// 제약조건 삭제

ALTER TABLE [테이블 명] DROP CONSTRAINT [제약조건 이름];

ALTER TABLE [테이블 명] DROP FOREIGN KEY [제약조건 이름];

 

// 제약조건 추가

외래키 : ALTER TABLE [테이블 명] ADD CONSTRAINT [제약조건 이름] FOREIGN KEY(컬럼 명)

REFERENCES [부모테이블 명](PK 컬럼 명) [ON DELETE CASCADE / ON UPDATE CASCADE];

 

기본키 : ALTER TABLE [테이블 명] ADD CONSTRAINT [제약조건 이름] PRIMARY KEY(컬럼 명);

 

// NOT NULL 제약 조건 추가

ALTER TABLE [테이블 명] MODIFY [컬럼 명] [데이터 타입] CONSTRAINT [제약조건 이름] NOT NULL;

 

우선, 기본적으로 테이블을 생성할 때 제약 조건을 아래와 같이 추가할 수 있습니다. 그리고 나서 간단한 예제를 통해 위의 제약조건에 대해서 알아보겠습니다.

 

 

제약 정의

 

 

위의 테이블 생성 코드를 살펴보면, a 열에는 NOT NULL  제약이 걸려 있습니다. b 열에는 NOT NULL 제약과 UNIQUE 제약이 걸려 있습니다.

c 열에는 아무런 제약사항이 없는 것을 확인할 수 있습니다. 이처럼 열에 정의하는 제약을 '열 제약'이라 부릅니다.

 

또다른 예제로 테이블에 제약을 정의하는 방법에 대해서 알아보겠습니다.

위 코드를 살펴 보시면, 제약에는 이름을 붙일 수 있습니다. 제약에 이름을 붙이면 나중에 관리하기 쉬워지므로 가능한 한 이름을 붙이도록 합니다. 제약 이름은 CONSTRAINT 키워드를 사용해서 지정합니다.

 

 

제약 추가

 

1) 열 제약 추가

 

ALTER TABLE 구문을 사용해서 c열에 NOT NULL 제약 조건을 추가한 뒤, 테이블을 보면 기본 생성 테이블과 다르게 NULL에 NO라고 제약이 추가된 것을 확인할 수 있습니다.

 

2) 테이블 제약 추가

 

테이블 제약은 ALTER TABLE의 ADD 하부명령으로 추가할 수 있습니다. 기본키는 테이블에 하나만 설정할 수 있으며, PRIMARY KEY 키워드를 사용해서 a를 기본키로 지정했습니다. 그리고, 이미 기본키가 설정되어 있는 테이블에 추가로 기본키를 작성할 수는 없습니다.

 

 

제약 삭제

 

1) 열 제약 삭제

 

기본적으로 열 제약 삭제의 경우에는 제약조건 수정과 마찬가지로 ALTER TABLE 구문을 사용합니다. 위의 코드를 살펴보시면, sample631 테이블의 c열의 NOT NULL 제약조건을 삭제한 것을 확인할 수 있습니다.

 

2) 테이블 제약 삭제

위의 코드를 살펴보시면, DROP 명령어를 통해 삭제할 제약 조건인 PRIMARY KEY를 삭제하는 것을 확인할 수 있습니다.  

 

이것으로 MySQL 제약조건 추가, 수정 및 삭제에 대해 간단히 알아보았고, 포스팅을 마치도록 하겠습니다. : )



출처: https://toma0912.tistory.com/47 [토마's 개발노트]

SHOW CREATE TABLE mytable;


+ Recent posts