목록전체 글 (195)
Lewis's Tech Keep
복잡성이란?스티븐 호킹은 우리가 복잡성의 시대에 살고 있다고 선언할 정도로 복잡성은 널리 퍼져있다.간단히 말해, 복잡하다는 것은 이해하기 어렵다는 것이다. 소트프웨어 설계에서의 복잡성복잡한 코드베이스에서 작업할 때 복잡성의 모든 효과가 나타난다.코드로 인한 중요한 정보가 모호해질 때 우리는 코드베이스가 복잡하다고 느낀다. 누군가에게 복잡해 보이는 것이 다른 사람에게는 사소한 일 일 수 있다.이와 같이 주관적이기 때문에 소프트웨어 설계 분야에서 복잡성을 논의하고 관리하려면 더 정교한 모델이 필요하다. 이를 위해 커네빈 프레임워크를 사용한다. 커네빈 프레임워크란?우리가 의사결정을 내리는 상황을 다섯가지로 분류한다.- 명확- 복합- 복잡- 혼돈- 무질서로 분류하는 방식 명확시스템에 영향을 미치는 효과는 분명하..
『소프트웨어 설계의 결합 균형』을 읽고 이해한 개념과 개인적인 생각을 정리한 학습 기록입니다.결합이라는 용어소프트웨어 설계에서 결합(Coupling)은 부정적인 의미로 사용되는 경우가 많다. 결합도가 높다는 말을 들으면 자연스럽게 좋지 않은 설계를 떠올리게 된다. 하지만 결합이 존재한다는 사실만으로 설계의 품질을 판단할 수 있을까? 중요한 것은 결합 자체가 아니라, 구성요소들이 왜 연결되어 있으며 그 연결이 어떤 영향을 미치는지 이해하는 것이라고 생각한다. 나의 생각결합이 강해질수록 시스템의 복잡성이 증가할 가능성은 크다. 그렇다고 강한 결합이 반드시 형편없는 설계를 의미하지는 않는다.비즈니스 요구사항이나 도메인의 특성상 함께 움직여야 하는 구성요소도 존재하기 때문이다.따라서 모든 결합을 제거하려고 하기..
# 잠시 멈췄던 나글 쓰는 것에 점점 의미를 잃고 그저 내가 무엇인가를 했다는 것을 남기기 위해 글을 적고 있는 나를 발견했다.AI가 점점 활성화되던 시대에 '글을 내가 직접 적는 것이 의미가 있을까'라고 생각했다.변명이지만, 회사의 일이 바빠지면서 사내 커뮤니케이션을 위해 작성하는 문서의 수가 기하급수적으로 늘어났고 사내 문서를 작성하는 것만으로도 나는 지쳤다. # 다시 시작하는 나AI에게 여러 글을 물어보고 피드백을 받아도 결국 AI가 모든 것을 작성하는 형태로는 발전하지 않는 나를 발견했다.서툴고 깔끔하지 않더라도 하나씩 적어가면서 스스로 발전하고 느리지만 한 발자국씩 나아가는 나를 만들고 싶었다.더 이상 스스로에게 변명하고 싶지 않았고 진심을 다해 글을 적어나가고 싶었다. AI에게 피드백은 받지만..
소감강의를 한번 다 듣고 나니 kotlin 스타일로 코딩하는 것에 대한 흥미가 솟아났지만 여러 해결해야 할 궁금점들이 생겼다.미리 정리해 두어야겠다. 궁금한 점- public 이 기본이라 다른 클래스에서 접근이 너무 쉬운 것 같다. 캡슐화에 대한 룰은 어떻게 유지하는 게 좋을까?- 동시성 프로그래밍을 할 때 람다는 어떤 장단점이 있을까? 어떤 점을 주의해야 할까?- jpa에서 엔티티를 가져올 때의 방식과 java base일 때, kotlin base일 때의 차이와 주의할 점을 잘 알아두어야 할 것 같다.
시작실제로는 다른 코드로 많이 쓸 것 같은데 가독성과 같은 측면에서 사용하는 경우가 많다고 하니 알아두자. 배우고 있는 것https://www.inflearn.com/course/java-to-kotlin 자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide) 강의 | 최태현 - 인프런최태현 | 이 강의를 통해 Kotlin 언어의 특성과 배경, 문법과 동작 원리, 사용 용례, Java와 Kotlin을 함께 사용할 때에 주의할 점 등을 배울 수 있습니다., 요즘 대세인 코틀린을 공부하고 싶다면?⭐ Jwww.inflearn.com 1. scope functionlet, apply, also, run, with와 같은 것들을 사용할 수 있다. let주요 목적: 특정 객체의 결과..
시작자주 쓸 것 같다고 생각은 하지 않지만 코드를 정리하거나 필요한 코드를 정리할 수 있는 좋은 방법들이다. 배우고 있는 것https://www.inflearn.com/course/java-to-kotlin 자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide) 강의 | 최태현 - 인프런최태현 | 이 강의를 통해 Kotlin 언어의 특성과 배경, 문법과 동작 원리, 사용 용례, Java와 Kotlin을 함께 사용할 때에 주의할 점 등을 배울 수 있습니다., 요즘 대세인 코틀린을 공부하고 싶다면?⭐ Jwww.inflearn.com 1. typealias어떤 타입이 너무 길다면 아래와 같이 축약이 가능하다.// Type Aliastypealias fruitFilterType ..
시작람다 형식이 달라서 약간 어색하지만 유용하게 사용할 수 있기를! 배우고 있는 것https://www.inflearn.com/course/java-to-kotlin 자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide) 강의 | 최태현 - 인프런최태현 | 이 강의를 통해 Kotlin 언어의 특성과 배경, 문법과 동작 원리, 사용 용례, Java와 Kotlin을 함께 사용할 때에 주의할 점 등을 배울 수 있습니다., 요즘 대세인 코틀린을 공부하고 싶다면?⭐ Jwww.inflearn.com 1. 람다람다 그 자체를 변수로 사용하거나, 파라미터로 넘길 수 있다.// 함수 그 자체로 변수에 할당할 수도, 파라미터로 사용 될 수도 있다.fun main() { val frui..
시작컬렉션은 데이터 저장 구조나 변경 구조에서 자주 쓸 테니 잘 정리해두자. 배우고 있는 것https://www.inflearn.com/course/java-to-kotlin 자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide) 강의 | 최태현 - 인프런최태현 | 이 강의를 통해 Kotlin 언어의 특성과 배경, 문법과 동작 원리, 사용 용례, Java와 Kotlin을 함께 사용할 때에 주의할 점 등을 배울 수 있습니다., 요즘 대세인 코틀린을 공부하고 싶다면?⭐ Jwww.inflearn.com 1. 배열 & 컬렉션배열 배열은 arrayOf로 생성 가능하다.fun main() { /** * array * */ val array = arrayOf(10..
