분류 전체보기
우리는 왜 불안한가?
우리는 항상 무언가를 해야한다는 강박관념과 남들과의 비교 속에서 살아가고 있다. 그래서 나 자신에게 만족하기 보다는 부족함을 느끼고 늘 자책하며 살아간다. 이러한 사회 분위기속에서 현대인들은 우울증이라는 마음의 병을 앓고있다. 이 책에서는 심리학자인 저자가 여러가지 사례들을 통해서 사람들이 느끼는 불안감과 두려움 그리고 그것을 극복하는 방법에 대해 설명한다. 불안이란 무엇인가요? 불안(不安):마음이 편하지 아니하고 조마조마함. 또는 그런 느낌. 사전적 정의에서도 알 수 있듯이 불안은 내가 원하는 대로 되지 않을때 생기는 감정이다. 하지만 많은 사람들이 이것을 부정적인 감정으로만 인식하는데, 오히려 불안은 삶을 살아가는데 있어서 필수적인 감정이기도 하다. 왜냐하면 불안 덕분에 위험으로부터 스스로를 보호할 ..
우리는 무엇을 위해 살아가는가?
우리는 무엇을 위해서 살아가고 있는가? 현재 25살 4학년 대학생인 나는 세상에 대해서 늦게 조금 이나마 깨달았다. 대학교를 왜 다니고 있는가? 대학교를 왜 다니고 계십니까? 자기가 가고싶어서 가는 사람들이 있을까? 나는 부자아빠 가난한 아빠 책을 읽고 대학교가 필요없다는 것을 4학년 때 느꼈다. 그 책의 핵심내용은 1. 학교에서 돈을 가르쳐 주지 않는다. 왜냐 이 사회 교육 시스템은 노동자를 만들기위한 것이기 때문이다. 2. 그냥 열심히 살아라, 다람쥐 쳇바퀴 인생 30 년 살고싶으면 나는 2번째 내용에 너무 충격을 먹었다. 나는 대학교를 왜 왔는가 솔직히 1년 아니 6개월이면 SW 기술을 다배울 수 있기 때문이다. 대학교는 여유시간인 겸에 자신에 대해서 생각해볼 수 있고 자신의 지식을 다른 사람들과 ..
Flutter Null 안전 탐색: 코드 안정성 및 안정성 향상
앱 개발의 세계에서 코드의 신뢰성과 안정성을 보장하는 것은 매우 중요합니다. 버그 및 충돌의 일반적인 소스 중 하나는 null 참조입니다. 이 문제를 해결하기 위해 Flutter 프레임워크는 코드 품질을 향상하고 디버깅 시간을 줄이는 기능인 null 안전을 도입합니다. 이 블로그 게시물에서는 Flutter null 안전의 개념, 이점 및 개발 환경을 개선하는 방법에 대해 자세히 설명합니다. Flutter Null 안전성 이해 전통적으로 프로그래밍 언어에서는 변수가 기본적으로 null 값을 보유할 수 있습니다. 그러나 Flutter null 안전성을 통해 Dart 프로그래밍 언어(Flutter의 기반)는 nullable 및 nullable이 아닌 유형의 개념을 도입합니다. 이는 개발자가 변수가 null을 ..
Flutter Channel: 개발에 적합한 채널 선택하기
Flutter 개발을 하다보면 "채널"이라는 용어를 들어본 적이 있을 것입니다. Flutter에서 채널은 Flutter 프레임워크의 다른 배포 버전을 나타냅니다. 이번 글에서는 채널의 중요성과 다양한 채널 종류에 대해 알아보겠습니다. Flutter Channel사용하는 이유 Flutter 채널은 개발자에게 기능, 버그 수정 및 개선 사항을 제공하는 데 중요한 역할을 합니다. 다양한 채널을 통해 다른 기능 세트에 액세스하고 필요한 안정성 수준을 선택할 수 있습니다. 다음은 Flutter 채널을 사용하는 이유입니다: 1. 기능 액세스 채널을 통해 Flutter 프레임워크에서 새로운 기능에 액세스할 수 있습니다. 각 채널은 다양한 기능 세트를 제공하므로 개발자는 최신의 기능을 실험해볼 수 있습니다. 2. 안정..
디버깅을 하는 이유
디버깅 도구는 소프트웨어 개발 및 디버깅 과정에서 사용되는 도구로, 애플리케이션의 동작을 분석하고 버그를 찾아 수정하는 데 도움을 줍니다. 다음은 디버깅 도구를 사용하는 이유입니다: 1. 버그 식별 디버깅 도구는 애플리케이션의 실행 중에 발생하는 버그를 식별하는 데 사용됩니다. 프로그램이 의도한 대로 동작하지 않을 때, 디버깅 도구를 사용하여 코드의 어떤 부분에서 문제가 발생하는지 찾을 수 있습니다. 2. 프로그램의 상태 분석 디버깅 도구는 애플리케이션의 상태를 실시간으로 모니터링하고 분석할 수 있습니다. 변수의 값을 확인하거나 스택 추적을 통해 프로그램의 흐름을 이해할 수 있습니다. 이를 통해 애플리케이션의 오류 원인을 파악할 수 있습니다. 3. 코드 실행 추적 디버깅 도구는 코드 실행을 추적하고, 중..
Gitaction vs Jenkins 개념과 장단점
Gitaction 장점 GitHub와의 기본 통합: GitActions는 GitHub에서 소유하므로 GitHub 리포지토리 및 워크플로와 원활하게 통합됩니다. 간편한 설정 및 사용: GitActions에는 간단하고 직관적인 사용자 인터페이스가 있어 설정 및 사용이 쉽습니다. 무료 CI/CD 서비스 제공: GitActions는 매달 넉넉한 무료 빌드 시간을 제공하므로 소규모 프로젝트에 매력적인 옵션입니다. 단점 제한된 사용자 정의: GitActions에는 많은 기본 제공 작업이 있지만 일부 다른 도구만큼 많은 사용자 정의를 제공하지 않을 수 있습니다. 제한된 타사 통합: GitActions는 타사 도구와의 통합이 제한되어 있어 일부 프로젝트의 단점이 될 수 있습니다. 제한된 확장성: GitActions는 ..
User@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)굳이 RANDOM_PORT를 하는 이유
1. 포트 충돌 방지 애플리케이션을 실행할 때 기본 포트인 8080이 이미 사용 중인 경우, 랜덤 포트를 사용하면 포트 충돌을 방지할 수 있습니다. 2. 병렬 테스트 수행 가능 테스트를 병렬로 수행할 때, 여러 테스트가 같은 포트를 사용하면 충돌이 발생하여 테스트가 실패할 수 있습니다. 랜덤 포트를 사용하면 병렬로 테스트를 수행할 수 있습니다. 3. 통합 테스트 수행 @SpringBootTest 어노테이션은 Spring Boot 애플리케이션을 시작하고, 테스트 수행에 필요한 빈을 자동으로 등록하여 통합 테스트를 수행할 수 있도록 지원합니다. 랜덤 포트를 사용하면 여러 개의 테스트에서 같은 서버를 공유할 수 있습니다. 따라서 Spring Boot 애플리케이션을 테스트할 때 @SpringBootTest 어노..
repository, domain, controller, service 테스트 코드로 다 테스트 해야하는지? 테스트 순서도 알아보자
일반적으로 Spring Boot 프로젝트에서는 Repository, Service, Controller 등의 계층(layer)별로 테스트 코드를 작성합니다. Repository 데이터베이스에 대한 CRUD(Create, Read, Update, Delete) 로직을 담당하는 코드를 테스트합니다. 보통 In-Memory DB(예: H2)를 이용해서 테스트를 수행합니다. Service 비즈니스 로직을 담당하는 코드를 테스트합니다. Repository를 Mocking하여 테스트를 수행합니다. Controller HTTP 요청과 응답 처리를 담당하는 코드를 테스트합니다. MockMvc를 이용해서 테스트를 수행합니다. 또한, Domain은 일반적으로 비즈니스 로직을 담고 있는 클래스로, 별도의 테스트코드가 필요하..
junit4 와 junit 5 의 차이점과 장단점 그리고 뭐를 더많이 쓰이는지?
JUnit은 Java 언어를 위한 단위 테스트 프레임워크입니다. JUnit4는 이전에 많이 사용되었고, JUnit5는 JUnit4의 문제점을 보완하고 새로운 기능을 추가한 버전입니다. JUnit4의 장단점 - 장점 JUnit4는 안정적이고 성숙한 프레임워크입니다. 풍부한 기능을 지원하며 대부분의 Java 개발자들이 익숙합니다. 또한 다양한 IDE에서 지원되어 사용이 편리합니다. - 단점 JUnit4는 확장성이 떨어지고 테스트 코드의 구성이 어려울 수 있습니다. 또한 멀티스레드 테스트 지원이 불안정하다는 문제점이 있습니다. JUnit5의 장단점 - 장점 JUnit5는 JUnit4의 문제점을 보완하고 새로운 기능을 추가했습니다. 테스트 인스턴스 라이프사이클을 지원하고, 동적 테스트를 지원하며, 테스트 파라미..
CI/CD 기본 개념
개념 어플리케이션 개발 단계부터 배포 때까지 이 모든 단계들을 자동화를 통해서 조금 더 효율적이고 빠르게 사용자에게 빈번이 배포할 수 있도록 만드는 것을 말한다. CI : Continuous Integration 지속적인 통합 메인 레포지토리에 주기적으로 빌드되고 테스트가 되어서 머지되는 것이다. 1. 코드 변경사항을 주기적으로 빈번하게 머지해야 한다. 나중에 머지하려고 하면 서로 다른 코드를 어떻게 통합해서 적용해 나갈껀지 문제가 발생 코드를 작성하는 시간보다 머지하는 시간이 더 오래 걸리는 문제가 발생 작은 단위로 나누어서 통합하는 것이 중요 2. 통합을 위한 단계 (빌드, 테스트, 머지)의 자동화 CD : Continuous Delivery(수동) or Deployment(자동) 지속적인 제공 ,배..