νμ μ ν Enum ν΄λμ€ νμμ μ ν(Admin, User)λ₯Ό λνλ΄λ μμκ° νμ ν΄λμ€ package com.example.yunishop.domain.member; import com.example.yunishop.constant.Role; import lombok.Getter; import lombok.NoArgsConstructor; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; @Entity @Getter @NoArgsConstructor public class Member { @Id..
μ 체 κΈ
JPA (Java Persistence API) JAVA κ°μ²΄μ κ΄κ³ν DB μ¬μ΄λ₯Ό 맀ννλ ORM κΈ°μ νμ€ μΈν°νμ΄μ€ (= κΈ°μ νμ€) μ΄λ―λ‘ μ€μ ꡬν체λ Hibernate λ± μ₯μ νΉμ λ°μ΄ν°λ² μ΄μ€μ μ’
μλμ§ μμ λ°μ΄ν°λ² μ΄μ€λ§λ€ μΏΌλ¦¬λ¬Έμ΄ μ‘°κΈμ© λ€λ₯΄κΈ° λλ¬Έμ λ°μ΄ν°λ² μ΄μ€ λ³κ²½μ μ΄λ €μμ΄ λ§μ§λ§, JPAλ μΆμνν λ°μ΄ν° μ κ·Ό κ³μΈ΅μ μ 곡νλ―λ‘ μ€μ νμΌμ μ¬μ© λ°μ΄ν°λ² μ΄μ€λ§ μ§μ νλ©΄ λ¨ κ°μ²΄ μ§ν₯μ νλ‘κ·Έλλ° λ° μμ°μ± ν₯μ κ°λ°μκ° μ§μ SQLμ μμ±νλ λ°μ΄ν°λ² μ΄μ€ μ€κ³ μ€μ¬μμ JAVA κ°μ²΄μ μ§μ€νλλ‘ μ§μ ν
μ΄λΈ μ»¬λΌ μμ μ 맀νλ ν΄λμ€λ§μ λ³κ²½νλ©΄ μ μ©λ¨ λ¨μ 볡μ‘ν 쿼리 μ²λ¦¬ λΆκ° μλμΌλ‘ μμ±λλ μΏΌλ¦¬λ‘ μΈν΄ κ°λ°μκ° μλνμ§ μμ μ±λ₯ μ ν λ°©λν JPA κΈ°μ νμ΅μ νμν ..
π₯ λ―Έμ
- μ«μ μΌκ΅¬ κ²μ π κΈ°λ₯ μꡬ μ¬ν κΈ°λ³Έμ μΌλ‘ 1λΆν° 9κΉμ§ μλ‘ λ€λ₯Έ μλ‘ μ΄λ£¨μ΄μ§ 3μ리μ μλ₯Ό λ§μΆλ κ²μμ΄λ€. κ°μ μκ° κ°μ μ리μ μμΌλ©΄ μ€νΈλΌμ΄ν¬, λ€λ₯Έ μ리μ μμΌλ©΄ λ³Ό, κ°μ μκ° μ ν μμΌλ©΄ λ«μ±μ΄λ ννΈλ₯Ό μ»κ³ , κ·Έ ννΈλ₯Ό μ΄μ©ν΄μ λ¨Όμ μλλ°©(μ»΄ν¨ν°)μ μλ₯Ό λ§μΆλ©΄ μΉλ¦¬νλ€. μ) μλλ°©(μ»΄ν¨ν°)μ μκ° 425μΌ λ 123μ μ μν κ²½μ° : 1μ€νΈλΌμ΄ν¬ 456μ μ μν κ²½μ° : 1λ³Ό 1μ€νΈλΌμ΄ν¬ 789λ₯Ό μ μν κ²½μ° : λ«μ± μ μ«μ μΌκ΅¬ κ²μμμ μλλ°©μ μν μ μ»΄ν¨ν°κ° νλ€. μ»΄ν¨ν°λ 1μμ 9κΉμ§ μλ‘ λ€λ₯Έ μμμ μ 3κ°λ₯Ό μ ννλ€. κ²μ νλ μ΄μ΄λ μ»΄ν¨ν°κ° μκ°νκ³ μλ μλ‘ λ€λ₯Έ 3κ°μ μ«μλ₯Ό μ
λ ₯νκ³ , μ»΄ν¨ν°λ μ
λ ₯ν μ«μμ λν κ²°κ³Όλ₯Ό μΆλ ₯νλ€. μ΄ κ°μ ..
ν리μ½μ€ 1μ£Όμ°¨ λ―Έμ
π₯ λ―Έμ
- μ¨λ³΄λ© κΈ°λ₯ μꡬ μ¬ν μ΄ 7κ°μ κΈ°λ₯ μꡬ μ¬νμ λͺ¨λ ν΄κ²° π λ¬Έμ 1 - ν¬λΉμ ν¬λ‘±μ νμ΄μ§ λ²νΈ κ²μ μ±
νμ΄μ§λ [1, 400] κ° νμ΄μ§μ μ리 μ«μλ₯Ό λͺ¨λ λνκ±°λ, λͺ¨λ κ³±ν΄μ μ΅λ κ° κ΅¬νκΈ° π λ¬Έμ 2 - κ΄΄μ§ κ°λ°μ λΈλΌμ΄μ μνΈ ν΄λ
μ€λ³΅ λ¬Έμλ₯Ό μ΄μ©ν μνΈ ν΄λ
μ°μλ μ€λ³΅ λ¬Έμλ€μ΄ μμ λ κΉμ§ μμ π λ¬Έμ 3 - λ°°λ¬μ΄κ° μ’μνλ 369κ²μ 1λΆν° numberκΉμ§ μλΌμ μ³μΌνλ νμ ꡬνκΈ° π λ¬Έμ 4 - μ²κ°κ΅¬λ¦¬μ μλ§ λ§μ λ²ν A ~ Z λ₯Ό λ°λλ‘ νν ! μνλ²³ μΈ λ¬Έμλ κ·Έλλ‘ π λ¬Έμ 5 - κ³μ’μ μλ λ μΆκΈ ν° κΈμ‘μ νν μμ£Όλ‘ λ³ν π λ¬Έμ 6 - ν¬λ£¨λ€μ λλ€μ μ ν λλ€μ μ€ μ°μμ μΌλ‘ κ°μ λ¬Έμκ° μλ€λ©΄ μ€λ³΅ π ..
λ무 λ©μ²νκ² λΉν©ν΄μ κΈ°λ³Έμ μΈ κ±°λ₯Ό μ λλ‘ λ΅λ³λͺ»νλ€γ
πγ
OOP (Object Oriented Programming) μ΄λ ? κ°μ²΄ μ§ν₯ νλ‘κ·Έλ¨ κ°μ²΄μ κ΄μ μμ νλ‘κ·Έλλ°νλ κ²μ μλ―Έ cμΈμ΄μ κ²½μ°, μ μ°¨ μ§ν₯ νλ‘κ·Έλλ°μ΄λΌ νλλ°, μ΄λ νλ‘μΈμ€κ° ν¨μ λ¨μλ‘ μμλλ‘ μ§νλλ κ²μ μλ―Έ λ°λ©΄, OOPλ κ°μ²΄λ€μ μ κΈ°μ μΈ κ΄κ³λ₯Ό ν΅ν΄μ νλ‘μΈμ€κ° μ§νλ¨ νΉμ§ μΊ‘μν νλμ κ°μ²΄μ λν΄ κ·Έ κ°μ²΄κ° νΉμ ν λͺ©μ μ μν΄ νμν λ³μλ λ©μλλ₯Ό νλλ‘ λ¬Άλ κ²μ μλ―Έ μ 보 μλμ μν΄ μΆμν λͺ©μ κ³Ό κ΄λ ¨μλ λΆλΆμ μ κ±°νμ¬ νμν λΆλΆλ§μ νννκΈ° μν κ°λ
κ°μ²΄λ€μ 곡ν΅λ νΉμ§μ νμ
ν΄ μ μν΄ λμ μ€κ³ κΈ°λ² λ€νμ± μμμ ν΅ν΄ κΈ°λ₯μ νμ₯νκ±°λ λ³κ²½νλ κ²μ κ°λ₯νκ² ν΄μ€ λ€νμ±μ ννκ° κ°μλ° λ€..
μΉ μλ² (Web Server) HTTP κΈ°λ°μΌλ‘ λμ μ μ 리μμ€ μ 곡, κΈ°ν λΆκ° κΈ°λ₯ μ μ (νμΌ) HTML, CSS, JS, μ΄λ―Έμ§, μμ μ) NGINX, APACHE μΉ μ ν리μΌμ΄μ
μλ² (WAS - Web Application Server) HTTP κΈ°λ°μΌλ‘ λμ μΉ μλ² κΈ°λ₯ ν¬ν¨ + (μ μ 리μμ€ μ 곡 κ°λ₯) νλ‘κ·Έλ¨ μ½λλ₯Ό μ€νν΄μ μ ν리μΌμ΄μ
λ‘μ§ μν λμ HTML, HTTP API(JSON) μλΈλ¦Ώ, JSP, μ€νλ§ MVC ex ) Tomcat Jetty, Undertow μ°¨μ΄μ μΉ μλ²λ μ μ 리μμ€(νμΌ), WASλ μ ν리μΌμ΄μ
λ‘μ§ μ€μ λ‘ , λμ μ©μ΄λ, κ²½κ³λ λͺ¨νΈ μΉ μλ²λ νλ‘κ·Έλ¨μ μ€ννλ κΈ°λ₯μ ν¬ν¨νκΈ°λ ν¨ μΉ μ ν리μΌμ΄μ
μλ²λ μΉ μλ²μ κΈ°λ₯μ μ κ³΅ν¨ μλ°λ μλΈ..
https://www.acmicpc.net/problem/12100 12100λ²: 2048 (Easy) 첫째 μ€μ 보λμ ν¬κΈ° N (1 ≤ N ≤ 20)μ΄ μ£Όμ΄μ§λ€. λμ§Έ μ€λΆν° Nκ°μ μ€μλ κ²μνμ μ΄κΈ° μνκ° μ£Όμ΄μ§λ€. 0μ λΉ μΉΈμ λνλ΄λ©°, μ΄μΈμ κ°μ λͺ¨λ λΈλ‘μ λνλΈλ€. λΈλ‘μ μ°μ¬ μλ μλ 2 www.acmicpc.net λ¬Έμ 2048 κ²μμ 4×4 ν¬κΈ°μ 보λμμ νΌμ μ¦κΈ°λ μ¬λ―Έμλ κ²μμ΄λ€. μ΄ λ§ν¬λ₯Ό λλ₯΄λ©΄ κ²μμ ν΄λ³Ό μ μλ€. μ΄ κ²μμμ ν λ²μ μ΄λμ 보λ μμ μλ μ 체 λΈλ‘μ μνμ’μ° λ€ λ°©ν₯ μ€ νλλ‘ μ΄λμν€λ κ²μ΄λ€. μ΄λ, κ°μ κ°μ κ°λ λ λΈλ‘μ΄ μΆ©λνλ©΄ λ λΈλ‘μ νλλ‘ ν©μ³μ§κ² λλ€. ν λ²μ μ΄λμμ μ΄λ―Έ ν©μ³μ§ λΈλ‘μ λ λ€λ₯Έ λΈλ‘κ³Ό λ€μ ν©μ³μ§ μ ..
int[] copy = arr λ λ°°μ΄ κ°μ 볡μ¬νλ κ²μ΄ μλλΌ, μ£Όμκ°μ 볡μ¬νλ κ²μ΄κΈ° λλ¬Έμ λ μ€ νλλ₯Ό λ³κ²½νκ² λλ©΄ → λ€λ₯Έ κ° λν λ³κ²½ λ¨ μ΄λ κ² μ£Όμ κ°λ§ 볡μ¬νλ κ²μ Shallow Clone κ°μ 볡μ¬νμ¬ λ€λ₯Έ κ°μ²΄λ₯Ό λ§λλ κ²μ Deep Clone μ¬κΈ°μ β
System.arraycopy() → Shallow Clone clone() → Deep Clone