1. node js 설치


2. vue cli 설치

# npm install -g @vue/cli

3. vue create

# vue create [PROJECT NAME]

4. vuetify 추가

# vue add vuetify

5. router 추가

# vue add router


6. 서버 실행

# npm run serve
http://localhost:8080


'프로그래밍 > Vue.js' 카테고리의 다른 글

Atom Vue.JS 개발환경 세팅  (0) 2019.05.16


var a = 5

val b = 10


// 변수명: 자료형 = 값

var a: Int 10

val b: int = 20


기본 자료형

Double : 64비트 부동소수점

Float  : 32비트 부동소수점

Long   : 64비트 정수

Int    : 32비트 정수

Short  : 16비트 정수

Byte   : 8비트 정수


리터럴

val a = 10    // val a: Int

val b = 10L   // val b: Long

val c = 10.0  // val c: Double

val d = 10.0f // val d: Float


문자형

String : 문자열

Char   : 하나의 문자

val str = "안녕하세요" // val str: String

val char = "안"       // val char: char


// 함수

fun greet(str: String): Unit {

  println(str)

}


greet( str:"안녕")


// 문자열 템플릿

val str = "안녕"

println(str + "하세요") // 자바 안녕하세요


--코틀린

println("$str 하세요") // 안녕 하세요

println("${str}하세요") //안녕하세요


// 배열

val numbers: Array<Int> arrayOf(1, 2, 3, 4, 5)

val number2 = arrayOf(1, 2, 3, 4, 5) // 자료형 생략

numbers[0] = 5 // [5, 2, 3, 4, 5]


//제어문

# if

if( a < b ) max = b // 일반적인 방법


if( a < b) {

  max = a

} else {

  max = b

}


val max = if(a > b) a else b // 식처럼 사용 가능


// when 문은 자바의 switch문에 대응

#1

val x = 1

when (x) {

  1 -> println("x == 1")                // 값 하나

  2, 3 -> println("x == 2 or x == 3")   // 여러 값은 콤마로

  in 4..7 -> println("4 부터 7 사이")    // in 연산자로 범위지정

  !in 8..10 -> println("8부터 10 사이가 아님")

} else -> {                             // 나머지

  print("x는 1이나 2가 아님")

}


#2

val numberStr = 1


val numberStr = when(number % 2) {

  0-> "짝"

  else -> "홀"

}


#3

val number = 1

fun isEven (num: Int) = when (num %2) { // 결과가 String으로 추론되어 반환형 선언 생략 가능

  0 -> "짝"

  else -> "홀"

}

println(isEven(number))


// for문

#1

val numbers = arrayOf(1, 2, 3, 4, 5)


for (num in numbers) {

  println(num)  //1; 2; 3; 4; 5;

}


#2

// 1~3 까지 출력

for (i in 1..3) {

  println(i) // 1; 2; 3;

}

// 0~10까지 2씩 증가하며 출력

for (i in 0..10 step 2) {

  println(i)    // 0; 2; 4; 6; 8; 10;

}

// 10부터 0 까지 2씩 감소하며 출력

for (i in 10 downTo 0 step 2) {

  println(i)    // 10; 8; 6; 4; 2; 0;

}


// while

var x = 10

println(x)

while ( x > 0 ) {

  x--

  println(x)    //9; 8; 7; 6; 5; 4; 3; 2; 1; 0;

}

// do while

var x = 10

do {

  x--

  println(x)    // 9; 8; 7; 6; 5; 4; 3; 2; 1; 0;

} while (x > 0)


// 클래스

# 클래스 선언

class Person {


}


#인스턴스 생성

val person = Person()


// 생성자

# 코틀린에서의 클래스

calss Person(var name: String) {


}


class Person {

  constructor(name: String) {

    println(name)

  }

}


class Person(name: String) {

  init {

    println(name)

  }

}


// 프로퍼티 : 클래스의 속성을 사용할 때는 멤버에 직접 접근하며 이를 프로퍼티라고 합니다.

# 클래스 선언

class Person(var name: String) {


}

