/images/avatar.png

🍞πŸ₯πŸ₯– 라일리의 μ½”λ“œ λΆ€μŠ€λŸ¬κΈ° 🍞πŸ₯πŸ₯–

[Python] Python의 μžλ£Œν˜•

파이썬의 λ³€μˆ˜μ™€ 객체 C 와 같은 μ–Έμ–΄μ—μ„œ λ³€μˆ˜λŠ” λ©”λͺ¨λ¦¬ 상 μ €μž₯곡간에 직접 값을 ν• λ‹Ήν•œλ‹€λ©΄, νŒŒμ΄μ¬μ—μ„œ λ³€μˆ˜λŠ” λ©”λͺ¨λ¦¬μƒμ— μƒμ„±λœ 객체λ₯Ό μ°Έμ‘° ν•˜λŠ” κ°œλ…μ΄λ‹€. 1 2 3 4 5 6 7 8 9 10 >>> x = 100 >>> y = 100 >>> x is y True # 257 λΆ€ν„°λŠ” μ„œλ‘œ λ‹€λ₯Έ 객체둜 생성됨. >>> x = 257 >>> y = 257 >>> x is y False μœ„μ˜ μ˜ˆμ œμ—μ„œλŠ” x 와 y λŠ” 100 μ΄λΌλŠ” λ©”λͺ¨λ¦¬μƒ 같은 객체λ₯Ό 가리킀고 μžˆλ‹€.

[Python] pyenvλ₯Ό μ΄μš©ν•˜μ—¬ python μ‹œμž‘ν•˜κΈ°

pyenv? pyenv λŠ” ν•˜λ‚˜μ˜ μ‹œμŠ€ν…œμ—μ„œ μ—¬λŸ¬ λ‹€μ–‘ν•œ λ²„μ „μ˜ Python 을 κ΄€λ¦¬ν•˜κΈ° μœ„ν•œ 관리 도ꡬ이닀. 파이썬 버전을 μ‚¬μš©μž λ‹¨μœ„ ν˜Ήμ€ ν”„λ‘œμ νŠΈλ³„λ‘œ 각각 λ‹€λ₯Έ 버전을 μ‚¬μš©ν•  수 μžˆλ‹€. ruby 의 rvm, Node.js 의 nvm 와 같은 역할을 ν•˜λŠ” Version Manager 이닀. https://github.com/pyenv/pyenv pyenv μ„€μΉ˜ python 을 μ„€μΉ˜ν•˜λŠ”λ° ν•„μš”ν•œ νŒ¨ν‚€μ§€ μ„€μΉ˜ 1 $ sudo apt install curl git-core gcc make zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libssl-dev pyenv μ†ŒμŠ€ λ‹€μš΄λ‘œλ“œ Gibhub μ €μž₯μ†Œμ—μ„œ μ΅œμ‹  pyenv μ†ŒμŠ€λ₯Ό ν΄λ‘ ν•˜μ—¬ ~/.

[Mastering Spring 5.0] 6.5 Spring Security - Basic authentication

