μ€νλ§ μ
λ¬Έ - μ½λλ‘ λ°°μ°λ μ€νλ§ λΆνΈ, μΉ MVC, DB μ κ·Ό κΈ°μ
μ΄μ κ°μλ€μ λ€λ₯Έ μ€ν°λ μ€λΉνλ©΄μ λ€μλ€.
23κ°. μ€νλ§ JdbcTemplate
μ€νλ§ JdbcTemplateκ³Ό MyBatis κ°μ λΌμ΄λΈλ¬λ¦¬λ JDBC APIμμ λ³Έ λ°λ³΅ μ½λλ₯Ό λλΆλΆ μ κ±°ν΄μ€λ€.
24κ°. JPA
JPA: Java Persistence API
ORM νλ μμν¬κ° SQLμ μμ±νμ¬ λ°μ΄ν°λ² μ΄μ€μ κ°μ²΄λ₯Ό μ μ₯ν΄μ€λ€.
β κ°λ° μμ°μ±μ΄ μ¦κ°νλ€.
μκΎΈ μ€λ₯κ° λ¬μλλ°, μκ³ λ³΄λ build.gradleμ λ€μ΄κ° implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
λ₯Ό, 'data'λ₯Ό λΉΌκ³ μ
λ ₯ν΄μ κ·Έλ° κ±°μλ€...^^ νμΈμ μ νμ...
25κ°. μ€νλ§ λ°μ΄ν° JPA
μ€νλ§ λ°μ΄ν° JPAλ₯Ό μ¬μ©νλ©΄ μΈν°νμ΄μ€λ₯Ό ν΅ν΄ κΈ°λ³Έμ μΈ CRUDμ μ¬μ©μ΄ κ°λ₯νλ€. (λ©μλ μ΄λ¦λ§μΌλ‘ μ‘°νκ° κ°λ₯)
26κ°. AOPκ° νμν μν©
AOP(Aspect Oriented Programming): κ΄μ /μΈ‘λ©΄/μμ μ§ν₯μ μΈ νλ‘κ·Έλλ°
ν΅μ¬μ μΈ κ΄μ , λΆκ°μ μΈ κ΄μ μΌλ‘ λλμ΄μ λ³΄κ³ κ·Έ κ΄μ μ κΈ°μ€μΌλ‘ κ°κ° λͺ¨λννκ² λ€λ κ²μ΄λ€.
β κ³΅ν΅ κ΄μ¬ μ¬νμ μ μ©ν λ νμ (μ: μκ° μΈ‘μ λ±)
μ°Έκ³ : https://blog.naver.com/wndgndi/222765120085
27κ°. AOP μ μ©
@Around("execution(* hello.hellospring..*(..))")
28κ°. λ€μμΌλ‘
23:54 νμ¬ μΈμ€ κ΅°κ³Ό κ°μ΄ λ¬Έμ νΈλ μ€...^^
+) 22. 06. 15. μ΄μ μΈμ€μ΄λ κ°μ΄ νμ΄λ³΄κ³ μ€λ λ νΌμ λ€μ μλ‘ νμ΄λ΄ β¬οΈ
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s;
s = sc.next();
int answer = 0;
//쑰건1: sλ 1μ΄μ, 5μ΄νμ κΈΈμ΄
if(1<=s.length() && s.length()<=5) {
//쑰건2: sμλ μ«μμ λΆνΈλ§ μ¬ μ μμ
if(Pattern.matches("^[0-9+-]*$", s)) {
//쑰건3: sλ '0'μΌλ‘ μμνμ§ μμ
if(s.charAt(0) != '0') {
answer = Integer.parseInt(s);
System.out.println(answer);
}
}
}
}
+) 22. 06. 16. λ νΌμ λ€μ μλ‘ νμ΄λ΄ β¬οΈ
μ½λκ° κ±°μ§? κ°μ§λ§?? μΌλ¨μ?? λλ λ°μ λ§μ‘±. μΆν μ’ λ κ°κ²°νκ² κ³ μ³ λ΄μΌκ² λ€.
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int[] numbers = new int[a]; //κ°μ μ
λ ₯λ°μ λ°°μ΄
ArrayList<Integer> arr = new ArrayList<Integer>(Arrays.asList(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)); //λΉκ΅ν λ°°μ΄
int sum = 0;
// 쑰건1: 1 β€ numbersμ κΈΈμ΄ β€ 9
if(1 <= numbers.length && numbers.length <= 9) {
for (int i = 0; i < numbers.length; i++) {
numbers[i] += sc.nextInt();
// 쑰건2: 0 β€ numbersμ λͺ¨λ μμ β€ 9
if(!(0 <= numbers[i] && numbers[i] <= 9)) {
System.out.println("1~9 μ¬μ΄μ μ«μλ₯Ό μ
λ ₯ν΄μ£ΌμΈμ.");
numbers[i] -= numbers[i];
i--;
continue;
}
// 쑰건3: μ€λ³΅ 체ν¬
for(int j = 0; j < i; j++) {
if(numbers[i] == numbers[j]) {
System.out.println("μ€λ³΅λλ μ«μμ
λλ€.");
numbers[i] -= numbers[i];
i--;
continue;
}
}
}
System.out.println("νμ¬ λ°°μ΄μ λ€μ΄κ° κ°: " + Arrays.toString(numbers));
System.out.println();
//numbers λ°°μ΄μ ArrayListλ‘ λ³ν(κ° μΆκ°)
List<Integer> intList = new ArrayList<>();
for (int element : numbers) {
intList.add(element);
}
List<Integer> target2 = new ArrayList<Integer>(arr);
target2.removeAll(intList); // arr(0~9κΉμ§μ λ°°μ΄) - intList(numbersμ λ°μ κ°λ€) -> κ²ΉμΉλ μ μ κ±°
System.out.println("λ°°μ΄μ μλ κ°: " + target2.toString());
sum = target2.stream().mapToInt(Integer::intValue).sum(); // numbersμ μλ κ° ν©κ³
System.out.println("ν©κ³: " + sum);
}
else {
System.out.printf("1λΆν° 9κΉμ§μ μ«μλ₯Ό μ
λ ₯ν΄μ£ΌμΈμ.");
}
}
OSI(Open System Interconnection): λͺ¨λ λ€νΈμν¬ ν΅μ μμ μκΈ°λ μ¬λ¬κ°μ§ μΆ©λ λ¬Έμ λ₯Ό μννκΈ° μνμ¬ κ΅μ νμ€κΈ°κ΅¬(ISO)μμ νμ€νλ λ€νΈμν¬ κ΅¬μ‘°λ₯Ό μ μν κΈ°λ³Έ λͺ¨λΈ.
β μΌλΆ λͺ¨λμ λ³κ²½μ΄ μλ κ²½μ°μ μ 체 λͺ¨λμ λ³κ²½νλ λμ ν΄λΉ λͺ¨λλ§μ λ°κΎΈλ©΄ λλλ‘ ν¨.
βοΈ 1~3κ³μΈ΅: λ€νΈμν¬ μ§μκ³μΈ΅
βοΈ 4κ³μΈ΅: μ μ‘μΈ΅
βοΈ 5~7κ³μΈ΅: μ¬μ©μ μ§μ κ³μΈ΅
μ½ν μ°μ΅ λ¬Έμ λ λͺ» νΈλλ°... μΌλ¨ κ³΅λΆ μ’ λ νκ³ νμ΄λ³΄μ...^^