// 인스턴스 생성

val person = Person("멋쟁이")

person.name = "키다리"   // 쓰기

println(person.name)    // 읽기


// 접근제한자 : 접근제한자란 변수나 함수를 공개하는 데 사용하는 키워드이다.

Class A {

  val a = 1             // public(생략가능) : 전체 공개

  private val b = 2     // private : 현재 파일 내부에서만 사용 가능

  protected val c = 3   // protected : 같은 모듈 내에서만 사용가능

  internal val d = 4    // internal : 상속받은 클래스에서 사용가능

}


// 클래스 상속

// 코틀린에서의 클래스는 기본적으로 상속이 금지된다.

// 상속이 가능하게 하려면 open키워드를 클래스 선언 앞에 추가한다.

// 다음은 Animal클래스를 상속받는 Dog 클래스를 나탄내다.

open class Animal {


}

class Dog : Animal() {


}

open class Animal(val name: String) {


}

class Dog(name: String) : Animal(name) {


}


// 내부 클래스

// 내부 클래스 선언에는 inner를 사용

// 내부 클래스는 외부 클래스에 대한 참조를 가지고 있다.

// 아래 코드에서 inner 키워드가 없다면 a를 20으로 변경할 수 없다.

class OuterClass {

  val a = 10


  // 내부클래스

  inner class OuterClass2 {

    fun something() {

      a = 20 // 접근 가능

    }

  }

}


// 추상 클래스

// 추상클래스는 미구현 메서드가 포함된 클래스.

// 클래스와 미구현 메서드 앞에 abstract키워드를 붙인다.

// 추상클래스는 직접 인스턴스화 할 수 없고 다른 클래스가 상속하여 미구현 메서드를 구현해야 한다.

// 기본적으로 자바와 동일한 특성을 가진다.

abstract class A {

  abstract fun func()


  fun func2() {


  }

}

class B: A() {

  override fun func() {

    println("Hello")

  }

}

val a = A() // 에러

val a = B() // ok


// 인터페이스

// 인터페이스는 미구현 메서드를 포함하여 클래스에서 이를 구현한다.

// 추상클래스와 비슷하지만 클래스가 단일 상속만 되는 반면 인터페이스는 다중 구현이 가능하다.

// 주로 클래스에 동일한 속성을 부여해 같은 메서드라도 다른 행동을 할 수 있게 하는데 사용한다.

// 코틀린의 인터페이스는 자바와 거의 사용법이 같다.

//# 인터페이스 선언

//  다음과 같이 인터페이스에 추상 메서드를 포함할 수 있다.

//  원래 추상 클래스에서 추상 메서드는 abstract키워드가 필요한데 인터페이스에서는 생략할 수 있다.

interface Runnable {

  fun run()

}


// 인터페이스는 구현이 없는 메서드뿐만 아니라 구현된 메서드를 포함할 수 있다. 이는 자바의 default 메서드에 대응한다.

interface Runnable {

  fun run()


  fun fastRun() = println("빨리 달린다")

}

// 인터페이스의 구현

// 인터페이스를 구현할 때는 인터페이스 이름을 콜론 뒤에 나열한다.

// 그리고 미구현 메서드를 작성하는데 이때 override 키워드를 메서드 앞에 추가한다.

// run 함수를 오버라이드한다고 말한다.

class Human : Runnable {

  override fun run() {

    println("달린다")

  }

}


// 상속과 인터페이스를 함께 구현

// 다음과 같이 상속과 인터페이스를 함께 구현할 수 있다.

// 상속은 하나의 클래스만 상속하는 반면 인터페이스는 콤마로 구분하여 여러 인터페이스를 동시에 구현할 수 있다.


open class Animal {


}

interface Runnable {

  fun run()

  fun fastRun() = println("빨리 달린다")

}

interface Eatable {

  fun eat()

}

class Dog: Animal(), Runnable, Eatable {

  override fun eat() {

    println("먹는다")

  }


  override fun run() {

    println("달린다")

  }

}

val dog = Dog()

dog.run()

