λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

⭐ Personal_Study97

λ©”μ„œλ“œμ™€ ν•¨μˆ˜ 기초 λ³€μˆ˜ & λ©”μ„œλ“œ λ³€μˆ˜ 클래슀 λ³€μˆ˜(class variable) 클래슀 μ˜μ—­ μ„ μ–Έ(static ν‚€μ›Œλ“œ) μƒμ„±μ‹œκΈ°: ν΄λž˜μŠ€κ°€ λ©”λͺ¨λ¦¬μ— μ˜¬λΌκ°”μ„ λ•Œ λͺ¨λ“  μΈμŠ€ν„΄μŠ€κ°€ 곡유 μΈμŠ€ν„΄μŠ€ λ³€μˆ˜(Instance variable) 클래슀 μ˜μ—­ μ„ μ–Έ μƒμ„±μ‹œκΈ°: μΈμŠ€ν„΄μŠ€κ°€ μƒμ„±λ˜μ—ˆμ„ λ•Œ (new) μΈμŠ€ν„΄μŠ€ λ³„λ‘œ 생성 μ§€μ—­λ³€μˆ˜(local variable) 클래슀 μ˜μ—­ 이외 (λ©”μ„œλ“œ, μƒμ„±μž λ“±) μƒμ„±μ‹œκΈ°: μ„ μ–Έλ˜μ—ˆμ„ λ•Œ package java06; public class Person { static int personCount; String name; int age; String hobby; public void info() { System.out.println("λ‚΄ 이름은" + name + "μž…λ‹ˆλ‹€"); System.out... 2022. 12. 9.
클래슀 기초 ν΄λž˜μŠ€μ™€ ν•¨μˆ˜ ν΄λž˜μŠ€λž€? κ΄€λ ¨ μžˆλŠ” λ³€μˆ˜μ™€ ν•¨μˆ˜λ₯Ό λ¬Άμ–΄μ„œ λ§Œλ“  μ‚¬μš©μž μ •μ˜ μžλ£Œν˜• λͺ¨λ“  κ°μ²΄λ“€μ˜ μƒμ‚°μ²˜ 클래슀 == 객체λ₯Ό μƒμ„±ν•˜λŠ” ν‹€ 객체 λͺ¨λΈλ§ ν”„λ‘œκ·Έλž˜λ°μ΄ μ“°μ΄λŠ” λͺ©μ μ„ μƒκ°ν•˜μ—¬ μ–΄λ–€ 객체λ₯Ό λ§Œλ“€μ–΄μ•Ό ν•˜λŠ”μ§€ κ²°μ •ν•œλ‹€. 각 객체듀이 μ–΄λ–€ νŠΉμ§•(속성과 λ™μž‘)을 가지고 μžˆμ„μ§€ κ²°μ •ν•œλ‹€. 클래슀λ₯Ό 톡해 μƒμ„±λœ 객체λ₯Ό μΈμŠ€ν„΄μŠ€λΌκ³  ν•œλ‹€. 객체듀 μ‚¬μ΄μ—μ„œ λ©”μ‹œμ§€λ₯Ό μ£Όκ³  받도둝 λ§Œλ“€μ–΄μ€€λ‹€. public class Person { String name; int age; String hobby; public void info() { System.out.println("λ‚΄ 이름은" + name + "μž…λ‹ˆλ‹€"); System.out.println("λ‚˜μ΄λŠ”" + age + ", μ·¨λ―ΈλŠ”" + hobby + "μž…λ‹ˆλ‹€.");.. 2022. 12. 9.
μ›μ‹œ μžλ£Œν˜• μ›μ‹œ(Primitive) μžλ£Œν˜• int, long, double, float, boolean, char 이름이 μ†Œλ¬Έμžλ‘œ μ‹œμž‘ν•œλ‹€. new둜 값을 생성할 수 μ—†λ‹€ boolean isTrue = true; char a = "A" int i = 1234; Wrapper 클래슀 μ›μ‹œμžλ£Œν˜• Wrapper 클래슀 int Integer long Long double Double float Float boolean Boolean char Char ArrayList, HashMap, HashSet 등은 μ›μ‹œ μžλ£Œν˜• λŒ€μ‹  Wrapper 클래슀λ₯Ό μ‚¬μš©ν•΄μ•Ό ν•œλ‹€. Wrapper 클래슀 μ‚¬μš©μ‹œ κ°’ λŒ€μ‹  객체λ₯Ό μ£Όκ³  받을 수 μžˆμ–΄μ„œ 객체쀑심 μ½”λ“œ μž‘μ„±μ— 유리 & λ©€ν‹°μŠ€λ ˆλ”© ν™˜κ²½μ—μ„œ 동기화 지원 μ˜€ν† λ°•μ‹± μ˜€ν†  μ–Έλ°•μ‹± // κ·Έλƒ₯ λ°•.. 2022. 12. 8.
Segment Tree Segment Tree Segment Treeλž€? βœ” μ–΄λ–€ 데이터가 μ‘΄μž¬ν•  λ•Œ, νŠΉμ • κ΅¬κ°„μ˜ 결과값을 κ΅¬ν•˜λŠ”λ° μ‚¬μš©ν•˜λŠ” 자료 ꡬ쑰! βœ” prefix sum? -> μœ μš©ν•˜μ§€λ§Œ κ°’μ˜ 변경에 μ·¨μ•½ν•˜λ‹€ βœ” λ”°λΌμ„œ segment treeλŠ” 이진 트리 ꡬ쑰λ₯Ό 가진닀! βœ” λͺ©ν‘œλ‘œ ν•˜λŠ” 값을 μ΅œλŒ€λ‘œ μ»€λ²„ν•˜λŠ” λ²”μœ„μ˜ segment듀을 λ”ν•΄μ„œ 합을 κ΅¬ν•œλ‹€ βœ” κ°’ λ³€κ²½ μ‹œμ— μžμ‹ λ…Έλ“œμ˜ κ°’λ§Œ λ°”κΎΈλ©΄ 되기 λ•Œλ¬Έμ— logN μ‹œκ°„ λ³΅μž‘λ„λ‘œ λŒ€μ‘ν•  수 μžˆλ‹€! 전체 μ½”λ“œ (μž¬κ·€μ μœΌλ‘œ κ΅¬ν˜„) from math import log2, ceil, gcd class SegmentTree: def __init__(self, input_list, calculation_method='sum'): self.level = 0 self.. 2022. 12. 3.
drf-spectacular drf-spectacular swagger βœ” μŠ€μ›¨κ±°(swagger)λŠ” κ°œλ°œμžκ°€ REST μ›Ή μ„œλΉ„μŠ€λ₯Ό 섀계, λΉŒλ“œ, λ¬Έμ„œν™”, μ†ŒλΉ„ν•˜λŠ” 일을 λ„μ™€μ£ΌλŠ” μ˜€ν”ˆ μ†ŒμŠ€ μ†Œν”„νŠΈμ›¨μ–΄ ν”„λ ˆμž„μ›Œν¬ βœ” 즉, APIλ₯Ό μ„€κ³„ν•˜κ³  λ¬Έμ„œν™” ν•˜λŠ”λ° 도움을 μ£ΌλŠ” 라이브러리 λ‹€μ–‘ν•œ DRF API βœ” μŠ€μ›¨κ±°(swagger)λ₯Ό 생성할 수 μžˆλ„λ‘ 도움을 μ£ΌλŠ” 라이브러리 -> drf-spectacular drf-spectacular βœ” Open API 3.0을 μ§€μ›ν•˜λŠ” DRF API OpenAPI 생성기 μ„€μΉ˜ 및 등둝 $ pip install drf-spectacular $ pip freeze > requirements.txt # my_api/settings.py INSTALLED_APPS = [ 'drf_spectacular' ] κΈ°λ³Έ μ„€.. 2022. 11. 24.
DRF Auth with Vue DRF Auth with Vue vue server μš”μ²­ 정상 μž‘λ™ μ—¬λΆ€ 확인 βœ” 401 status code βœ” μΈμ¦λ˜μ§€ μ•Šμ€ μ‚¬μš©μžμ΄λ―€λ‘œ 쑰회 μš”μ²­μ΄ λΆˆκ°€λŠ₯! SignUp Request SignUp Page views/SignUpView.vue // views/SignUpView.vue Sign Up Page username : password : password confirmation : βœ” Serverμ—μ„œ μ •μ˜ν•œ fieldλͺ… 확인 username password1 password2 router/index.js // router/index.js import SignUpView from '@/views/SignUpView' Vue.use(VueRouter) const routes = [ ... { p.. 2022. 11. 23.