
IntelliJ μμ°λ import μ 리
μμ°λ importλ¬Έμ μ μ λ‘ μμ΄μ§κ² νκ³ μΆμ λ μ°λ λ°©λ²! μ€μ -> μλν° -> μΌλ° -> μλ κ°μ Έμ€κΈ° -> importλ¬Έ μ¦μ μ΅μ νλ₯Ό 체ν¬νλ€. λ΄κ° λ³΄λ €κ³ μμ± γ γ
μμ°λ importλ¬Έμ μ μ λ‘ μμ΄μ§κ² νκ³ μΆμ λ μ°λ λ°©λ²! μ€μ -> μλν° -> μΌλ° -> μλ κ°μ Έμ€κΈ° -> importλ¬Έ μ¦μ μ΅μ νλ₯Ό 체ν¬νλ€. λ΄κ° λ³΄λ €κ³ μμ± γ γ
π± μ€νλ§ μν리ν°κ° κΈ°λ³Έμ μΌλ‘ μ 곡νλ λ‘κ·ΈμΈ λ‘μ§ formμ ν΅ν΄μ μμ΄λμ λΉλ°λ²νΈλ₯Ό μ λ ₯νλ©΄ μΈμ λ° μΈμ¦ ν ν°μ μ μ₯νλ€. μΆνμλ ν΄λΉ μΈμ¦μ ν΅ν΄μ μμ κ°λ₯νλ€. λ‘κ·ΈμΈ API μ¬κΈ°μ λ§λΆμ¬μ μ€λͺ νλ©΄ loginProcessingUrl : form νκ·Έμ μλ action url , νμ리ν μ°λ©΄ th:action successHandler : μ±κ³΅νμ λ λ΄κ° μΆκ°μ μΌλ‘ μ μ΄ν μ μλ νΈλ€λ¬ failureHandler : μ€ν¨νμ λ λ΄κ° μΆκ°μ μΌλ‘ μ μ΄ν μ μλ νΈλ€λ¬ π successUrlμ΄λ failureUrlμ΄λ λΉμ·νλ€λ μκ°μ ν μλ μκ² μ§λ§ μμ λ κ°λ urlμ€μ λ°μ νμ§ λͺ»νλ€. Controller @GetMapping("/loginPage") public Strin..
κ°μλ€μΌλ©΄μ λ°°μ΄ κ²λ€μ κ°λ¨νκ²λΌλ λ¨κ²¨λ³΄λ €κ³ νλ€! π₯ Spring Security(μ€νλ§ μν리ν°)λ? Spring κΈ°λ°μ μ ν리μΌμ΄μ 보μμ λ΄λΉνλ Spring νμ νλ μμν¬μ΄λ€. springbootμ spring securityλ₯Ό μ¬μ©νκΈ° μν΄μλ μλ μμ‘΄μ±μ μΆκ°ν΄μ€μΌνλ€. implementation 'org.springframework.boot:spring-boot-starter-security' μ€νλ§ μν리ν°μ μμ‘΄μ±μ μΆκ°νλ©΄ μΌμ΄λλ κ²μ? μλ²κ° κ°λλλ©΄ μ€νλ§ μν리ν°μ μ΄κΈ°ν μμ λ° λ³΄μ μ€μ μ΄ μ΄λ£¨μ΄μ§ λ³λμ μ€μ μ΄λ ꡬνμ νμ§ μμλ κΈ°λ³Έμ μΈ μΉ λ³΄μ κΈ°λ₯μ΄ νμ¬ μμ€ν μ μ°λλΌ μλ λͺ¨λ μμ²μ μΈμ¦μ΄ λμ΄μΌ μμμ μ κ·Όμ΄ κ°λ₯ μΈμ¦ λ°©μμ Form λ‘κ·ΈμΈ λ°©μκ³Ό ..
π νΈλμμ μ΄λ? νΈλμμ μ ACID(μμμ±, μΌκ΄μ±, 격리 λ° μ§μμ±) μμ±μ΄ μλ μμ κ·Έλ£Ήμ΄λ€. μ¦, ν΄λΉ μμ±μ κ°μ§λ©° λ°μ΄ν°λ² μ΄μ€μ μνλ₯Ό λ³νμν€κΈ° μν΄μ μννλ μμ μ λ¨μλ₯Ό λ§νλ€. λ³΄ν΅ μλμ μ§μμ΄λ₯Ό ν΅ν΄μ μμ μ΄ μ΄λ£¨μ΄μ§λ©° ACID κ·μΉμ μ§ν€κ² λλ€. SELECT INSERT DELETE UPDATE π‘ νΈλμμ νΉμ§ μμμ± (Atomicity) μμμ±μ νΈλμμ μ΄ λ°μ΄ν°λ² μ΄μ€μ λͺ¨λ λ°μλλκ°, μλλ©΄ μ ν λ°μλμ§ μμμΌ νλ€λ κ²μ΄λ€. μν μ‘κΈμ μλ‘ λ€μ΄λ³΄μ. μν μ‘κΈμ ν κ³μ’μ λ€λ₯Έ κ³μ’μ λν νλμ΄ μμμ±μ μ§ν©μ΄λ€. Aκ³μ’μμ Bκ³μ’λ‘ λμ μ΄μ²΄νλλ° μ€κ°μ μ€λ₯κ° λμ Aκ³μ’μλ λμ΄ λΉ μ Έλκ°μ§λ§ Bκ³μ’μλ λμ΄ λ€μ΄μ€μ§ μμ μκ° μλ€. μ΄λ° λ¬Έμ λ₯Ό λ°©μ§νμ§..
μ½λλ₯Ό μμ±νλ€κ° repository.save()λ₯Ό νμ§ μμλ update μΏΌλ¦¬κ° μ€νλμ΄ DBμ λ°μλλ νμμ λ³΄κ³ Dirty Checkingμ λν΄μ μμ보μλ€ π€ βοΈ Dirty Checkingμ΄λ? Spring JPAμμ λν° μ²΄νΉμ΄λ μμμ± μ»¨ν μ΄λκ° κ΄λ¦¬νλ μν°ν°μ μνλ₯Ό κ°μ§ν΄μ λ³κ²½λ λΆλΆμ΄ μλ€λ©΄ μλμΌλ‘ νΈλμμ μ΄ λλλ μμ μ λ°μ΄ν°λ² μ΄μ€μ λ°μνλ κΈ°λ₯μ΄λ€. dirty : λ³κ²½λ μν°ν° λ°μ΄ν° dirty checking : λ³κ²½λ λΆλΆ κ°μ§ Dirty Checkingμ μΈμ μΌμ΄λ κΉ? μμμ± μ»¨ν μ€νΈμμ κ΄λ¦¬λλ μν°ν° μ€μμ/λΉμμ μνμ μν°ν°λ λν° μ²΄νΉμ λμμ΄ λμ§ μλλ€. Transaction(νΈλμμ )μ΄ μ»€λ°λμμ λ νΈλμμ μ΄ μ»€λ°λκΈ° μ κΉμ§ μμμ± μ»¨ν μ€νΈλ λ³..
κ°μλ₯Ό λ£λ€κ° ν μ΄λΈ μ΄λ¦μ μ νλκ±°μ μμ΄μ λ¨μνμ΄ μ’μμ§ λ³΅μνμ΄ μ’μμ§μ λν΄μ μ°Ύμ보μλ€. π§Ά λ¨μνμΌλ‘ μ§λ κ²½μ° μ½κ² 보μ΄κΈ° λλ¬Έμ μ¬λλ€μ΄ λ°λ₯΄κΈ°κ° λ§€μ° μ½λ€. λ§μ½ 볡μλ‘ μ§λ κ²½μ°μ child-children, octopus-octopiμ²λΌ 볡μνμ κΈ°μ΅νλ κ²μ΄ μ΄λ €μΈ μλ μλ€. κ·Έλμ λ¨μλ‘ μ¬μ©ν κ²½μ°μ μκ° μ μ½μ΄ λλ€ κ°λ°μκ° μ μ ν 볡μνμ λν΄μ κ³ λ―Όνμ§ μμλ λλ€. 볡μνμ μ°λ κ²λ³΄λ€ μ€νκ° μ€μ΄λ€μ΄μ μ 체μ μΈ μ€λ₯λ μ€μ΄λ€ μ μλ€. 𧡠볡μνμΌλ‘ μ§λ κ²½μ° λ³΅μν μ΄λ¦μ΄ μ½λ μ μ₯μ, λ°μ΄ν°λ² μ΄μ€ μν€ν μ², μ ν리μΌμ΄μ κ° μν€ν μ² κ°μ ν΅μΌμ±μ μ 곡νλ€. λ§μ½μ userλΌλ ν μ΄λΈμ΄ μμΌλ©΄ μ΄κ±΄ usersμ κ·Έλ£Ήμ΄ μλ userμ κ·Έλ£Ήμ΄λΌκ³ μ°©κ°ν μλ μκΈ° λ..
Git Flowλ? Gitμ μ¬μ©νμ¬ κ°λ°νλ νκ²½μμ λΈλμΉκ°μ λ¬Έμ μμ΄ λ°°ν¬κΉμ§ μμ μ μΌλ‘ ν μ μλλ‘ λΈλμΉλ₯Ό κ΄λ¦¬νλ μ λ΅μ λ§νλ€. π μ£Όμ λΈλμΉ Main(=Master) : μ€μ μ΄μ νκ²½μ λκ°μλ μ½λλ§ μ‘΄μ¬ Dev : λ©μΈ λΈλμΉλ₯Ό κΈ°λ°μΌλ‘ ν κ² (λ€μ λ°°ν¬μ λκ° λ΄μ©λ€μ λ°λ‘ λ©μΈμ λ¨Έμ§ν μ μκΈ° λλ¬Έμ κ° featureμμ κ°μ Έμ¨ κ²λ€μ λͺ¨μλμ κ²) Feature : μλ‘μ΄ κ°λ°μ ν λ featureλ₯Ό λ°μ κ°λ°νκ³ Devμ merge Release : λ°λΈ λΈλμΉλ₯Ό λ² μ΄μ€λ‘ λ§λ¦. Releaseκ° μμ±λ μ΄νλΆν°λ λμ΄μ Devμμ μμ μνκ³ Releaseμμ μμ νκ² λ¨. Hotfix : μλμΉ μμ μ₯μ μν©μ΄ λ°μνμ λ λ©μΈ λΈλμΉμμ λ°λ‘ μμ±νκ³ μμ νλ ..
βοΈ ICTμΈν΄μμ΄λ?μ λΆμμ μ£Όκ΄νλ κ² κ°μλ° ! κΈ°μ κ³Ό 맀μΉλμ΄ μ€λ¬΄ κ²½νλ μ»κ³ νμ λ μ»μ μ μλ μμ£Ό μ’μ κΈ°νμ΄λ€!4-1μ λ§μΉκ³ λ§νκΈ°κ° λ¨μμλλ° 11νμ μ΄ λ¨μμμλ€γ γ νμ μ μ΅λ 15νμ μ λ°μ μ μλλ° μ°λ¦¬ νκ΅ κ°μ κ²½μ°λ μ₯κΈ°μΈν΄μΌ κ²½μ° μ΅λ 12νμ μΈ κ² κ°λ€! (μ 곡 6νμ + μμ , κ΅μ 6νμ ) λ μ 곡μ¬νμλλ° λ± 6νμ μ΄ λΆμ‘±ν΄μ λ€νμΈ κ² κ°λ€....https://www.ictintern.or.kr/main.do ICT νμ μ°κ³ νλ‘μ νΈ μΈν΄μICT νμ μ°κ³ νλ‘μ νΈ μΈν΄μwww.ictintern.or.kr πΆ μ§μμ΄ 100κ°κ° λλ κΈ°μ μ€μ λ΄κ° μ§μνκ³ μ νλ νμ¬λ κΈ°μ€μ΄ λ± νλμλ€!Springbootλ₯Ό λ€λ£¨λμ§!!!!!μ€νλ§μ 본격μ μΌλ‘(?) 곡λΆν..
𫧠AWSμ Nginxλ₯Ό μ€μΉνμ¬ https μ μ©μ ν΄μ€λ€ 1. nginx μ€μΉ sudo apt-get install -y nginx nginx-common nginx-full 2. μΈμ¦μ λ°κΈ apt-get update -y apt-get install software-properties-common -y 3. certbot μ€μΉ apt-get install certbot -y sudo certbot certonly -d [λλ©μΈ μ£Όμ] --manual --preferred-challenges dns λ§μ½μ λλ©μΈ μ£Όμκ° λκ°λΌλ©΄ λ€μ -d [λλ©μΈμ£Όμ] λ₯Ό μΆκ°ν΄μ£Όλ©΄ λλ€!! μ¬κΈ°μ μ΄μ μ΄λ©μΌμ μμ±νκ³ μ½κ΄ λμκ° λμ€λλ° λ λ€ λμνλ€!!! 4. nginx.conf μ€μ sudo vi /etc..
ποΈ HTTPS μνμ½λ 5μ’ λ₯ 1xx (μ 보, Information) : μμ²μ λ°κ³ , νλ‘μΈμ€λ₯Ό κ³μνλ€. 2xx (μ±κ³΅, Successful) : μμ²μ μ±κ³΅μ μΌλ‘ λ°κ³ , μ μμ μΌλ‘ μ²λ¦¬νλ€. 3xx (리λ€μ΄λ μ , Redirection) : μμ²μ μλ£νκΈ° μν΄ μΆκ° μμ μ‘°μΉκ° νμνλ€. 4xx (ν΄λΌμ΄μΈνΈ μ€λ₯, Client Error) : μμ²μ μλͺ»λ λ¬Έλ² λ±μΌλ‘ μ²λ¦¬ν μ μλ€. 5xx (μλ² μ€λ₯, Server Error) : μλ²κ° μ μ μμ²μ μ²λ¦¬νμ§ λͺ»νλ€. 401 Error VS 403 Error 401 μλ¬μ 403μλ¬λ λͺ¨λ μΈμ¦μ΄ μλμ λ λ°μνλ κ² πΈ 401 Unauthorized Error μ¬μ©μκ° μΈμ¦λμ§ μμμ λ λ°μνλ μλ¬ μ¦, λ‘κ·ΈμΈμ νμ§ μμμ λ, μμ²..