dog.eat()



1. Django 시작하기

개발환경 구성

윈도우에서 개발을 할 예정이다. 

기본적인 command명령어를 알아두면 좋다.

먼저 윈도우키와 R키를 눌러 cmd를 입력한다.

폴더 만들기
>mkdir [생성할 폴더명]

하위 폴더로 이동
>cd [이동할 폴더]

상위 폴더로 이동
>cd ..


파이썬 설치하기

Django 를 설치하기 전에 파이썬을 먼저 설치해 준다. (참고 : 2017/01/11 - [프로그래밍/Python] - 1. 파이썬 설치하기)



Django 설치하기

>npm install django

프로젝트 생성하기

>django-admin startproject mysite

이렇게 하면 mysite라는 프로젝트가 생성이 된다.

프로젝트 설정 파일 변경하기

프로젝트 설정 파일의 경로는
mysite/mysite/settings.py

언어 변경하기

#LANGUAGE_CODE = 'en-us'
LANGUAGE_CODE = 'ko-kr'

기존에 있던 것을 주석처리 한 후에 바로 아랫줄에 LANGUAGE_CODE = 'ko-kr'을 추가해 준다.

시간 변경하기

#TIME_ZONE = 'UTC'
TIME_ZONE = 'Asia/Seoul'

기존에 있던 것을 주석처리 한 후에 바로 아랫줄에 TIME_ZONE = 'Asia/Seoul'을 추가해 준다.

서버 실행하기

>cd mysite
>python manage.py runserver -- 기본 8000번 포트로 실행이 된다.
>python manage.py runserver 8080 -- 포트를 8080으로 실행하고 싶을때
>python manage.py runserver 0.0.0.0:8080


1. 개발환경 구축

Node.js, npm 설치

https://nodejs.org/ko/


Atom Editor 설치

https://atom.io/

관련 추가 패키지 설치
- atom-icons
- filecolor
- icon-fonts
- language-ejs
- prettier-atom


2.


1. 서론

프로그래밍을 하면서 모니터 화면이 너무 작다는 것을 느꼈다. 그래서 새로운 모니터를 구매하려 한다.

책상의 길이가 생각보다 짧기 때문에 몇인치의 모니터까지 책상안에 들어가는지 계산을 해보기로 했다.

2. 개발환경

개발환경은 파이썬을 이용하였다. 간단하고 쉽게 계산을 할 수 있기 때문이다.

3. 코드

수학적인 함수를 써야 하기 때문에 math 를 import 해준다.

모니터는 대각선 길이를 inch로 표기한다. 그래서 대각선의 길이값을 inch로 받아들이고 cm로 변환을 할 것이다.

계산은 피타고라스의 정리를 이용하여 한다. (가로)^2 * (세로)^2 = (대각선)^2 을 이용할 것이다.

모니터의 비율이 21:9가 화면이 넓어 여러 작업을 하기 편할 것 같기에 21:9 비율을 입력 하였다.

1inch는 대략 2.54cm 와 같기 때문에 다시 cm로 변환을 해준다.


pow함수는 제곱을 해주는 함수이다.

math.sqrt는 root함수 이다.


아래의 코드에선 21:9 비율의 모니터를 기준으로 패널의 크기만 고려 한 것이다. 배젤의 크기는 제외하였다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import math
#대각선 길이를 입력 받는다.
cm = int(input("대각선의 길이 입력 : "))
 
pita_c = pow(cm,2)
a_val = 21
b_val = 9
 
= pow(a_val,2)
= pow(b_val,2)
result = a+b
result = math.sqrt(pita_c/result)
result_a = a_val*result
result_b = b_val*result
 
print(2.54*result_a, 2.54*result_b)
cs

4. 결론

집에 있는 모니터 패널의 가로 세로 길이를 측정해 본 결과 정확하게 나왔다.



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

파이썬 selenium  (0) 2019.03.17
파이썬파일 exe 배포  (0) 2019.03.15
파이썬 엑셀 파일 읽기  (0) 2018.09.18
3. 파이썬(Python)의 변수  (0) 2017.02.28
2. 파이썬(Python) 사용하기  (0) 2017.01.13

