Local Storage에 저장 및 불러오기
'프로그래밍 > JAVASCRIPT' 카테고리의 다른 글
[Javascript] readonly와 disabled 차이 (0) | 2019.07.10 |
---|---|
[Javascript] 날짜, 시간 유효성 검사 (0) | 2019.07.10 |
[Javascript] 시간 표시 (0) | 2019.05.30 |
[Javascript] readonly와 disabled 차이 (0) | 2019.07.10 |
---|---|
[Javascript] 날짜, 시간 유효성 검사 (0) | 2019.07.10 |
[Javascript] 시간 표시 (0) | 2019.05.30 |
파이썬파일 exe 배포 (0) | 2019.03.15 |
---|---|
심심해서 만들어 본 모니터 가로 세로 길이 계산 (0) | 2018.09.21 |
파이썬 엑셀 파일 읽기 (0) | 2018.09.18 |
3. 파이썬(Python)의 변수 (0) | 2017.02.28 |
2. 파이썬(Python) 사용하기 (0) | 2017.01.13 |
파이썬 selenium (0) | 2019.03.17 |
---|---|
심심해서 만들어 본 모니터 가로 세로 길이 계산 (0) | 2018.09.21 |
파이썬 엑셀 파일 읽기 (0) | 2018.09.18 |
3. 파이썬(Python)의 변수 (0) | 2017.02.28 |
2. 파이썬(Python) 사용하기 (0) | 2017.01.13 |
# vue add router
Atom Vue.JS 개발환경 세팅 (0) | 2019.05.16 |
---|
이 도구는 SMB 프로토콜을 통해 Windows 인증을 대상으로하는 암호 사전 공격 도구로 설계되었습니다.
그것은 정말로 'smbclient'바이너리를 감싸는 래퍼 스크립트이며 결과적으로 실행에 의존합니다.
Source: https://labs.portcullis.co.uk/tools/acccheck/
acccheck Homepage | Kali acccheck Repo
smb-ips.txt (-T)에 포함 된 IP 주소를 검사하고 자세한 출력 (-v)을 사용합니다 .
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()
ip route [목적지네트워크주소] [SM] [인접한라우터 IP주소]
[자신의 인터페이스명]
기본 경로 설정
ip route 0.0.0.0 0.0.0.0 [인접한라우터 IP주소]
[자신의 인터페이스명]
hostname SW1
enable secret tcp
line con 0
password ip
login
line vty 0 15
password ip
login
no ip domain-lookup
service password-encryption
int vlan1
ip add 192.168.1.2 255.255.255.0
no shut
ip default-gateway 192.168.1.1
스위치에는 관리목적상 ip를 배정한다.
다른네트워크에서 접속할 경우 게이트웨이주소를 설정
다음-홉 라우터 ip를 사용
기본 거리값을 이용하여 우선순위에 의해 처리를 한다.
show ip route
S = static(정적라우팅 상태)(config)# ip route [목적지네트워크주소] [서브넷마스크] [인접한라우터주소]