dragonlab
close
프로필 배경
프로필 로고

dragonlab

  • 분류 전체보기 (10)
    • 개발 (10)
      • spring (7)
      • kotlin (2)
      • 좋은코드 (0)
      • 아키텍쳐 (0)
      • 트러블슈팅 (1)
  • 홈
  • 태그
  • 방명록

[토비의 스프링] 1장 오브젝트와 의존관계

책에서 소개하는 예제를 통해서 스프링은 왜이렇게 생겼는가 이해해 볼수 있는 챕터 스프링의 철학 ejb 가 커지면서 잃어버렸던 객체지향을 다시 잘 적용해보자 ejb 가 많은 기능을 제공하지만 서비스로직에 컨테이너를 쓰기위한 코드들이 많이 침투됐다함 객체지향을 해야하니까 오브젝트에 많은 관심을 둔다. 오브젝트가 어떻게 생기고 없어지고 사용되는지 오브젝트를 다루는 베스트프랙티스를 프레임워크단에서 제공해버리기 첫번째, 관심사의 분리 왜 해야 하는가? 소프트웨어는 여러가지 요구사항에 의해 항상 변화하고 개발자는 변화를 어느정도 대비하면서 개발을 해야함 관심사를 분리하지 않으면 db 암호를 바꾸려고 모든 dao를 변경해야하는등 수정에 유연하지 못하게 됨 응집도 높고 결합도 낮은 코드를 만들기 위해 노력하자 User..

  • format_list_bulleted 개발/spring
  • · 2024. 1. 23.
  • textsms
Spring form-url-encoded 방식의 파라미터에 배열이 대괄호로 표기될때 NPE 발생 해결법

Spring form-url-encoded 방식의 파라미터에 배열이 대괄호로 표기될때 NPE 발생 해결법

실무중에 클라이언트에서 request를 form-url-encoded 방식으로 보내는데 그중에 배열의 표기가 [ ] 를 사용할때 매핑에러가 났었다 list[]=1&list[]=2 이런식으로 배열을 url 방식으로 표기할때 명확한 표준이 없는 것 같다. list=1&list=2도 가능하다 @RestController class TestController { @PostMapping("/url-encode") fun urlEncode(body: TestBody): String { println(body) return "ok" } @PostMapping("/json") fun json(@RequestBody body: TestBody): String { println(body) return "ok" } } da..

  • format_list_bulleted 개발/트러블슈팅
  • · 2023. 10. 24.
  • textsms

kotlin let 블럭안은 스마트 캐스팅이 가능한 이유

class Test(){ fun hi(){ println("hi") } } var test: Test? = Test() fun ifFunc(){ if(test != null){ println(test!!.hi()) // 가변이기 때문에 스마트캐스팅이 불가능 } } fun letFunc(){ test?.let{it.hi()} } 이렇게 가변 변수이지만 public static final void ifFunc() { if (test != null) { Test var10000 = test; Intrinsics.checkNotNull(var10000); var10000.hi(); Unit var0 = Unit . INSTANCE; System.out.println(var0); } } public static ..

  • format_list_bulleted 개발/kotlin
  • · 2023. 8. 10.
  • textsms

kotlin 프로퍼티의 getter는 스마트캐스트가 안되고 final 프로퍼티는 되는 이유

이펙티브 코틀린 아이템1 에서 "값을 사용하는 시점에 따라서 다른 결과가 나올 수 있기 때문입니다" 와 함께 보여준 예제가 잘 와닫지 않아서 예제를 만들고 자바로 변환해봄 fun nameOrNullByRandom(): String? { return listOf(null, "huni").random() } val nameGetter: String? get() = nameOrNullByRandom() val nameFinalProperty: String? = nameOrNullByRandom() fun main() { if(nameGetter != null){ println(nameGetter!!.length) // 캐스팅 안됌 } if(nameFinalProperty != null){ println(nam..

  • format_list_bulleted 개발/kotlin
  • · 2023. 8. 10.
  • textsms
  • navigate_before
  • 1
  • 2
  • navigate_next
공지사항
전체 카테고리
  • 분류 전체보기 (10)
    • 개발 (10)
      • spring (7)
      • kotlin (2)
      • 좋은코드 (0)
      • 아키텍쳐 (0)
      • 트러블슈팅 (1)
최근 글
인기 글
최근 댓글
태그
  • #책정리
  • #트러블슈팅
  • #토비의스프링
  • #Spring
  • #책 정리
  • #Spring MVC
  • #이펙티브코틀린
  • #이펙티브 코틀린
  • #코틀린
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바