1. 문제

Yo express grunt 시 오류 발생

기본적으로 gruntfile이 자동으로 생성이 된다.

하지만 무엇이 문제인지 오류가 발생하였다.


오류내용

grunt-cli: The grunt command line interface (v1.3.1)


Fatal error: Unable to find local grunt.


If you're seeing this message, grunt hasn't been installed locally to

your project. For more information about installing and configuring grunt,

please see the Getting Started guide:


https://gruntjs.com/getting-started

grunt-cli가 문제가 됨


2. 해결

grunt가 설치된 폴더로 이동한다.

grunt를 재 설치해 준다.


명령어

npm install grunt --save-dev


문제가 해결되고 grunt명령어가 작동한다.


'프로그래밍 > node.js' 카테고리의 다른 글

[Node.js] MSSQL 프로시저 설정하기  (0) 2019.06.18
Express 설치하기  (0) 2018.09.27


파이썬에서 엑셀파일을 열려면 openpyxl이 필요합니다.

openpyxl 설치는 커맨드창에서 'python -m pip install openpyxl'을 입력합니다.

설치가 끝나시면 import를 하여 사용합니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import openpyxl
 
# 엑셀파일 열기(sample.xlsx)
wb = openpyxl.load_workbook('sample.xlsx')
ws = wb['Sheet1']
 
#Name BC-  넘버
start_num = int(input("BC넘버 입력 : "))
#타입입력
input_type = str(input("Type 입력 : "))
#J1에다가 결과값 붙여 넣기
start_value = 1
#마지막 번호
end_value = int(input("마지막 번호 입력 : "))
 
 
for i in range(1, end_value*3 ,3):
    ws['A' + str(i)] = '** Name: BC-' + str(start_num) + ' Type: ' + str(input_type)
    ws['A' + str(i + 1)] = '*Boundary'
    ws['A' + str(i + 2)] = 'cover'+ str(start_value) + ', 11, 11, ' + str(ws['J' + str(start_value)].value) + '.'
    print(ws['A' + str(i)].value)
    print(ws['A' + str(i+1)].value)
    print(ws['A' + str(i+2)].value)
    start_num += 1
    start_value += 1
 
# 엑셀 파일 저장
save_name = input("저장할 파일명 입력 : ")
wb.save(save_name+".xlsx")
wb.close()
exit()
cs


sample.xlsx

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
BC넘버 입력 : 13
Type 입력 : Temperture
마지막 번호 입력 : 185
** Name: BC-13 Type: Temperture
*Boundary
cover1, 11, 11, a.
** Name: BC-14 Type: Temperture
*Boundary
cover2, 11, 11, b.
** Name: BC-15 Type: Temperture
*Boundary
cover3, 11, 11, c.
** Name: BC-16 Type: Temperture
*Boundary
cover4, 11, 11, d.
(중략)
** Name: BC-195 Type: Temperture
*Boundary
cover183, 11, 11, 58.
** Name: BC-196 Type: Temperture
*Boundary
cover184, 11, 11, 69.
** Name: BC-197 Type: Temperture
*Boundary
cover185, 11, 11, 85.
저장할 파일명 입력 : save
cs

save.xlsx



HTML부분
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<!DOCTYPE html>
<html>
 
<head>
    <meta charset="UTF-8">
    <title>jquery를 이용한ajax json</title>
    <script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
</head>
 
<body>
    <input type="email" id="email" placeholder="email" />
    <button id="chkemail">중복확인</button>
