πŸ“œ λͺ©μ°¨

μ•Œκ³ λ¦¬μ¦˜

μœ ν΄λ¦¬λ“œ ν˜Έμ œλ²•

μ΅œλŒ€κ³΅μ•½μˆ˜μ™€ μ΅œμ†Œκ³΅λ°°μˆ˜

NestJS

TypeORM

μ˜ˆμ™Έμ²˜λ¦¬(Try-Catch-Finally / Throw)

μ•Œκ³ λ¦¬μ¦˜

πŸ“Œ μœ ν΄λ¦¬λ“œ ν˜Έμ œλ²•

// μ΅œλŒ€κ³΅μ•½μˆ˜λ₯Ό ꡬ할 수 μžˆλŠ” 곡식,μ΅œλŒ€κ³΅μ•½μˆ˜λ₯Ό κ΅¬ν•˜κΈ° μœ„ν•œ μ•Œκ³ λ¦¬μ¦˜ (=곡식)

// aλ₯Ό b둜 λ‚˜λˆ΄μ„ λ•Œ(aκ°€ b보닀 클 경우) === ν°μˆ˜μ—μ„œ μž‘μ€ 수λ₯Ό λ‚˜λˆ΄μ„ λ•Œ
// λ‚˜λ¨Έμ§€ 값이 0이 되면, μž‘μ€ 수(b)κ°€ μ΅œλŒ€κ³΅μ•½μˆ˜
// λ‚˜λ¨Έμ§€ 값이 0이 μ•„λ‹ˆλΌλ©΄, μž‘μ€ 수(b)κ°€ 큰 수(a)κ°€ λœλ‹€.
// λ‚˜λ¨Έμ§€ 값은 μž‘μ€ 수(b)κ°€ λœλ‹€.
// λ‚˜λ¨Έμ§€ 값이 λ‚˜μ˜¬ λ•ŒκΉŒμ§€ μœ„μ˜ 과정을 반볡

function solution( n,m ){
    let a = Math.max( n,m )           // 큰 수
    let b = Math.min( n,m )           // μž‘μ€ 수
    let r = 0                       // aλ₯Ό b둜 λ‚˜λˆ΄μ„ λ•Œ λ‚˜λ¨Έμ§€ 값을 μ €μž₯

    while ( a % b  > 0 ) {
        r = a % b
        a = b           // 큰 μˆ˜μ— μž‘μ€ 수λ₯Ό ν• λ‹Ή
        b = r           // μž‘μ€ μˆ˜μ— λ‚˜λ¨Έμ§€ 값을 ν• λ‹Ή
    }

    // μ΅œμ†Œκ³΅λ°°μˆ˜λŠ” 두 수λ₯Ό κ³±ν•œ 값에 μ΅œλŒ€κ³΅μ•½μˆ˜λ₯Ό λ‚˜λˆˆ κ°’
    return [ b, ( n * m ) / b]

}

function gcd (a,b){
	const reminder = a % b // 1. 큰 수λ₯Ό μž‘μ€ 수둜 λ‚˜λˆ”
	if (reminder === 0 ) return b // 2. λ‚˜λˆˆ λ’€ λ‚˜λ¨Έμ§€κ°€ 0이면 μž‘μ€ 수(b)κ°€ μ΅œλŒ€κ³΅μ•½μˆ˜
	return gcd(b, reminder) // 3. λ‚˜λ¨Έμ§€κ°€ 0이 μ•„λ‹ˆλ©΄ μž‘μ€ 수λ₯Ό λ‹€μ‹œ λ‚˜λ¨Έμ§€λ‘œ λ‚˜λˆ”
													// 4. λ‚˜λ¨Έμ§€κ°€ 0이 될 λ•ŒκΉŒμ§€ 반볡^^
}

πŸ’­ μ΅œλŒ€κ³΅μ•½μˆ˜μ™€ μ΅œμ†Œκ³΅λ°°μˆ˜