μŠ€ν”„λ§ 5.0 λ§ˆμŠ€ν„° μŠ€ν„°λ”” μŠ€ν”„λ§ 5.0 λ§ˆμŠ€ν„° μŠ€ν„°λ”” ν•™μŠ΅ λ‚΄μš© μ •λ¦¬μž…λ‹ˆλ‹€. μŠ€ν”„λ§ μ‹œνλ¦¬ν‹°λ‘œ REST μ„œλΉ„μŠ€ 보호 μ΅œκ·Όμ—λŠ” μ„œλΉ„μŠ€ μ‹œμŠ€ν…œλ“€λΌλ¦¬ REST API 기반의 톡신이 많이 이루어지고 μžˆλ‹€. λ„€μ΄ν‹°λΈŒ μ•±κ³Ό μ„œλ²„ κ°„ ν†΅μ‹ λΏλ§Œ μ•„λ‹ˆλΌ μžλ°”μŠ€ν¬λ¦½νŠΈ μ›Ή ν΄λΌμ΄μ–ΈνŠΈ 와 μ„œλ²„κ°„μ—λ„ REST API 톡신을 많이 μ‚¬μš©ν•˜κΈ° λ•Œλ¬Έμ— REST μ„œλΉ„μŠ€(λ¦¬μ†ŒμŠ€) 에 λŒ€ν•œ λ³΄μ•ˆμ΄ μ€‘μš”ν•΄ 지고 μžˆλ‹€. 인증(Authentication) κ³Ό κΆŒν•œ (Authorization) 인증(Authentication): μ†ŒλΉ„μž(ν΄λΌμ΄μ–ΈνŠΈ) κ°€ μ„œλΉ„μŠ€(λ¦¬μ†ŒμŠ€) 에 접근이 κ°€λŠ₯ν•œ μ†ŒλΉ„μžμΈμ§€ 인가/κΆŒν•œλΆ€μ—¬(Authorization) : 접근이 κ°€λŠ₯ν•˜μ§€λ§Œ ν•΄λ‹Ή μž‘μ—…μ„ μ†ŒλΉ„μž(ν΄λΌμ΄μ–ΈνŠΈ) μ—κ²Œ ν—ˆμš©ν• κ²ƒμΈμ§€ 인증방식은 λ‹€μ–‘ν•˜λ©°, 전톡적인 μΈμ¦λ°©μ‹μœΌλ‘œλŠ” μ‚¬μš©μžλͺ…(Principle)κ³Ό λΉ„λ°€λ²ˆν˜Έ(Credential)둜 μΈμ¦ν•˜λŠ” Credential 기반 인증 방식 κ³Ό OTP λ“±κ³Ό 같이 좔가적인 인증방식을 λ„μž…ν•΄ 2가지 λ°©λ²•μœΌλ‘œ μΈμ¦ν•˜λŠ” 이쀑 인증 방식 κ³Ό μ΅œκ·Όμ—λŠ” OAuth2 인증방식 도 ν•„μˆ˜μ μœΌλ‘œ μ‚¬μš©λ˜κ³  μžˆλ‹€.

[Mastering Spring 5.0] 6.4 Swagger

μŠ€ν”„λ§ 5.0 λ§ˆμŠ€ν„° μŠ€ν„°λ”” μŠ€ν”„λ§ 5.0 λ§ˆμŠ€ν„° μŠ€ν„°λ”” ν•™μŠ΅ λ‚΄μš© μ •λ¦¬μž…λ‹ˆλ‹€. REST μ„œλΉ„μŠ€ λ¬Έμ„œμ˜ μžλ™ν™” REST API μ‹¬ν”Œν•˜κ²Œ μ„€κ³„λ˜λ©΄ μ’‹κ² μ§€λ§Œ, μ†ŒλΉ„μžμ˜ μš”κ΅¬μ‚¬ν•­ λ˜λŠ” μ„œλΉ„μŠ€κ°€ 컀짐에 따라 API κ°€ 점점 λ³΅μž‘ν•΄μ§€κ³  관리해야할 API κ°œμˆ˜λ„ 점점 늘게 λœλ‹€. ν˜‘μ—…μ„ μœ„ν•΄μ„œλŠ” API λŠ” λ°˜λ“œμ‹œ λ¬Έμ„œν™” λ˜μ–΄μ•Ό ν•˜λŠ”λ°, μ†ŒμŠ€ 변경사항과 동기화 μ‹œν‚€κΈ°κ°€ 맀번 λ²ˆκ±°λ‘­λ‹€. μ΄λŸ¬ν•œ 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ REST API μ„œλΉ„μŠ€ λ¬Έμ„œ(μŠ€νŽ™)을 μžλ™ν™” ν•˜λŠ” 툴이 λ“±μž₯ν•˜κ²Œ λ˜μ—ˆλ‹€. μ£Όμš” API Spec μžλ™ν™” 라이브러리 SLATE : https://github.