</body>
<script>
var data = {}; //data 변수를 배열로 생성합니다.
  //중복확인 클릭시
  //jquery에서는 #은 아이디 .은 클래스를 표현합니다. $("#ID명") $(".CLASS명")
    $("#chkemail").click(function () {    // 아이디값이 chkemail인 것을 클릭했을시 function을 실행합니다.
        data.email = $("#email").val();    // data 변수에 email항목을 만듭니다. 그리고 id값이 email의 value값을 대입합니다.
        data.url = "./emailAuth";        // data변수에 url항목을 생성하고 그 값에 emailAuth를 대입합니다.
        sendServer(data);                // sendServer함수에 data를 담아서 보냅니다.
    });
 
    function sendServer(data) {            
/*        
        $.ajax({
            type: "get",                // type에는 "get || post"를 사용할 수 있습니다.
            url : data.url,                // url은 서버에 보내질 url위치를 적어줍니다.
            data : data,                // 서버에 보낼 data를 입력합니다. data : data, 라고 적혀있지만 앞에는 ajax의 형식이고 뒤에는 피라메터 값 입니다.
            dataType: "JSON",            // json을 사용할 것이기에 json을 적어줍니다.
            success: function(success) {
                console.log(success);    // 성공시 서버에서 가져온 값을 콘솔에 보여줍니다.
            },
            error: function(error) {
                console.log(error);        // 실패시 에러값을 보여줍니다.
            }
        
        });
*/                
        $.ajax({
            type: "get",
            url: data.url,
            data: data,
            dataType: "JSON",
            success: function (data) {
                if(url == "./rest/emailAuth"){
                    if (data.emailChk < 0) {
                        alert('이미 사용중인 이메일 입니다.');
                    } else {
                        alert('사용 가능한 이메일 입니다.');
                    }                      
                }
            },
            error: function (error) {
                console.log(error);
            }
        });
    }
 
</script>
 
</html>

cs

@ResponseBody가 오류가 날때
pom.xml에 아래 항목을 추가합니다.
1
2
3
4
5
6
<!-- JACKSON -->
<dependency>
    <groupId>org.codehaus.jackson</groupId>
    <artifactId>jackson-mapper-asl</artifactId>
    <version>1.9.13</version>
</dependency>
cs