// 두 수λ₯Ό μž…λ ₯λ°›μ•„ 두 수의 μ΅œλŒ€κ³΅μ•½μˆ˜μ™€ μ΅œμ†Œκ³΅λ°°μˆ˜λ₯Ό λ°˜ν™˜ν•˜λŠ” ν•¨μˆ˜, solution을 μ™„μ„±ν•΄ λ³΄μ„Έμš”. 
// λ°°μ—΄μ˜ 맨 μ•žμ— μ΅œλŒ€κ³΅μ•½μˆ˜, κ·Έλ‹€μŒ μ΅œμ†Œκ³΅λ°°μˆ˜λ₯Ό λ„£μ–΄ λ°˜ν™˜ν•˜λ©΄ λ©λ‹ˆλ‹€. 
// μ΅œλŒ€κ³΅μ•½μˆ˜: 두 수의 κ³΅ν†΅λœ μ•½μˆ˜ μ€‘μ—μ„œ 제일 큰 수 
// μ΅œμ†Œκ³΅λ°°μˆ˜: 두 수의 κ³΅ν†΅λœ 배수 μ€‘μ—μ„œ 제일 μž‘μ€ 수 

// 예λ₯Ό λ“€μ–΄ 두 수 3, 12의 μ΅œλŒ€κ³΅μ•½μˆ˜λŠ” 3, μ΅œμ†Œκ³΅λ°°μˆ˜λŠ” 12μ΄λ―€λ‘œ 
// solution(3, 12)λŠ” [3, 12]λ₯Ό λ°˜ν™˜ν•΄μ•Ό ν•©λ‹ˆλ‹€.

// for문 이용
function solution(n,m){
   

    let max = 0
    let min = 0
    let bigNum = Math.max(n,m)
    let smallNum = Math.min(n,m)

    // μ΅œλŒ€κ³΅μ•½μˆ˜ κ΅¬ν•˜κΈ°
    // 반볡문 μ‚¬μš© 
    // 숫자 1λΆ€ν„° n,m μ—μ„œ 제일 큰 값을 κ°€μ Έμ™€μ„œ κ°€μ Έμ˜¨ μˆ«μžλ“€μ„ λ‘κ°œλ‘œ λ‚˜λˆ΄μ„λ•Œ λ‚˜λˆ μ§€λŠ”μ§€ 확인

    for( let i = 1 ; i <= bigNum ; i++ ){
        if (n % i === 0 && m % i === 0){
            max = i
        }
    }
    // μ΅œμ†Œκ³΅λ°°μˆ˜ κ΅¬ν•˜κΈ°
    for ( let i = bigNum ; i<= n * m ; i+=bigNum  ){
        if ( i % smallNum ===0 ){
            min = i                 // 졜초둜 λ½‘μ•„μ˜€λŠ” κ°’λ§Œ λ½‘μ•„μ˜€κ³  break
            break
        }
    }   
    return [max, min]
}


NestJS

1. TypeORM

<aside> πŸ”₯ 볡슡! service (핡심적인 λͺ¨λ“ˆ, μ„œλΉ„μŠ€ λΆ€λΆ„) β†’ resolver (container, api λͺ¨μž„, serviceμ—μ„œ κ°€μ Έμ˜΄) β†’ module μ—μ„œ 닀같이 μž‘λ™! β†’ app.module.ts β†’ main.ts

</aside>

πŸ’»Β  μ‹€μŠ΅ - μΉ΄ν…Œκ³ λ¦¬ API λ§Œλ“€κΈ°


  1. module, resolver, class 파일 μƒμ„±ν•˜κΈ°
  2. export둜 class μƒμ„±ν•˜κ³  λ°μ½”λ ˆμ΄ν„° 달기 @Module(), @Resolver(), @Injectable()(service)
  3. λͺ¨λ“ˆμ— import, providers 기재