Database/JPA
μ€νλ§λΆνΈ νλ‘μ νΈλ₯Ό μ€νμν€λ©΄ μμ κ°μ WARNμ΄ νμλλ€. spring.jpa.open-in-viewμ κΈ°λ³Έκ°μ trueμ΄λ©° ν΄λΉνλ WARNμ false κ°μΌλ‘ μ§μ ν΄μ£Όλ©΄ μμ΄μ§λ€.λ°°ν¬μ© μͺ½ yml νμΌμ spring.jpa.open-in-viewλ₯Ό falseλ‘ ν΄μ£Όμκ³ , λ‘컬 μͺ½μλ λ³λ€λ₯Έ μ§μ μ νμ§ μκ³ λ°°ν¬νλλ λ°°ν¬ μ¬μ΄νΈμμ κΈ μ μ²΄κ° μ‘°νλμ§ μλ μν©μ΄ λ°μνλ€. open-in-view:false λ₯Ό μ£Όμμ²λ¦¬νλ λ€νν κΈ μ 체 μ‘°νκ° μ μμ μΌλ‘ μλνλ€. open-in-viewκ° λ¬΄μμ΄κΈΈλ μ‘°νμ μν₯μ λ―ΈμΉλμ§ μμλ³΄κ² λ€! λ보기μμ μ λ€μλ κΉμν κ°μ¬λμ 'μ€μ ! μ€νλ§λΆνΈμ JPA νμ©2 - API κ°λ° μ±λ₯μ΅μ ν' κ°μμμ μΉμ
5 API κ°λ° κ³ κΈ-μ€λ¬΄ νμ μ΅μ ν - '..
μκ³ λ¦¬μ¦/CodeTree
⨠ꡬν β‘οΈ μ°μμ μΌλ‘ μ΄λμν€κΈ° & μ΄λν μ’ν κ°±μ νκ³ μ λ°μμν€κΈ° https://www.codetree.ai/training-field/frequent-problems/problems/rudolph-rebellion/description?page=1&pageSize=20 μ½λνΈλ¦¬ | μ½λ©ν
μ€νΈ μ€λΉλ₯Ό μν μκ³ λ¦¬μ¦ μ μ κ΅κ°λνκ° λ§λ μ½λ© 곡λΆμ κ°μ΄λλΆ μ½λ© μμ΄λ³΄λΆν° κΏμ μ§μ₯ μ½ν
ν©κ²©κΉμ§, κ΅κ°λνκ° μμ ν 컀리νλΌμΌλ‘ μ€λΉν΄λ³΄μΈμ. www.codetree.ai πκ³ λ €ν΄μΌν μ μ°νκ° κ°κΉμ΄ 루λνμκ² μ΄λν λ, λ°λλ‘ λ£¨λνκ° κ°κΉμ΄ μ°νμκ² μ΄λν λ μ΄λ λ°©ν₯μΌλ‘ μ΄λν μ§ κ²°μ νκΈ° μν΄μλ 거리 곡μ κ³μ°μ μ΄μ©ν΄μ λΉκ΅ν΄μΌ νλ€. π 루λνμ κ²½μ° 8λ°©ν₯ μ΄λ κ°λ₯νκ³ , μ°νλ..
μκ³ λ¦¬μ¦/ποΈ μ 리
λ¬ν½μ΄ μ΄λμ ν¨μ¨μ μΌλ‘ μμ±ν μ½λκ° μμ΄μ κΈ°λ‘νλ€. μ°μ 격μμ ν λ³μ 무쑰건 νμλ€. μ -> λ°μΌλ‘ μ΄λνλ λ°©ν₯κ³Ό λ° -> μμΌλ‘ μ΄λνλ λ°©ν₯μ ν λ²μ μ μ₯νλ λ‘μ§μ΄λ€. κ·μΉ μ°ΎκΈ° λ¬ν½μ΄ μ΄λνλ κ·μΉμ μ°Ύμ보면 νμ¬ λ°©ν₯μ΄ λ§μ½ μ λλ μλμΌ λλ§λ€ μ΄λνλ νμκ° 1μ© μ¦κ°νλ€. μ β λ°μΌλ‘ μ΄λνλ κ²½μ°λ₯Ό 보면, β¬οΈ β‘οΈ λ‘ μ΄λν λλ 1, 3, 5 ... μΉΈμ© μ΄λνκ³ , β¬οΈ β¬
οΈ λ‘ μ΄λν λλ 2, 4, 6 ... μΉΈμ© μ΄λνλ€. (0, 0)μΉΈμΌλ‘ ν₯ν΄ κ°λ λ§μ§λ§ β¬οΈλ μ§μ μΉΈλ§νΌ μ΄λνμ§λ§ μ΄μ°¨νΌ (0, 0)μμ λλκΈ° λλ¬Έμ breakνλ©΄ λλ€. λ° β μμΌλ‘ μ΄λνλ λ¬ν½μ΄ λͺ¨μμ μμ λ°λλ‘ μκ°νλ©΄ λκΈ° λλ¬Έμ λ°©ν₯λ§ λ°κΏμ£Όλ©΄ λλ€. μ½λ public st..
μκ³ λ¦¬μ¦/CodeTree
⨠ꡬν https://www.codetree.ai/training-field/frequent-problems/problems/battle-ground/description?page=1&pageSize=20 μ½λνΈλ¦¬ | μ½λ©ν
μ€νΈ μ€λΉλ₯Ό μν μκ³ λ¦¬μ¦ μ μ κ΅κ°λνκ° λ§λ μ½λ© 곡λΆμ κ°μ΄λλΆ μ½λ© μμ΄λ³΄λΆν° κΏμ μ§μ₯ μ½ν
ν©κ²©κΉμ§, κ΅κ°λνκ° μμ ν 컀리νλΌμΌλ‘ μ€λΉν΄λ³΄μΈμ. www.codetree.ai π κ³ λ €ν΄μΌν μ ν΄λΉνλ μΉΈμ μλ μ΄λ€μ λΉκ΅νκ³ κ°μ₯ 곡격λ ₯μ΄ λμ μ΄μ μ νν΄μΌνλ€. μ§ μ¬λμ κ²½μ° μ΄μ ν΄λΉνλ μΉΈμ λκ³ , 쑰건μ λ°λΌ μ΄λνλ€. πΉοΈ μκ³ λ¦¬μ¦ κ³Όμ μ§ μ¬λμ΄ μ΄μ λ²λ¦¬κ³ μ΄λν΄μΌνλλ°, λ²λ¦¬λ μ½λλ₯Ό μμ±νμ§ μμ λλ²κΉ
νλλ° μκ°μ μκ°λ³΄λ€ λ§μ΄ μμ κ² μΈμλ λ±ν..
CS/π λ€νΈμν¬
HTTP νΉμ± HTTPλ stateless, connectionless νΉμ§μ κ°μ§κ³ μμ΄ μμ²μ λν μλ΅μ μ²λ¦¬νκ² λλ©΄ μ°κ²°μ λμ΄λ²λ¦°λ€. λ°λΌμ ν΄λΌμ΄μΈνΈμ λν μ΄μ μ μν μ 보 λ° νμ¬ ν΅μ μ μνκ° λ¨μμμ§ μλ€. μ°κ²°μ κ³μ μ μ§νλ€λ©΄ μ΄μ λ°λ₯Έ μμ λλΉκ° μ¬ν΄μ§κΈ° λλ¬Έμ΄λ€. νμ§λ§ μνκ° λ¨μμμ§ μμ μλ²λ ν΄λΌμ΄μΈνΈλ₯Ό μλ³ν μ μλ λ¨μ μ΄ μλ€. λ‘κ·ΈμΈμ νλλΌλ λ€μ μμ²μμ ν΄λΉ ν΄λΌμ΄μΈνΈλ₯Ό κΈ°μ΅νμ§ λͺ»νλ―λ‘ λ€μ λ‘κ·ΈμΈμ ν΄μΌνλ λ¬Έμ κ° λ°μνλ κ²μ΄λ€. μ΄λ¬ν λΉμ°κ²°μ±κ³Ό 무μνμ± νΉμ§μ 보μν κΈ°μ μ΄ Cookieμ Sessionμ΄λ€. Cookie π ν΄λΌμ΄μΈνΈ(μΉ λΈλΌμ°μ )μ μ μ₯λλ μμ λ°μ΄ν° μ‘°κ° Key-ValueνμμΌλ‘ μ μ₯λλ©° ν΄λΌμ΄μΈνΈκ° μμ²μ λ³΄λΌ λλ§λ€ λ§€λ² ..
CS/π λ€νΈμν¬
νλ‘ νΈμλμ λ°±μλ κ°μ ν΅μ μ νλ €κ³ ν λ μ¦, ν΄λΌμ΄μΈνΈμμ APIλ₯Ό μ§μ νΈμΆν λ CORS μ μ±
μλ°μΌλ‘ μ€λ₯κ° λλ μν©μ΄ λ°μνλ€. CORSλ "κ΅μ°¨ μΆμ² 리μμ€ κ³΅μ "λ₯Ό μλ―Ένκ³ , SOPλ κ·Έ λ°λμΈ "λμΌ μΆμ² μ μ±
"μ μλ―Ένλ€. "μΆμ²κ° κ΅μ°¨νλ€"λ μλ―Έκ° λκΉ? μΆμ² (Origin) μ°μ CORSμ SOP 곡ν΅μΌλ‘ Origin(μΆμ²)μ΄λΌλ λ¨μ΄λ₯Ό ν¬ν¨νκ³ μλ€. μΆμ²λ URLμμ λλ©μΈ, νλ‘ν μ½, ν¬νΈκΉμ§ ν¬ν¨νλ κ°λ
μΌλ‘ μ΄ μ€ νλλΌλ λ€λ₯΄κ² λλ©΄ CORS μλ¬λ₯Ό λ§λκ² λλ κ²μ΄λ€. λλ©μΈ (Hostname) : myshop.com μΆμ² (Origin) : https://myshop.com "μΆμ²κ° κ΅μ°¨νλ€" π 리μμ€λ₯Ό μ£Όκ³ λ°μΌλ €λ 'λ μΆμ²κ° μλ‘ λ€λ₯΄λ€'λ₯Ό μλ―Έ CORS ..
μκ³ λ¦¬μ¦/BOJ
⨠ꡬν https://www.acmicpc.net/problem/17837 17837λ²: μλ‘μ΄ κ²μ 2 μ¬νμ΄λ μ£Όλ³μ μ΄ν΄λ³΄λ μ€ μ²΄μ€νκ³Ό λ§μ μ΄μ©ν΄μ μλ‘μ΄ κ²μμ λ§λ€κΈ°λ‘ νλ€. μλ‘μ΄ κ²μμ ν¬κΈ°κ° N×NμΈ μ²΄μ€νμμ μ§νλκ³ , μ¬μ©νλ λ§μ κ°μλ Kκ°μ΄λ€. λ§μ μνλͺ¨μμ΄κ³ , ν www.acmicpc.net π κ³ λ €ν΄μΌν μ ν μ’ν μμ μ¬λ¬ κ°μ λ§μ΄ λ€μ΄κ° μ μλ€. β μ΄λνλ €λ μΉΈμ λ§μ΄ μ‘΄μ¬νλ€λ©΄ κ·Έ μμ λ§μ΄ μ¬λΌκ° ν λ§μ΄ μ΄λν λ μμ μ¬λ €μ Έ μλ λ§κΉμ§ λͺ¨λ μ΄λνλ€. μ¬λ¬ κ°μ λ§μ΄ λ€μ΄κ° λ μ’νμ μκΉμ λ°λΌ μ λ ¬ κΈ°μ€μ΄ μ‘΄μ¬νλ€. μ’νμ λ²μλ₯Ό λ²μ΄λκ±°λ μ’ν μΉΈμ΄ νλμμΌ λμ 쑰건μ μ μν΄μΌνλ€. πΉοΈ νμ΄κ³Όμ μ΄λ€ μλ£κ΅¬μ‘°λ‘ νμ©ν μ§ μ νκΈ°λ§ νλ©΄ μ½κ² ν..
Spring/Spring & Spring Boot
Spring Securityλ₯Ό ꡬννλ€λ³΄λ©΄ filterμ interceptorλ₯Ό μ¬μ©νλ κ²μ λ³Ό μ μλ€. νν°μ μΈν°μ
ν°μ λν κ°λ
μ μ΄ν΄νλ©΄ Spring Security κ³Όμ μ νμ
νκΈ° μ¬μΈ κ²μ΄κΈ°μ κΈ°λ‘νλ€! β¨ μ©λ - 곡ν΅κ΄μ¬μ¬ν (Cross-cutting concern) π μΉ μλΉμ€μμ λ‘κ·ΈμΈμ ν΄μΌ λ€μν κΈ°λ₯μ μ΄μ©ν μ μμΌλ©° λ‘κ·ΈμΈ μ¬λΆμ λ°λΌ μ κ·Όν μ μλ νμ΄μ§κ° λ€λ₯΄λ€. κ·Έλ λ€λ©΄ λ‘κ·ΈμΈμ΄ νμν λͺ¨λ 컨νΈλ‘€λ¬ λ‘μ§μ λ‘κ·ΈμΈκ³Ό κ΄λ ¨λ μ½λλ₯Ό μμ±ν΄μΌν ν
λ°... μ΄λ κ² λλ€λ©΄ μ½λκ° μ€λ³΅λ κ²μ΄κ³ 볡μ‘ν΄μ§ κ²μ΄λ€. λ§μ λ‘μ§μμ 곡ν΅μΌλ‘ κ΄μ¬ μλ λΆλΆμ κ³΅ν΅ κ΄μ¬ μ¬νμ΄λΌκ³ νλ©° μ΄λ₯Ό μ€νλ§μ AOPλ‘λ ν΄κ²°ν μ μμ§λ§ μΉμμλ μλΈλ¦Ώ νν°μ μ€νλ§ μΈν°μ
ν°λ‘ μ²λ¦¬ν μ μ..