웹 애플리케이션 만들기

관계형 데이터베이스 실습

실습1 

opentutorials.sql

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for `topic`
-- ----------------------------
DROP TABLE IF EXISTS `topic`;
CREATE TABLE `topic` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(100) NOT NULL,
  `description` text NOT NULL,
  `author` int(11) NOT NULL,
  `created` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of topic
-- ----------------------------
INSERT INTO `topic` VALUES ('1', 'About JavaScript', '<h3>Desctiption</h3>\r\n<p>JavaScript  is a dynamic computer programming language. It is most commonly used as part of web browsers, whose implementations allow client-side scripts to interact with the user, control the browser, communicate asynchronously, and alter the document content that is displayed.</p>\r\n<p>\r\nDespite some naming, syntactic, and standard library similarities, JavaScript and Java are otherwise unrelated and have very different semantics. The syntax of JavaScript is actually derived from C, while the semantics and design are influenced by the Self and Scheme programming languages.\r\n</p>\r\n<h3>See Also</h3>\r\n<ul>\r\n  <li><a href=\"http://en.wikipedia.org/wiki/Dynamic_HTML\">Dynamic HTML and Ajax (programming)</a></li>\r\n  <li><a href=\"http://en.wikipedia.org/wiki/Web_interoperability\">Web interoperability</a></li>\r\n  <li><a href=\"http://en.wikipedia.org/wiki/Web_accessibility\">Web accessibility</a></li>\r\n</ul>\r\n', '1', '2015-03-31 12:14:00');
INSERT INTO `topic` VALUES ('2', 'Variable and Constant', '<h3>Desciption</h3>\r\n\r\nIn computer programming, a variable or scalar is a storage location paired with an associated symbolic name (an identifier), which contains some known or unknown quantity or information referred to as a value. The variable name is the usual way to reference the stored value; this separation of name and content allows the name to be used independently of the exact information it represents. The identifier in computer source code can be bound to a value during run time, and the value of the variable may thus change during the course of program execution.\r\n\r\n<h3>See Also</h3>\r\n<ul>\r\n<li>Non-local variable</li>\r\n<li>Variable interpolation</li>\r\n</ul>\r\n', '3', '2015-05-14 10:04:00');
INSERT INTO `topic` VALUES ('3', 'Opeartor', '<h2>Operator</h2>\r\n<h3>Description</h3>\r\n<p>Programming languages typically support a set of operators: constructs which behave generally like functions, but which differ syntactically or semantically from usual functions</p>\r\n<p>Common simple examples include arithmetic (addition with +, comparison with >) and logical operations (such as AND or &&). </p>\r\n', '1', '2015-06-18 05:00:00');
INSERT INTO `topic` VALUES ('4', 'Conditional', '<h3>Description</h3>\r\n<p>In computer science, conditional statements, conditional expressions and conditional constructs are features of a programming language which perform different computations or actions depending on whether a programmer-specified boolean condition evaluates to true or false. Apart from the case of branch predication, this is always achieved by selectively altering the control flow based on some condition.</p>\r\n<p>In imperative programming languages, the term \"conditional statement\" is usually used, whereas in functional programming, the terms \"conditional expression\" or \"conditional construct\" are preferred, because these terms all have distinct meanings.</p>\r\n<h3>See Also</h3>\r\n<ul>\r\n<li><a href=\"http://en.wikipedia.org/wiki/Branch_(computer_science)\" title=\"Branch (computer science)\">Branch (computer science)</a></li>\r\n<li><a href=\"http://en.wikipedia.org/wiki/Conditional_compilation\" title=\"Conditional compilation\">Conditional compilation</a></li>\r\n<li><a href=\"http://en.wikipedia.org/wiki/Dynamic_dispatch\" title=\"Dynamic dispatch\">Dynamic dispatch</a> for another way to make execution choices</li>\r\n<li><a href=\"http://en.wikipedia.org/wiki/McCarthy_Formalism\" title=\"McCarthy Formalism\">McCarthy Formalism</a> for history and historical references</li>\r\n<li><a href=\"http://en.wikipedia.org/wiki/Named_condition\" title=\"Named condition\" class=\"mw-redirect\">Named condition</a></li>\r\n<li><a href=\"http://en.wikipedia.org/wiki/Test_(Unix)\" title=\"Test (Unix)\">Test (Unix)</a></li>\r\n<li><a href=\"http://en.wikipedia.org/wiki/Yoda_conditions\" title=\"Yoda conditions\">Yoda conditions</a></li>\r\n</ul>', '2', '2015-07-25 00:00:00');
INSERT INTO `topic` VALUES ('5', 'Function', 'A function model or functional model in systems engineering and software engineering is a structured representation of the functions (activities, actions, processes, operations) within the modeled system or subject area.', '2', '0000-00-00 00:00:00');
INSERT INTO `topic` VALUES ('6', 'Object', 'In computer science, an object is a location in memory having a value and possibly referenced by an identifier. An object can be a variable, a data structure, or a function. In the class-based object-oriented programming paradigm, \"object\" refers to a particular instance of a class where the object can be a combination of variables, functions, and data structures. In relational database management, an object can be a table or column, or an association between data and a database entity (such as relating a person\'s age to a specific person)', '3', '0000-00-00 00:00:00');

