Summary

<aside> πŸ’‘ μš”μ•½

  1. μ‚¬μ΄λ“œ ν”„λ‘œμ νŠΈλŠ” ν˜„μž¬ 2개의 μ–Έμ–΄λ₯Ό μ‚¬μš© ν•©λ‹ˆλ‹€ Kotlin, Python
  2. λͺ¨λ“  μ–Έμ–΄λŠ” 곡식 룰을 λ”°λ¦…λ‹ˆλ‹€ : ex) PEP8, Kotlin Coding Guide
  3. μ½”λ“œ 레벨 λ””ν…ŒμΌμ€ λ°˜λ“œμ‹œ μ§€μΌœμ Έμ•Ό ν•©λ‹ˆλ‹€. </aside>

μ˜ˆμ™Έ

<aside> πŸ’‘ μ˜ˆμ™Έ κ·œμΉ™

  1. 폴더λͺ…은 λͺ¨λ‘ 카멜 μΌ€μ΄μŠ€λ₯Ό μ‚¬μš© ν•©λ‹ˆλ‹€ : ex) myProject, manageServer </aside>

Code Level

<aside> πŸ’‘ Entity, DTO, Vo 처럼 데이터λ₯Ό λ‚˜νƒ€λ‚΄λŠ” 객체 μ—λŠ” λ°˜λ“œμ‹œ 동등성 비ꡐ, λ¬Έμžμ—΄ 좜λ ₯, 해쉬 등을 μž¬μ •μ˜ ν•©λ‹ˆλ‹€.

</aside>

<aside> πŸ’‘ Layerκ°„ 데이터 κ΅ν™˜ μ—λŠ” ex: Controller ↔ Service ↔ Repository λ°˜λ“œμ‹œ DTOλ₯Ό μ •μ˜ν•˜μ—¬ μ‚¬μš©ν•˜λ©° DTOλŠ” μƒμ„±ν•œν›„ λΆˆλ³€μ„ μœ μ§€ ν•©λ‹ˆλ‹€.

data class SomeDTO(
	val data1: String, 
	val data2: Int, 
)
// 데이터 κ΅ν™˜ 객체 생성후 DTO, Vo의 내뢀값은 λΆˆλ³€μ„ μœ μ§€ ν•΄μ•Ό ν•©λ‹ˆλ‹€.

</aside>

<aside> πŸ’‘ 같은 Layer 끼리 데이터 κ΅ν™˜μ‹œ DTOλ₯Ό μ •μ˜ ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 정말 ν•„μš”ν•˜λ‹€λ©΄ Voλ₯Ό μ •μ˜ν•΄μ„œ μ‚¬μš©ν•©λ‹ˆλ‹€.
ex): Service ↔ Service

[**πŸ’š]** fun sum(a:Int, b:Int, c:Int): Int {}
[**πŸ’š]** fun sum(sumVo: SumVo): Int {} -> 데이터 κ²€μ¦μš©μœΌλ‘œ Vo생성후 μ‚¬μš©

</aside>

<aside> πŸ’‘ λ©”μ†Œλ“œ, ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν• λ•ŒλŠ” λ°˜λ“œμ‹œ Named Parameter λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.

@PostMapping(...)
fun updateUser(userData: UserUpdateForm){
	this.service(
		user = userData.user,
		info = userData.information
	)
}

</aside>

<aside> πŸ’‘ μ»¨νŠΈλ‘€λŸ¬μ—μ„œ try-catch문을 μ“°μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

[ Global Exception Handlerμ—μ„œ 처리 ] ****

[**πŸ’š]**  @GetMapping("/api")
			fun getValue(): BaseResponseForm {
			    return BaseResponseForm(
	            statusCode = ErrorCode.SUCCESS,
	            result = "value"
	        )
			}

[**πŸ’₯]**  @GetMapping("/api")
			fun getValue(): BaseResponseForm {
			    return try {
			        BaseResponseForm(
			            statusCode = ErrorCode.SUCCESS,
			            result = "value"
			        )
			    } catch (e: BaseCustomException){
			        BaseResponseForm(
			            statusCode = e.message,
			            result = ErrorCode.EMPTY_RESULT
			        )
			    }
			}

</aside>

<aside> πŸ’‘ 클래슀 및 ν•¨μˆ˜ 헀더 μ—λŠ” λ°˜λ“œμ‹œ 라인으둜 ꡬ별 ν•©λ‹ˆλ‹€.

class SomeClass
	def __init__(
		data: int, 
		info: str
	):
	
[**πŸ’š]  sample: SomeClass = SomeClass(
														data = 1,
														info = "info"
													)**

[**πŸ’₯]  sample: SomeClass = SomeClass( data = 1, info = "info")**

</aside>