Controller 부분
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@Controller("restController")    //컨트롤러 명 지정
@RequestMapping(value = "/rest"// 컨트롤러의 위치를 정해줍니다. 
public class restController {
 
    @Autowired
    OverlayService service;
 
    private Logger logger = LoggerFactory.getLogger(this.getClass());
 
    // 중복확인(이메일)
    @RequestMapping(value = "/emailAuth")
    public @ResponseBody Map<StringString> emailAuth(@RequestParam("email"String email) {
        return service.emailAuth(email);
    }
 
}
cs


Service 부분
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
@Service
public class OverlayService {
 
    @Autowired
    SqlSession sqlSession;
 
    private Logger logger = LoggerFactory.getLogger(this.getClass());
 
    OverlayInterface inter = null;
 
// 이메일 중복확인
    public Map<StringString> emailAuth(String email) {
        Map<StringString> jsonObj = new HashMap<StringString>();
 
        inter = sqlSession.getMapper(OverlayInterface.class);
        String emailAuth = inter.emailAuth(email);
 
        if (emailAuth != null) {
            jsonObj.put("chk""-1");
        } else {
            jsonObj.put("chk""1");
        }
        return jsonObj;
    }
    
}
cs


DAO 부분
1. Interface
1
2
3
4
5
6
public interface OverlayInterface {
 
    //이메일 중복확인
    String emailAuth(String email);
 
}
cs

2. sql.xml부분
1
2
3
4
5
6
7
8
9
10
11
<?xml version="1.0" encoding="UTF-8"?>
 
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
<mapper namespace="com.rest.dao.OverlayInterface">
    <!--중복체크-->
    <select id="emailAuth" resultType="String">
        SELECT mm_email FROM members WHERE mm_email = #{param1}
    </select>
</mapper>
cs


DTO 부분
1
2
3
4
5
6
7
8
9
10
11
12
13
public class UserInfoDTO {
 
    private String mm_email; // 이메일
 
    public String getMm_email() {
        return mm_email;
    }
 
    public void setMm_email(String mm_email) {
        this.mm_email = mm_email;
    }
 
}
cs


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

회원가입  (0) 2017.08.24
MyBatis 세팅  (0) 2016.06.15
STS설정 및 스프링 한글깨짐 방지 설정  (0) 2016.06.13

Controller 부분

1
2
3
4
5
6
@RequestMapping(value = "regist")
public ModelAndView regist(HttpServletRequest req) {
    String id = req.getParameter("email");
    String pw = req.getParameter("password");
    return service.regist(id, pw);
}
cs

req.getParameter("JSP_NAME");
jsp에서 form 안에있는 name값을 가져온다.

service 부분
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
@Service
public class TestService {
 
    @Autowired
    SqlSession sqlSession;
    
    TestInterface inter = null;
    
    // 회원가입
    public ModelAndView regist(String id, String pw) {
        ModelAndView mav = new ModelAndView();
        inter = sqlSession.getMapper(TestInterface.class);
        int success = inter.regist(id, pw);
        
        mav.setViewName("redirect:/");
        return mav;
    }
 
}
cs


DTO 부분
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class TestDTO {
    private String test_id;
    private String test_pw;
 
    public String getTest_id() {
        return test_id;
    }
 
    public void setTest_id(String test_id) {
        this.test_id = test_id;
    }
 
    public String getTest_pw() {
        return test_pw;
    }
 
    public void setTest_pw(String test_pw) {
        this.test_pw = test_pw;
    }
}
cs


DAO interface 부분

1
2
3
public interface testInterface {
    int regist(String id, String pw);
}
cs
DAO sqlMapper 부분

1
2
3
4
5
6
7
8
9
10
11
<?xml version="1.0" encoding="UTF-8"?>
 
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 
<mapper namespace="com.test.dao.TestInterface">
    <insert id="regist">
        INSERT INTO testmem(test_id, test_pw)
            VALUES(#{param1}, #{param2})
    </insert>
</mapper>
cs


JSP 부분


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
 
<!DOCTYPE html>
<html>
 
<head>
    <meta charset="UTF-8">
    <title>회원가입</title>
</head>
 
<body>
    <form action="regist" method="post">
        <input type="email" id="email" name="email" placeholder="email"/>
        <input type="password" id="password" name="password" placeholder="password"/>
        <input type="submit" />
    </form>
 
</body>
 
</html>
cs

form 태그의 action은 컨트롤러에서 @RequestMapping(value = "JSP_ACTION") 에 들어간다.
input 태그 안에 name은 서버로 넘겨지는 값.


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

jquery를 이용한 ajax json  (0) 2017.08.28
MyBatis 세팅  (0) 2016.06.15
STS설정 및 스프링 한글깨짐 방지 설정  (0) 2016.06.13

1. 파이썬(Python)의 예약어



파이썬에서 변수명으로 사용할수 없는 것들 이있습니다.


그중에 먼저 '예약어'에대해 알아보겠습니다.


and as assert break class continue def del elif else except finally
for form global if import in is lambda nonlocal not or pass
print raise return  try while with yield


위에 있는 것들은 예약어로 불리며 변수명으로 사용이 불가능 합니다. 

파이썬에서 특정 기능을 동작하게 하는 것을 예약어라고 합니다.


2. 사용 불가능한 변수명



변수를 생성할 때 주의할 점이 몇가지 있습니다.


변수를 만들때 특수문자 및 숫자가 앞에오는 경우 불가능 합니다.


ex) 1abc %abc #abc



특수 문자에서 예외가 있습니다.

언더바( _ ) 는 사용이 가능합니다.


ex) _abc


3. 변수 구분

변수를 사용할때는 대소문자 구분을 합니다. 

즉 변수명 a와 변수명 A는 다른 변수입니다. 

사용하실때 주의하시기 바랍니다.


4. 변수 생성


파이썬에서 변수를 만들때 타입(Type)을 따로 정해주지 않습니다. 이것이 다른 언어와 차이가 있습니다.

a = 1
변수 a에 1을 대입

b = 'abc'
변수 b에 abc를 대입

5. 변수 삭제


변수를 삭제할 때는 'del' 이라는 예약어를 사용하여 지웁니다.

ex) del [변수명]


+ Recent posts