๋ฐ์ํ
Language
ํ์ด์ฌ venv ๋ชจ๋์ ํตํด ๊ฐ์ ํ๊ฒฝ์์ ํ๋ก์ ํธ ์์ฑํ๊ธฐ
ํ์ด์ฌ venv ๋ชจ๋์ ํตํด ๊ฐ์ ํ๊ฒฝ์์ ํ๋ก์ ํธ ์์ฑํ๊ธฐ
2023.12.12venv? ํ์ด์ฌ์ venv ๋ชจ๋์ ๊ฐ์ ํ๊ฒฝ์ ์์ฑํ์ฌ ํ๋ก์ ํธ๋ฅผ ๊ฒฉ๋ฆฌ๋ ํ๊ฒฝ์์ ๊ฐ๋ฐํ๊ณ ์คํํ ์ ์๊ฒ ํด์ค๋ค. ๊ฐ์ ํ๊ฒฝ์ ์ฌ์ฉํ๋ฉด ์์คํ
์ ์ค์น๋ ํ์ด์ฌ ํ๊ฒฝ์ ์ํฅ์ ์ฃผ์ง ์์ผ๋ฉด์, ํน์ ํ๋ก์ ํธ์ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ค์ ์ ๊ด๋ฆฌ ํ ์ ์๋ค. https://docs.python.org/ko/3/library/venv.html venv — Creation of virtual environments Source code: Lib/venv/ The venv module supports creating lightweight “virtual environments”, each with their own independent set of Python packages installed in their s..
ํ์ด์ฌ์ผ๋ก ๋์ค์ฝ๋(Discord) ์๋ฆผ ๋ฉ์ธ์ง ๋ด ๋ง๋ค๊ธฐ(2)- ์๋ฆผ ๋ฉ์ธ์ง ์ ์ก
ํ์ด์ฌ์ผ๋ก ๋์ค์ฝ๋(Discord) ์๋ฆผ ๋ฉ์ธ์ง ๋ด ๋ง๋ค๊ธฐ(2)- ์๋ฆผ ๋ฉ์ธ์ง ์ ์ก
2023.10.19์ด์ ๊ธ 2023.10.19 - [Language/Python] - ํ์ด์ฌ์ผ๋ก ๋์ค์ฝ๋(Discord) ์๋ฆผ ๋ฉ์ธ์ง ๋ด ๋ง๋ค๊ธฐ(1) - ๋ด ์์ฑ ๋ฐ ์ถ๊ฐ ํ์ด์ฌ์ผ๋ก ๋์ค์ฝ๋(Discord) ์๋ฆผ ๋ฉ์ธ์ง ๋ด ๋ง๋ค๊ธฐ(1) - ๋ด ์์ฑ ๋ฐ ์ถ๊ฐ 00. ๊ฐ์ ๊ฐ๋ฐ์๋ค ์ฌ์ด์์ ๋ง์ด ์ฌ์ฉ๋๊ณ ์๋ ์ปค๋ฎค๋์ผ์ด์
์ฑ ๋์ค์ฝ๋(Discord), ์ด ๋์ค์ฝ๋์ ๋ด์ ๋ง๋ค์ด ์๋ฆผ ๋ฉ์ธ์ง๋ฅผ ์ ์กํ๊ณ ์ถ์ ๊ฒฝ์ฐ๊ฐ ์๊ฒจ์ ๋ง๋ค๊ฒ ๋์๋ค. 01. ๋ด(Bot) ์์ฑ ๋ฐ ์ถ cjwoov.tistory.com 00. ๊ฐ์ ์ด์ ํฌ์คํ
์์ ๋์ค์ฝ๋ ์๋ฆผ ๋ด์ ๋ง๋ค๊ธฐ ์ํ ์ฌ์ ์์ฑ ๊ณผ์ ์ ๋ค๋ค๋ณด์๋ค. ์ด๋ฒ์๋ ๋ณธ๊ฒฉ์ ์ผ๋ก ํ์ด์ฌ์ผ๋ก ์๋ฆผ ๋ฉ์ธ์ง๋ฅผ ์ ์กํ๋ ์ฝ๋๋ฅผ ์์ฑํด๋ณด์. 01. ์๋ฆผ ๋ฉ์ธ์ง ์ ์ก ์ฝ๋ ์์ฑ ํจํค์ง ์ค์น ํ์ด์ฌ์์ ๋์ค..
ํ์ด์ฌ์ผ๋ก ๋์ค์ฝ๋(Discord) ์๋ฆผ ๋ฉ์ธ์ง ๋ด ๋ง๋ค๊ธฐ(1) - ๋ด ์์ฑ ๋ฐ ์ถ๊ฐ
ํ์ด์ฌ์ผ๋ก ๋์ค์ฝ๋(Discord) ์๋ฆผ ๋ฉ์ธ์ง ๋ด ๋ง๋ค๊ธฐ(1) - ๋ด ์์ฑ ๋ฐ ์ถ๊ฐ
2023.10.1900. ๊ฐ์ ๊ฐ๋ฐ์๋ค ์ฌ์ด์์ ๋ง์ด ์ฌ์ฉ๋๊ณ ์๋ ์ปค๋ฎค๋์ผ์ด์
์ฑ ๋์ค์ฝ๋(Discord), ์ด ๋์ค์ฝ๋์ ๋ด์ ๋ง๋ค์ด ์๋ฆผ ๋ฉ์ธ์ง๋ฅผ ์ ์กํ๊ณ ์ถ์ ๊ฒฝ์ฐ๊ฐ ์๊ฒจ์ ๋ง๋ค๊ฒ ๋์๋ค. 01. ๋ด(Bot) ์์ฑ ๋ฐ ์ถ๊ฐ 1. ๋์ค์ฝ๋ ๊ฐ๋ฐ์ ํฌํ ์ ์ https://discord.com/developers/applications Discord Developer Portal — API Docs for Bots and Developers Integrate your service with Discord — whether it's a bot or a game or whatever your wildest imagination can come up with. discord.com 2. ์ดํ๋ฆฌ์ผ์ด์
์์ฑ(New Applic..
[javascript] ๋ก์ปฌ์ ์ ์ฅ๋ JSON ํ์ผ์ ์ฝ์ด์ค๋ ๋ฐฉ๋ฒ
[javascript] ๋ก์ปฌ์ ์ ์ฅ๋ JSON ํ์ผ์ ์ฝ์ด์ค๋ ๋ฐฉ๋ฒ
2022.03.02test.json(์์ ํ์ผ) TestFile = { "test": [ 1, 2, 3 ], "persons": [ { "name": "ํ๊ธธ๋", "age": 14 }, { "name": "์ต์ง์ฐ", "age": 31 } ] } ์ฌ๊ธฐ์ ์ฃผ๋ชฉํด์ผ ํ ๊ฒ์ ๊ธฐ๋ณธ์ ์ธ JSON ํฌ๋งท์ TestFile์ด๋ผ๋ ๋ณ์๋ช
์ ๋ถ์ฌ์ =๋ก ํ ๋นํด์ค์ผ javascript์์ ๋ก๋ํ ์ ์๋ค. JSON ํ์ผ ์ฝ์ด์ค๊ธฐ 1๋ฒ์งธ ๋ผ์ธ์ฒ๋ผ json์ด ์๋ ํ์ผ์ ๋ช
์ํด์ค ๋ค test.json์ ํ ๋นํด์ค ๋ณ์๋ช
์ผ๋ก JSON์ ์ฝ์ด์ ํ์ฑํ๋ค.
[C++11] keyword: static_assert
[C++11] keyword: static_assert
2020.07.231. ์ค๋ช
statc_assert๋ C++11์ ์ถ๊ฐ๋ ํค์๋๋ก, ์ธ์๋ก ์ ๋ฌ๋ ์์ด ์ฐธ์ธ์ง ์๋์ง ์ปดํ์ผ ํ์์ ํ์ธํ๋ค. static_assert์ ์ ๋ฌ๋ ์์ด ์ฐธ์ด๋ผ๋ฉด, ์ปดํ์ผ๋ฌ์ ์ํด ํด๋น ์์ ๋ฌด์๋๊ณ , ๊ฑฐ์ง์ด๋ผ๋ฉด ํด๋น ๋ฌธ์ฅ์์ ์ปดํ์ผ ์ค๋ฅ๋ฅผ ๋ฐ์์ํจ๋ค. static_assert( constant-expression, string-literal ); static_assert( constant-expression ); // C++17 (Visual Studio 2017 and later) ์ปดํ์ผ ํ์์ ์ํ๋๋ ํค์๋์ด๋ฏ๋ก ์ฒซ ๋ฒ์งธ ์ธ์ ์ญ์ ์ปดํ์ผ ํ์์ฌ ๊ฒฐ์ ๋ ์ ์๋ ์ธ์์ฌ์ผ ํ๋ค. static_assert(sizeof(void *) == 4, "64-bit code generation is..
[C++] keyword: enum class
[C++] keyword: enum class
2020.07.231. ์ค๋ช
C++03๊น์ง์ enum์ ์ฌ๋ฌ๊ฐ์ง ๋ฌธ์ ๋ฅผ ๊ฐ์ง๊ณ ์์๋ค. ๊ทธ๋์ ๊ทธ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ์ C++11๋ถํฐ enum class๋ผ๋ ๊ฒ์ด ๋ฑ์ฅํ๋ค. ๊ธฐ์กด enum์ ๋ฌธ์ ์ ๋ค์ ๋ค์๊ณผ ๊ฐ๋ค. 1.1) ๊ธฐ์กด enum์ ๋ฌธ์ 1.1.1) ์ ๋ฐฉ ์ ์ธ ๋ถ๊ฐ๋ฅ ๊ธฐ์กด enum์ enumerator์ ์ด๋ค ๊ฐ์ด ๋ค์ด์์์ง ์ ์ ์์ผ๋ฉด ๊ทธ ํฌ๊ธฐ๋ฅผ ์ ํ ์ ์๊ธฐ ๋๋ฌธ์ ์ ๋ฐฉ ์ ์ธ์ ํ ์ ์๋ค. enum Fruit; // ์ ๋ฐฉ ์ ์ธ ๋ถ๊ฐ๋ฅ void main() { Fruit f = Apple; // ๋ฐ๋ผ์ ํด๋น enum์ ์ฐพ์์ ์์ } enum Fruit { Apple, Banana, Peach, }; ๋ฐ๋ผ์ ์์ ๊ฐ์ด ์ปดํ์ผ์ ํ ์ ์์ผ๋ฉฐ ๋งค ํ์ผ ์๋จ์ enum์ ์ ์ํด์ค์ผ ํ๋ ๋ถํธํจ์ด ์๋ค. 1.1.2) ..
[C++] keyword: static_cast, dynamic_cast, reinterpret_cast, const_cast
[C++] keyword: static_cast, dynamic_cast, reinterpret_cast, const_cast
2020.07.231. ์ค๋ช
C์ ์บ์คํธ ์ฐ์ฐ์๋ ๋ณ์์ ํ์
์ ๋ฐ๊ฟ ์ ์๋ค๋ ๋ฉด์์ ํธ๋ฆฌํ๊ณ ์ ์ฐํ ์ฝ๋ ์์ฑ์ ๋์์ค๋ค. ํ์ง๋ง ๋๋ฌด ๋ฌด์ฑ
์ํ๊ณ ๊ฐ๋ฐ์์๊ฒ ๋ชจ๋ ๊ฒ์ ๋ ๋๊ธด๋ค. C++์์๋ ์ข ๋ ์์ ํ๊ณ ๋ณํ ๋ชฉ์ ์ ๋ง๊ฒ ๊ณจ๋ผ ์ธ ์ ์๋ 4๊ฐ์ ์๋ก์ด ์บ์คํธ ์ฐ์ฐ์๋ฅผ ์ ๊ณตํ๋ค. static_cast reinterpret_cast dynamic_cast const_cat 1.1) static_cast static_cast ์ฐ์ฐ์๋ ์ง์ ํ ํ์
์ผ๋ก ๋ณ๊ฒฝํ๋๋ฐ ๋ฌด์กฐ๊ฑด ๋ณ๊ฒฝํ๋ ๊ฒ์ด ์๋๋ผ ๋
ผ๋ฆฌ์ ์ผ๋ก ๋ณํ ๊ฐ๋ฅํ ํ์
๋ง ๋ณํํ๋ค. void main() { const char* str = "korea"; int* pi; double d = 123.456; int i; i = static_cast(d); // ๊ฐ๋ฅ pi =..
[C++] keyword: noexcept
[C++] keyword: noexcept
2020.07.231. ์ค๋ช
๋ง์ฝ์ ์ด๋ค ํจ์๊ฐ ์์ธ๋ฅผ ๋ฐ์์ํค์ง ์๋๋ค๋ฉด noexcept ํค์๋๋ฅผ ํตํด ๋ช
์ํ ์ ์๋ค. int foo() noexcept {} foo ํจ์์ ๊ฒฝ์ฐ ์์ธ๋ฅผ ๋ฐ์์ํค์ง ์์ผ๋ฏ๋ก ์์ ๊ฐ์ด ํจ์ ์ ์ ์์ noexcept๋ฅผ ๋ฃ์์ผ๋ก์จ ๋ํ๋ผ ์ ์๋ค. #include using namespace std; int foo() noexcept { return 0; } int bar() noexcept { throw 1; } int main() { foo(); try { bar(); } catch (int x) { std::cout
[C++11] keyword: constexpr
[C++11] keyword: constexpr
2020.07.231. ์ค๋ช
constexpr ํค์๋๋ ๊ฐ์ฒด๋ ํจ์ ์์ ๋ถ์ผ ์ ์๋ ํค์๋๋ก, ํด๋น ๊ฐ์ฒด๋ ํจ์์ ๋ฆฌํด ๊ฐ์ ์ปดํ์ผ ํ์์ ๊ฐ์ ์ ์ ์๋ค๋ ์๋ฏธ๋ฅผ ์ ๋ฌํ๋ค. int arr[size]; ์ ๋ฐฐ์ด ์ ์ธ์์ด ์ปดํ์ผ๋๊ธฐ ์ํด์๋ size๊ฐ ์ ์ ์์ ์์ด์ฌ์ผ ํ๊ณ template struct A { int operator()() { return N; } }; A a; ํ
ํ๋ฆฟ ํ์
์ธ์์ ๊ฒฝ์ฐ๋ ๋ง์ฐฌ๊ฐ์ง๋ก number๊ฐ ์ ์ ์์์์ด์ฌ๋ง ํ๋ค. ๊ทธ ์ธ์๋, enum A { a = number, b, c }; enum์์ ๊ฐ์ ์ง์ ํด์ค ๋์ ์ค๋ number ์ญ์ ์ ์ ์์ ์์ด์ฌ๋ง ํ๋ค. constexpr์ ์์ ๋งํ ๋๋ก, ์ด๋ ํ ์์ด ์์์์ด๋ผ๊ณ ๋ช
์ํด์ฃผ๋ ํค์๋๋ค. #include using names..
[C++] keyword: using
[C++] keyword: using
2020.07.231. ์ค๋ช
using ํค์๋๋ ๋ค์๊ณผ ๊ฐ์ด ํ์ฉํ ์ ์๋ค. 1. namespace using ์ง์์(Directive) 2. namespace using ์ ์ธ(Declaration) 3. ํ์
์ ์ 4. ํด๋์ค ๊ณ์ธต์์์ ์ฌ์ฉ 1.1) namespace using ์ง์์(Directive) ๋ค์ ์คํ์ด์ค๋ ๋ช
์นญ์ ์ ์ธ ์์ญ์ ๋ถ๋ฆฌํด์ ์ถฉ๋์ ๋ฐฉ์งํ๋ค. ๊ทธ๋์ ๋ค์ ์คํ์ด์ค ์์ ๋ช
์นญ์ ์ ์ธํ๋ฉด ์ด๋ฆ์ ๋ถ์ผ ๋ ์ถฉ๋์ ๊ฑฑ์ ํ์ง ์๊ณ ์์ ๋กญ๊ฒ ์ด๋ฆ์ ๋ถ์ผ ์ ์๋ค. ๊ทธ๋ฌ๋ ์ด๋ ๊ฒ ์์ฑ๋ ๋ช
์นญ์ ์ฌ์ฉํ๋ ค๋ฉด ๋งค๋ฒ ์์์ ๋ฐํ์ผ ํ๋ฏ๋ก ๋งค์ฐ ๋ฒ๊ฑฐ๋กญ๋ค. ๋ฐ๋ผ์ using namespace (๋ค์ ์คํ์ด์ค ์ด๋ฆ)์ ํตํด ๋งค๋ฒ ๋ค์ ์คํ์ด์ค๋ฅผ ์๋ตํ๊ณ ๋ฐ๋ก ์ฌ์ฉํ ์ ์๋ค. #include using namespac..
[C++] keyword: friend
[C++] keyword: friend
2020.07.231. ์ค๋ช
friend ํค์๋๋ ํด๋์ค ๋ด๋ถ์์ ๋ค๋ฅธ ํด๋์ค๋ ํจ์๋ค์ friend๋ก ์ ์ํ ์ ์๋ค. friend๋ก ์ ์๋ ํด๋์ค๋ ํจ์๋ค์ ์๋์ ํด๋์ค์ private๋ก ์ ์๋ ๋ณ์๋ ํจ์๋ค์ ์ ๊ทผํ ์ ์๋ค. class A { private: void private_func() {} int private_num; // B ๋ A ์ ์น๊ตฌ! friend class B; // func ์ A ์ ์น๊ตฌ! friend void func(); }; class B { public: void b() { A a; // ๋น๋ก private ํจ์์ ํ๋๋ค์ด์ง๋ง ์น๊ตฌ์ด๊ธฐ ๋๋ฌธ์ ์ ๊ทผ ๊ฐ๋ฅํ๋ค. a.private_func(); a.private_num = 2; } }; void func() { A a; // ๋น๋ก pr..
[C++] keyword: static
[C++] keyword: static
2020.07.231. ์ค๋ช
static ํค์๋๋ C++์์ ํน๋ณํ ํน์ฑ์ ๋ถ์ฌํ๋ ๋ฐ ์ฌ์ฉํ๋ค. static์ผ๋ก ์ ์ธ๋ ๊ฒ๋ค์ ํ๋ก๊ทธ๋จ ์คํ ์๊ฐ ๋์ ํ ๋ฒ๋ง ์ ์ ๋ฐ์ดํฐ ์์ญ์ ์ ์ฅ๋๊ณ , ํ๋ก๊ทธ๋จ ์คํ ๋์ ์ ์ง๋๋ค. static ํค์๋๋ ๋ค์๊ณผ ๊ฐ์ด ์ฌ์ฉ๋๋ค. 1. ํจ์ ๋ด์์ static ๋ณ์ 2. static ํด๋์ค ๊ฐ์ฒด 3. ํด๋์ค ๋ด static ๋ฉค๋ฒ ๋ณ์ 4. ํด๋์ค ๋ด static ํจ์ 2. ์์ 2.1) ํจ์ ๋ด์์ static ๋ณ์ #include using namespace std; void counter() { static int count = 0; cout