[Mastering Spring 5.0] 6.3 Bean Validation

μŠ€ν”„λ§ 5.0 λ§ˆμŠ€ν„° μŠ€ν„°λ”” μŠ€ν”„λ§ 5.0 λ§ˆμŠ€ν„° μŠ€ν„°λ”” ν•™μŠ΅ λ‚΄μš© μ •λ¦¬μž…λ‹ˆλ‹€. Bean Validation 데이터 μœ νš¨μ„± 검증 (Validation) 은 λͺ¨λ“ κ³„μΈ΅μ—μ„œ κ³΅ν†΅μ μœΌλ‘œ λ°œμƒν•˜λŠ” μž‘μ—…μ΄λ‹€. λ§Œμ•½ λͺ¨λ“  κ³„μΈ΅μ—μ„œ λ™μΌν•œ λ‚΄μš©μ˜ Validation 둜직이 각각의 λ ˆμ΄μ–΄λ³„λ‘œ κ΅¬ν˜„λ˜μ–΄ μžˆλ‹€λ©΄ μ½”λ“œ 쀑볡과 ν•¨κ»˜ 각 κ³„μΈ΅λ³„λ‘œ μ€‘κ΅¬λ‚œλ°©μœΌλ‘œ κ΅¬ν˜„λœ κ²€μ¦λ‘œμ§κ°„ 뢈일치둜 μΈν•˜μ—¬ 였λ₯˜κ°€ λ°œμƒν•˜κΈ°λ„ 쉽닀. [좜처] https://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/images/application-layers.png μ΄λŸ¬ν•œ Validation 쀑볡을 ν”Όν•˜κΈ° μœ„ν•΄ λ„λ©”μΈμ˜ 검증 λ‘œμ§μ„ 도메인 λͺ¨λΈ μžμ²΄μ— λ¬Άμ–΄μ„œ μ •μ˜ν•˜κΈ°λ„ ν•œλ‹€. ν•˜μ§€λ§Œ 도메인 λͺ¨λΈμ— μ‹€μ œ μ½”λ“œλ‘œ Validation λ‘œμ§μ„ ν‘œν˜„ν•œλ‹€λ©΄ 도메인 λͺ¨λΈ μžμ²΄κ°€ μž₯ν™©ν•˜μ§€κ³  λ³΅μž‘ν•΄μ§€κ²Œ λœλ‹€.

[Mastering Spring 5.0] 6.2 HATEOAS

μŠ€ν”„λ§ 5.0 λ§ˆμŠ€ν„° μŠ€ν„°λ”” μŠ€ν”„λ§ 5.0 λ§ˆμŠ€ν„° μŠ€ν„°λ”” ν•™μŠ΅ λ‚΄μš© μ •λ¦¬μž…λ‹ˆλ‹€. REST μ„±μˆ™λ„ λͺ¨λΈ (Richardson Maturity Model) Richardson Maturity Model μ—μ„œλŠ” Restful Web Service λ₯Ό λ‹€μŒμ˜ λ‹¨κ³„λ‘œ λ‚˜λˆ„μ–΄ μ„±μˆ™λ„λ₯Ό μ •μ˜ν•˜κ³  μžˆλ‹€. Level 0 : 원격 ν”„λ‘œμ‹œμ € 호좜 (Remote Procedure Invocation) 에 κΈ°λ°˜ν•œ ν˜•νƒœλ‘œ resource ꡬ뢄 없이 μ„€κ³„λœ HTTP API (http://server/getPosts, http://server/deletePosts, http://server/doThis, http://server/doThat λ“±) Level 1 : resourceλ₯Ό URI 톡해 λ‚˜νƒ€λ‚Έλ‹€. (λͺ…사 μ‚¬μš©) κ·ΈλŸ¬λ‚˜, HTTP METHOD(GET,POST,PUT,DELETE λ“±) μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ‹€. (http://server/accounts, http://server/accounts/10)