-- ----------------------------
-- Table structure for `user`
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) NOT NULL,
  `password` varchar(30) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES ('1', 'egoing', '111111');
INSERT INTO `user` VALUES ('2', 'jin', '222222');
INSERT INTO `user` VALUES ('3', 'k8805', '333333');
INSERT INTO `user` VALUES ('4', 'sorialgi', '444444');
INSERT INTO `user` VALUES ('5', 'lily', '555555');
INSERT INTO `user` VALUES ('6', 'happydeveloper', '666666');

실습2

index.php

<?php
$conn = mysqli_connect("localhost", "root", 111111);
mysqli_select_db($conn, "opentutorials");
$result = mysqli_query($conn, "SELECT * FROM topic");
?>
<!DOCTYPE html>
<html>
<head>
     <meta charset="utf-8">
  <link rel="stylesheet" type="text/css" href="http://localhost/style.css">
</head>
<body id="target">
	<header>
    <img src="https://s3.ap-northeast-2.amazonaws.com/opentutorials-user-file/course/94.png" alt="생활코딩">
		<h1><a href="http://localhost/index.php">JavaScript</a></h1>
  </header>
	<nav>
		<ol>
    <?php
    while( $row = mysqli_fetch_assoc($result)){
      echo '<li><a href="http://localhost/index.php?id='.$row['id'].'">'.$row['title'].'</a></li>'."\n";
    }
    ?>
		</ ol>
	</nav>
  <div id="control">
    <input type="button" value="white" onclick="document.getElementById('target').className='white'"/>
    <input type="button" value="black" onclick="document.getElementById('target').className='black'" />
    <a href="http://localhost/write.php">쓰기</a>
  </div>
  <article>
  <?php
  if(empty($_GET['id']) === false ) {
      $sql = "SELECT topic.id,title,name,description FROM topic LEFT JOIN user ON topic.author = user.id WHERE topic.id=".$_GET['id'];
      $result = mysqli_query($conn, $sql);
      $row = mysqli_fetch_assoc($result);
      echo '<h2>'.$row['title'].'</h2>';
      echo '<p>'.$row['name'].'</p>';
      echo $row['description'];
  }
  ?>
  </article>
</body>
</html>

실습3

process.php

<?php
$conn = mysqli_connect("localhost", "root", 111111);
mysqli_select_db($conn, "opentutorials");
$sql = "SELECT * FROM user WHERE name='".$_POST['author']."'";
$result  = mysqli_query($conn, $sql);
if($result->num_rows == 0){
  $sql = "INSERT INTO user (name, password) VALUES('".$_POST['author']."', '111111')";
  mysqli_query($conn, $sql);
  $user_id = mysqli_insert_id($conn);
} else {
  $row = mysqli_fetch_assoc($result);
  $user_id = $row['id'];
}
$sql = "INSERT INTO topic (title,description,author,created) VALUES('".$_POST['title']."', '".$_POST['description']."', '".$user_id."', now())";
$result = mysqli_query($conn, $sql);
header('Location: http://localhost/index.php');
?>

소스코드

github

코드의 힘을 느껴봅시다

코드는 부품을 결합하는 접착제라고 할 수 있습니다. 부품이 강력해지면 코드의 힘도 강력해집니다. 단 몇줄의 코드를 추가하는 것으로 파일업로드라는 매우 어려운 기능을 웹사이트에 추가해보겠습니다. 이를 위해서 uploadcare라는 서비스를 활용할 것인데요. 주소는 아래와 같습니다. 물론 이 수업은 필수가 아니고 선택입니다. 흥미가 있는 분만 보시길 바래요. 

