๐ Programming
[Swift] ์ ์ด๋ฌธ (์กฐ๊ฑด๋ฌธ / ๋ฐ๋ณต๋ฌธ)
์กฐ๊ฑด๋ฌธ if-else ๋ค๋ฅธ if๋ฌธ๊ณผ ํ์์ ๊ฐ๋ค. var num = 0 if num == 0 { //code } else if num == 10 { //code } else{ //code } ๋ค๋ฅธ์ ์ ์กฐ๊ฑด์ด ๋ฌด์กฐ๊ฑด Bool type์ด์ฌ์ผ ํ๋ค๋ ๊ฒ์ด๋ค. ์ฆ, ์ซ์ 0์ false์ด๊ณ , ๋๋จธ์ง๋ true ๋ผ๋ ๋ค๋ฅธ ์ธ์ด์ ํน์ฑ์ ์ง๋์ง ์๋๋ค. // error code var num = 0 if num { //code } switch ๋ค๋ฅธ ์ธ์ด์ switch์๋ ๋ฌ๋ฆฌ break๋ฅผ ๋ช ์ํ์ง ์์๋ ๋จ case์์ ๋ค๋ฃจ์ง ์๋ ๋ฒ์๊ฐ ์๋ ํ default ๋ถ๋ถ์ ๊ผญ ์จ์ฃผ๊ธฐ var num = 10 switch num { case 10: print("ten") default: print("not ten") } ..
[Swift] function / ํจ์
1. ํจ์์ ์ธ ๊ธฐ๋ณธ func ํจ์์ด๋ฆ (๋ณ์ : type, ๋ณ์ : type) -> return_type { //code return value } //ex (๋ํ๊ธฐ ํจ์) func add (a : Int, b : Int ) -> Int { return a+b } return โ func name(a: Int, b: Int) -> Void { //code } func name(a: Int, b: Int) { //code } ๋งค๊ฐ๋ณ์ โ func name() -> return_type { //code return } 2. ๋งค๊ฐ๋ณ์ ๊ธฐ๋ณธ๊ฐ ๐ ๋ณ์ : type = ๊ธฐ๋ณธ๊ฐ func add(a : Int, b: Int = 10) -> Int { // b๊ธฐ๋ณธ๊ฐ = 10 return (a+b) } ๊ธฐ๋ณธ๊ฐ์ ์ค์ ํ๋ฉด..
[Swift] collection type / ์ปฌ๋ ์ ํ์
1. Array ์์๊ฐ ์๋ ์ปฌ๋ ์ ์ ์ธํ๋ ๋ฐฉ๋ฒ var intArray : Array = Array() var intArray : Array = [] var intArray : [Int] = Array() var intArray : [Int] = [] var intArray = [Int]() ํ์ฉ var intArray : Array = [] intArray.append(1) // 1์ ์ฝ์ ํ๋ค. intArray.contains(1) // 1์ด ์กด์ฌํ๋์ง ํ์ธ => true intArray.remove(at:0) // 0๋ฒ์งธ index ๊ฐ ์ ๊ฑฐ intArray.removeLast() intArray.removeAll() intArray.count // ๊ธธ์ด ๋ฐํ intArray[0] // 0๋ฒ์งธ ind..
[๋จธ์ ๋ฌ๋] train_test_split (๋ฐ์ดํฐ ๋๋๊ธฐ)
๋จธ์ ๋ฌ๋ ๊ณต๋ถ๋ฅผ ํ๋ฉด์ scikit-learn ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ฒ ๋์๋ค. ์ค๋์ ๊ทธ ์์์๋ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฆฌํด์ฃผ๋ ๋ชจ๋์ธ train_test_split์ ๋ํด์ ์์๋ณด๊ณ ์ ํ๋ค. import from sklearn.model_selection import train_test_split option x_train, x_test, y_train, y_test = train_test_split(x_data, y_data) ์์ ๊ฐ์ด ์์ฑํ๋ฉด ๋๋ค์ผ๋ก train data์ test data๋ฅผ ๋ถ๋ฆฌํด์ค๋ค. train_test_split(x,y, test_size = 0.3, train_size = 0.7) ์์ ๊ฐ์ด ๋ฐ์ดํฐ์ ๋น์จ์ ์กฐ์ ํ ์๋ ์๋ค. (test 30% / train 70%) train_test..
[๋จธ์ ๋ฌ๋] scikit-learn (์ฌ์ดํท๋ฐ)
scikit-learn (์ฌ์ดํท๋ฐ) ์ด๋ ํ์ด์ฌ์ ๋ํ์ ์ธ ๋จธ์ ๋ฌ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. ๊ฐ๋จํ ์ฌ์ฉ๋ฐฉ๋ฒ XOR ํ์ตํ๊ธฐ from sklearn import svm, metrics xor_data = [ [0,0], [0,1], [1,0], [1,1] ] xor_label = [0,1,1,0] clf = svm.SVC() clf.fit(xor_data, xor_label) pre = clf.predict(xor_data) ac_score = metrics.accuracy_score(xor_label, pre) print(int((ac_score)*100),"%") ๋จธ์ ๋ฌ๋ ์๊ณ ๋ฆฌ์ฆ์ธ svm ์๊ณ ๋ฆฌ์ฆ์ ๋ชจ๋์ ์ด์ฉํด์ ๊ตฌํํฉ๋๋ค. ๋ฐ์ดํฐ์ ๋ ์ด๋ธ์ ๋ฃ์ ๋ fit์ ์ฌ์ฉํฉ๋๋ค. predict๋ ์ฃผ์ด์ง data๋ก..
[Swift] Optional๊ณผ unwrapping
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ค ๋ง๋ค ํน์์ด ํ๋์ฉ ์๋ ๊ฒ ๊ฐ๋ค. Swift์ ์ธ์ด ํน์์ ์ต์ ๋์ด ์๋๊น,, ์์ํ์ง๋ง ์ค์ํ ๊ฐ๋ optional์ ๋ํด์ ์์๋ณด์ฅ! 1. nil optional์ ์์ nil์ ์์์ผ ํฉ๋๋ค. nil์ ์ฝ๊ฒ ์๊ฐํด์ ์ฐ๋ฆฌ๊ฐ ๋ค๋ฅธ ์ธ์ด์์ ์ตํ ์ฐ๋ null๋ก ์ดํด ํ์๋ฉด ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ฆ ๋ณ์๊ฐ nill์ด๋ผ๋ ๊ฒ์ ๊ฐ์ด ์์์ ์๋ฏธํฉ๋๋ค. ํ์ง๋ง swift๋ ์ผ๋ฐ์ ์ธ ๋ณ์์ nill๊ฐ์ ๋ฃ์ ์ ์์ต๋๋ค. ์ด๋ ์ฐ๋ฆฌ๋ Optional์ด๋ผ๋ ๊ฒ์ ์ฌ์ฉํด์ผ ํฉ๋๋ค. 2. Optional ์ด ๋ณ์์๋ ๊ฐ์ด ์์ ์๋ ์๊ณ , ์์ ์๋ ์์ต๋๋ค! ๋๋์ฒด ๋ฌด์จ ๋ง์ผ๊น ์ถ๊ฒ ์ง๋ง, ๋ง ๊ทธ๋๋ก ์ ๋๋ค. ๋ณ์๊ฐ nill์ผ ์๋ ์๊ณ , ์๋ ์๋ ์๋ค๋ ๊ฒ ์ ๋๋ค. ๋ณ์์ ๊ฐ์ด ์์ ๋ ํธ์ถ์..
[Swift] ๋ณ์์ ์์ ๊ทธ๋ฆฌ๊ณ type
๋ณ์์ ์์ 1. ๋ณ์ ์ ์ธ var name : type = value var num : Int = 100 var name : String = "sladuf" var later : Int name์ ๋ณ์์ ์ด๋ฆ์ ์ง์ ํ๋ค. ์ฃผ๋ก ์ํ๋ฒณ์ผ๋ก ์ด๋ฃจ์ด์ง ๋จ์ด๋ฅผ ์ฐ๊ฑฐ๋ ๋ฌธ์+์ซ์ ์กฐํฉ์ด ๊ฐ๋ฅํจ ๋์ด์ฐ๊ธฐ๊ฐ ํ์ํ ๋ณ์ ์ด๋ฆ์ MyName ๋๋ my_name์ผ๋ก ์ ์ธํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ value์๋ ์ ์ธํ type๊ณผ ์ผ์นํ๋ type์ ๊ฐ์ ์ ๋ ฅํด์ผํจ. (Int๋ก ์ ์ธํ๊ณ "hello"๋ก ์ฌ์ฉ ๋ถ๊ฐ๋ฅ) โ๏ธ ๋ฌธ์์ด(String) ๊ฐ์ ๊ผญ " "์์ ์จ์ฃผ๊ธฐ โ๏ธ type์ด ๋ถ๋ช ํ๋ค๋ฉด type์ ์๋ตํ๊ณ ์๋์ ๊ฐ์ด ์์ฑํด๋ ใฑใ var num = 100 var name = "sladuf" ํ์ง๋ง ์ง๊ธ ๊ฐ์ ์ ๋ ฅํ์ง ์..
[Swift] Xcode๋ก ์์ํ๊ธฐ(feat.MacBook)
swift..๋ฏธ๋ฃจ๊ณ ๋ฏธ๋ฃจ๋ค ๋๋์ด ์์ Swift๋ apple์ด ๋ง๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ด๋ค. ๋๋ถ๋ถ Xcode๋ฅผ ์ฐ๋ ๊ฒ ๊ฐ๋ค.. ๋ด๊ฐ ํ๋ก๊ทธ๋๋ฐ ํ๋ฉด์ ๊ฐ์ฅ ์ ์ฉํ๋ ์ ๊ทผ ๋ฐฉ๋ฒ์ผ๋ก ์ค๋ช ํ ๊ณํ์ด๋ค. ์์์ ํด๋ณด์! ๋ณดํต ์์์ playground์์ ๋ง์ด ํ๋ค. ํ์ง๋ง ์ ๋ ฅ ํํธ๋ก ๋์ด๊ฐ๋ฉด playground์์ ๋น๋๊ฐ ์๋๋ ๊ทธ๋ฅ ์ฒ์๋ถํฐ app์ผ๋ก ๊ฐ์. ๐ก Xcode์์ new project๋ฅผ ์ผ๊ณ macOS์ command line tool์ ์ ํ project ์ด๋ฆ์ ์ค์ ํ๊ณ ์ด๋ฉด main.swift์์ ์์ ํ๋ฉด ๋ฉ๋๋ค (์ฒ์ ๋จ๋ import Foundation์ ์ง์๋ ๋ฌด๊ด) ์ฒซ ๋น๋๋ ์ญ์ Hello World! ๐ก ๋น๋ ํค๋ command + R ๋๋ ์์ ์๋ โถ๏ธ ๋ชจ์ ๐ก โผ๏ธ ์คํ..
[MYSQL] Data INSERT, UPDATE, DELETE
INSERT ๊ธฐ๋ณธํ INSERT INTO table VALUES (data); ์ ์ฒด ์ปฌ๋ผ์ ๋ฐ์ดํฐ ์ถ๊ฐ INSERT INTO table VALUES (data1,data2,...); ์ปฌ๋ผ ์ง์ ํด์ ๋ฐ์ดํฐ ์ถ๊ฐ (NOT NULL์ด ์กด์ฌํ๋ฉด X) INSERT INTO table (column1, column2,...) VALUES (data1,data2,...); ํ ๋ฒ์ ์ฌ๋ฌ row์ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐ INSERT INTO table VALUES (data1,data2,...),(data1,data2,...); UPDATE ๊ธฐ๋ณธํ UPDATE table SET column1 = data1 WHERE column2=data2; ํ ์ด๋ธ์ ์๋ column1์ ๊ฐ์ data1๋ก ๋ชจ๋ ๋ณ๊ฒฝ UPDATE table S..
[JavaScript] Fetch API๋ก JSON Parsing
Fetch ๋๋ถ์ ๋ฐ๋๋ผJS๋ก ๊ฐ๋จํ๊ฒ Ajax๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ๋์๋ค๊ณ ํ๋ค. ์ด ์ ์ Ajax๋ฅผ ์ฌ์ฉํด ๋ณธ ์ ์ ์์ง๋ง ํ์คํ XMLHttpRequest ๋ณด๋ค๋ ๊ฐ๋จ Fetch API JSON ํ์ฑํด์ ํ ๋ง๋ค๊ธฐ ID title body json sample data -> jsonplaceholder.typicode.com JSONPlaceholder - Free Fake REST API {JSON} Placeholder Free fake API for testing and prototyping. Powered by JSON Server + LowDB As of Dec 2020, serving ~1.8 billion requests each month. jsonplaceholder.typicode.c..