http://uploadcare.grsm.io/e/1Xl

참고로 위의 주소로 서비스에 방문하면 서비스에 수익이 발생했을 때 수익금의 일부가 생활코딩에게 지급됩니다. 생활코딩은 이 수익금 전액을 비영리 단체 오픈튜터리얼스의 후원금으로 사용합니다.  

수업보러가기

코드는 아래와 같습니다. 

write.php 파일 내용

변경된 내용은 아래와 같습니다. 

github 변경된 코드 보러가기

댓글

댓글 본문
작성자
비밀번호
  1. paul
    열심히 따라 하고 있는 중인데요.
    Object Oriented Progamming 까지는 작성자, 본문이 잘 출력이 되는데요.
    prototype, method 에서는 작성자가 출력이 안되고,, 본문만 출력이 됩니다.
    여기서 부터는,, 쓰기를 해도,, 추가가 전혀 안됩니다.
    터미널에서 확인해 보면,,

    mysql> SELECT id,title,author FROM topic;
    +----+----------------------------+--------+
    | id | title | author |
    +----+----------------------------+--------+
    | 1 | About JavaScript | 1 |
    | 2 | Variable and Constant | 3 |
    | 3 | Opeartor | 1 |
    | 4 | Conditional | 2 |
    | 5 | Function | 2 |
    | 6 | Object | 3 |
    | 8 | | 0 |
    | 9 | Object Oriented Progamming | 1 |
    | 10 | prototype | 0 |
    | 11 | method | 0 |
    +----+----------------------------+--------+
    10 rows in set (0.00 sec)

    이렇게 되어 있는데요.. 어디가 문제 일까요?
    코드를 그대로 복사를 해도 안됩니다..ㅠㅠ
  2. sayboy1018
    똑같이 영상보면서 입력했는데도 hoya2,3 이름 만이 추가가 안되네요....;;;
  3. 이지훈
    잘 보았습니다.^^
  4. 박찬울
    use opentutorials;

    부터 쓰셔야 하는 것 아닐까요?
    대화보기
    • Kuon
      게시판의 기본원리를 본것 같네요...나중에 차근차근 작성한 코드를 뜯어봐야겠습니다.
    • 김명준
      하아.....
      전 처음부터 다시 시작해야겠네요
    • 스미쓰
      use opentutorials 입력했는지 확인 한번 해보세요. 저두 입력 안 하고 붙여넣기 했다가 비슷한 에러 발생했거든요.
      대화보기
      • 장현진
        ERROR 1046 (3D000): No database selected
        mysql>
        mysql> -- ----------------------------
        mysql> -- Table structure for `user`
        mysql> -- ----------------------------
        mysql> DROP TABLE IF EXISTS `user`;
        ERROR 1046 (3D000): No database selected
        mysql> CREATE TABLE `user` (
        -> `id` int(11) NOT NULL AUTO_INCREMENT,
        -> `name` varchar(20) NOT NULL,
        -> `password` varchar(30) NOT NULL,
        -> PRIMARY KEY (`id`)
        -> ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;
        ERROR 1046 (3D000): No database selected
        mysql>
        mysql> -- ----------------------------
        mysql> -- Records of user
        mysql> -- ----------------------------
        mysql> INSERT INTO `user` VALUES ('1', 'egoing', '111111');
        ERROR 1046 (3D000): No database selected
        mysql> INSERT INTO `user` VALUES ('2', 'jin', '222222');
        ERROR 1046 (3D000): No database selected
        mysql> INSERT INTO `user` VALUES ('3', 'k8805', '333333');
        ERROR 1046 (3D000): No database selected
        mysql> INSERT INTO `user` VALUES ('4', 'sorialgi', '444444');
        ERROR 1046 (3D000): No database selected
        mysql> INSERT INTO `user` VALUES ('5', 'lily', '555555');
        ERROR 1046 (3D000): No database selected
        mysql> INSERT INTO `user` VALUES ('6', 'happydeveloper', '666666');
        ERROR 1046 (3D000): No database selected
        mysql>

        no database selected라고 뜨는 이유가 뭔가여?... 어디 저가 뭐 잘 못 한거 인가여? ... ㅜㅜ
      • scarleaf
        어렵지만 엄청나네요....
      • 김하늘
        전왜 쓰기를 해도 추가가 안될까요 마지막에서 막히니까 도무지 생각이 않남니다 미치겠어요 ㅜㅜ
      • 백곰몬
        감사합니다! 완료 이지만 많이 어렵네요 ㅠ
      • Bank in
        유익한 내용이었습니다.
        감사합니다.
      • skekogo
        오늘도 좋은 수업 감사합니다!
      • Gaehwan
        어 저 mysqli_insert_id가 없는 함수로 나오는데요? ㅜㅜ
      • sangsik jang
        코드 내용들이 어떤것은 익숙한데...
        같은게 왔다갔다하니 아리까리하네요?^^~
      • Gaehwan
        비트나미 싹 지우고 다시 설치했슴다 ㅠㅠ
        아 그래도 코드 곳곳에 에러가 많아서 다 파악하고 수정하는 데 엄청 오래 걸렸네요 ㅠ
        점하고 괄호 매기기엔 이상 없었는데 이전에 작성한 코드를 일부러 안 지우니까 그게 영향을 미치고 그런 것도 있었고
        스펠링 틀린 것도 있었습니다 ㅋㅋㅋ
      • 스타일C
        후! 어렵네요.
      • highwind
        잘 배웠습니다. 세상에는 좋은 open source 가 많이 있네요.
      • qudwn
        완료!
      • 치우천황
        강의 잘들었습니다.

        MySQL에서 테이블 join을 하는 방식을 알게 되어서 좋았습니다.
      • 이희태
        6월 23일 데이터베이스 실습 수강완료 하였습니다. 점점 휴식과 수련시간에 듣고 다시해야할 내용들이 늘고있네요 끝까지 끈을 놓지 않고 열심히 하겠습니다
      • Lydia
        감사합니다~!
      • 오.. 긴 강의 였습니다. 오늘 강의는 정말 난이도가 높네요.
        선생님 감사합니다.
      • M_JJo
        혹시 테이블의 컬럼명을 변경하고 싶으시다면
        ALTER TABLE `테이블명` CHANGE `기존컬럼명` `새컬럼명` 기존자료형
        이렇게 입력해보세요~

        예시) 만약 기존 컬럼인 desc -> descriptions로 바꾸고 싶다면
        ALTER TABLE topic CHANGE `desc` `descriptions` text not null;

        이런식으로요~
        대화보기
        • sing
          mysql에 description 을 s를 빼먹고 만들어서 ㅋㅋ
          어떻게 수정하는지 몰라서 그 담 수업부터 저 단어 나올때마다 s를 일부러 안쓰고 코딩따라하고 있었는데
          여기서 걸려버리네요 ㅠ
          코딩에 있던 decription 을 찾아서 s를 추가하는 작업을 ㅠㅠㅠㅠ
        • minari
          메모리 상에서 계산을 해줘서 가지고 오는거 같습니다.
          토픽과 유저라는 테이블만 만들어진 상태에서,
          조인 SQL문으로 계산을 한 뒤 결과를 보여주는 것이라서, 따로 테이블이 만들어 지는건 아닌거 같아요.
          대화보기
          • James Lee
            해결이 되었습니다. 결국은 () ., '" 요런것들에 문제였습니다.
            나중에 코드가 방대해지면 어떻게 고쳐야 할지 아찔해 지네요..
            대화보기
            • James Lee
              data 추가할때 작성자에 egoing 이라고 쳤는데도
              밸류가 0가 나오네요... 1이 나와야 하는거 아닌가요ㅜㅜ
            • 코딩하는오징어
              이게 그럼 JOIN을 이용하여 관계를 맺어주면 관계를 맺은 상태도 실제 메모리에 저장되어있는게 아닌가요?
            • 스파드
              정말 감사합니다. 단순한 문제였네요;; 따옴표만이 아니라 괄호구분도 잘 해야겠습니다
              대화보기
              • 지나가다가 보여서 맞는지는 모르겠지만 의견 드려봅니다.
                author 값을 감싸고 있는 대괄호와 괄호의 차이로 보여지네요.

                강의 코드:
                $sql = "SELECT * FROM user WHERE name='".$_POST['author']."'";

                스파드님 코드:
                $sql = "SELECT * FROM user WHERE name='".$_POST('author')."'";
                대화보기
                • 스파드
                  user 테이블의 author 컬럼에서 ID값을 가져오는 단계에서 문제가 발생합니다. 에러문구는 다음과 같습니다.
                  <코드 : process.php>
                  3 $sql = "SELECT * FROM user WHERE name='".$_POST('author')."'";
                  4 echo $sql;

                  Fatal error: Function name must be a string in C:\Bitnami\wampstack-5.6.30-2\apache2\htdocs\process.php on line 3

                  혹시나 하여 db선택 후 echo $_POST('author');을 process.php에 추가하였더니,
                  추가부분에서 곧장 같은 에러가 발생하였습니다.

                  심지어 egoing님의 코드를 그대로 복사해도 같은 문제가 발생하는데, 도무지 방법을 찾지 못하겠습니다 ㅠㅠ
                • 정미정
                  어렵지만 두 번 듣고 해결했어요ㅠㅠ
                • lunamoth
                  아 이제 잘 되네요. cdnUrl 을 CdnUrl 로 잘못 쓴듯;
                  대화보기
                  • egoing
                    본문의 내용을 업데이트했습니다. 확인해주세요~
                    대화보기
                    • lunamoth
                      업로드케어 관련 소스코드 올려주시면 좋을 것 같습니다. 동일하게 했는데 textarea 에 추가가 안되네요;
                    • 지나가는개발자
                      첫번째 insert문과 두번째 insert문이 제대로 안닫혀있는 것으로 보이네요. 각각의 문장 마지막줄에 ); 로 묶어보실래요?
                      대화보기
                      • 김남수
                        실제 코딩을 똑같이 했는데 아래에 질문하시는 분들과 마찬가지로 태그가 붙질 않는군요.
                        태그가 붙은 분은 이미지가 태그가 안붙는다고도 하셨고..뭐가 문제일까요?..공통적으로..문제가 있을까요?
                        ▶저같은 초보를 위해서 안되는 부분은 안되는 웹페이지에 가서 소스보기를 하고 console 부분을 누르면 현재 어느 부분이 잘못 되었는지 나타내 줍니다. 거기서 천천히 검토해 보시면 될 것 같습니다..저는 그렇게 해결 했습니다.
                      • hypnos
                        오류난 부분을 다시 찾아봤는데요. 여기네요. 여기에서 어떻게 해야할지 막막합니다 ㅜㅜ
                        그저 복사 붙여넣기 했을뿐이라, topic 테이블을 지우고 다시 작성해도 마찬가지네요.
                        mysql>
                        mysql> INSERT INTO `topic` VALUES ('4', 'Conditional', '<h3>Description</h3>\r
                        \n<p>In computer science, conditional statements, conditional expressions and
                        conditional constructs are features of a programming language which perform di
                        fferent computations or actions depending on whether a programmer-specified bo
                        olean condition evaluates to true or false. Apart from the case of branch pred
                        ication, this is always achieved by selectively altering the control flow base
                        d on some condition.</p>\r\n<p>In imperative programming languages, the term \
                        "conditional statement\" is usually used, whereas in functional programming, t
                        he terms \"conditional expression\" or \"conditional construct\" are preferred
                        , because these terms all have distinct meanings.</p>\r\n<h3>See Also</h3>\r\n
                        <ul>\r\n<li><a href=\"http://en.wikipedia.org/wiki/Branch_(computer_science)\"
                        title=\"Branch (computer science)\">Branch (computer science)</a></li>\r\n<li
                        ><a href=\"http://en.wikipedia.org/wiki/Conditional_compilation\" title=\"Cond
                        itional compilation\">Conditional compilation</a></li>\r\n<li><a href=\"http:/
                        /en.wikipedia.org/wiki/Dynamic_dispatch\" title=\"Dynamic dispatch\">Dynamic d
                        ispatch</a> for another way to make execution choices</li>\r\n<li><a href=\"ht
                        tp://en.wikipedia.org/wiki/McCarthy_Formalism\" title=\"McCarthy Formalism\">M
                        cCarthy Formalism</a> for history and historical references</li>\r\n<li><a hre
                        f=\"http://en.wikipedia.org/wiki/Named_condition\
                        '>
                        '> INSERT INTO `topic` VALUES ('5', 'Function', 'A function model or funct
                        ional model in systems engineering and software engineering is a structured re
                        presentation of the functions (activities, actions, processes, operations) wit
                        hin the modeled system or subject area.',
                        '>
                        '> INSERT INTO `topic` VALUES ('6', 'Object', 'In computer science, an obj
                        ect is a location in memory having a value and possibly referenced by an ident
                        ifier. An object can be a variable, a data structure, or a function. In the cl
                        ass-based object-oriented programming paradigm, \"object\" refers to a particu
                        lar instance of a class where the object can be a combination of variables, fu
                        nctions, and data structures. In relational database management, an object can
                        be a table or column, or an association between data and a database entity (s
                        uch as relating a person\'s age to a specific person)', '3', '0000-00-00 00:00
                        :00');
                        ERROR:
                        Unknown command '\"'.
                        ERROR:
                        Unknown command '\"'.
                      • suhyun
                        질문있어요~
                        라이브러리2까지보고 버튼 다시만드려고 왔는데
                        마지막 영상 13분부터 script 파일내용이 에서요
                        사이트에서 제공하는 소스코드에서는 찾았는데..
                        처음보는사람이 검색할때 어떤식으로 검색해야 저런 아이템을 얻을수있나요?
                      • 유혀누
                        신기하지만 어려웠습니다ㅜㅜ 잘들었습니다~~
                      • suhyun
                        여기서 점점막히네요 소스코드 실행이안되서 한강의당 에러코드 2시간넘게보는것도생기고..
                        그래도 다들 화이팅입니다
                      • 나효진
                        해봅니다
                      • treehouse
                        mysql 실습까진 이해도잘되고 수업도 너무너무 재미있고, 코드에도 익숙해져서 내것(?)으로만드는데 무리가없었는데, 관계형 데이타베이스에서와선 좀 많이 막히고 어렵네요..
                        영상을 오늘만 4번씩봤는데도 머리에 안들어오고 이해가안되는걸보니 우선 보안으로 넘어가야겠습니다 ㅠ_ㅠ
                        이고잉님 너무 감사드려요!
                      • Dharma 다르마
                        패스워드도 text로 받아서 넣으려고 합니다.
                        $sql = "INSERT INTO user (name, password) VALUES('".$_POST['author']."', '111111')"; 대신

                        write.php에서 password text input box를 추가하고
                        process.php에서
                        $sql = "INSERT INTO user (name, password) VALUES('".$_POST['author']."', '".$_POST['password']."')";

                        작성을 하였는데
                        Parse error: syntax error, unexpected 'INSERT' (T_STRING) in C:\Bitnami\wampstack-5.6.30\apache2\htdocs\process.php on line 8

                        와 같이 ERROR가 발생합니다.
                        무엇이 잘못 된 것일 까요?
                      • Seo Yun Seok Tudoistube
                        user-id 필드는 auto_increment 되므로 mysqli_insert_id($zconn) 로 직전에 추가된 행의 id 값을 구할 수 있는거였네요.
                        https://www.w3schools.com......asp
                        UPLOADCARE 홈피에서 텍스트에어리어 안에 붙이는 방법은 어떻게 찾으셨는지... 자료를 잘 찾고 싶습니다^^;; 감사합니다^____^
                      • 송재욱
                        아 이 파트 부터는 도저히 못듣겠네요 ㅎㅎ 사실 mysql 부터는 헤메고 많이 어려워서 잠시 쉬어야 겠습니다. ㅜㅜ 이 내용이 필요해질 때 다시 완주 하도록 하겠습니다. 감사합니다 !!!
                      • 이응
                        uploadcare 좋은 api네요!! 감사합니다.ㅎㅎ
                      • 응디
                        이미지 url을 textarea에 붙여넣는 과정에서 오타를 너무 많이 냈었네용 그래서 헤맸는데
                        결국에는 해결완료!

                        감사합니다 :)
                      • egoing
                        아마도 영상을 편집하는 과정에서 생긴 문제가 아닐까 싶습니다. 원래는 1씩 증가 되는게 맞습니다. 수업을 찍을 때 여러번에 걸쳐서 재작업 하기 때문에 이런 혼선이 있네요. 중요한 것은 순차적으로 증가한다는 것도 있지만 절대 정복되지 않는키를 데이터베이스가 자동으로 만들어준다는 것입니다.
                        대화보기
                        버전 관리
                        egoing
                        현재 버전
                        선택 버전
                        graphittie 자세히 보기