본문 바로가기
728x90

분류 전체보기303

[MySQL] TEXT Column cannot set default value text 타입을 가지는 컬럼의 default 값을 설정하려고 할 때 "TEXT Column cannot set default value" 이라는 에러가 발생하여 그 원인을 찾아보았습니다! TEXT 컬럼 default value 설정 CREATE TABLE `test_table` ( `col1` INT(11) NOT NULL AUTO_INCREMENT, `col2` TEXT, `col3` INT(11) DEFAULT NULL, `col4` TINYINT(1) DEFAULT '0', PRIMARY KEY (`col1`) ); 먼저 위와 같은 쿼리로 test_table을 생성합니다. ALTER TABLE `table1` change `col2` `col2` text default ''; col2 컬럼의 디폴트.. 2023. 8. 12.
[JAVA] Collections.emptyList() 와 Lists.newArrayList() null을 반환하는 것은 위험하니 빈 empty List를 반환하는게 안전합니다. empty List를 반환하기위해 사용할 수 있는 코드는 아래와 같이 두 가지 선택이있는데요, Collections의 emptyList 와 Lists의 newArrayList는 무슨차이가 있을까요? Collections.emptyList() public static final List emptyList() { return (List) EMPTY_LIST; } Collections.emptyList() 는 static 으로 이미 만들어진 객체입니다. 따라서 cpu와 메모리에 추가 비용이 발생하지 않습니다. Collections.emptyList() 은 final 로 불변 객체를 리턴합니다. 따라서 객체 값을 받아 변경하는 경.. 2023. 8. 11.
[Spring] Spring 프로젝트에서 리소스 파일 읽기 (Java8) Springboot에서 File 을 읽어오자 스프링부트에서 자바 코드로 파일을 읽어오기 위해 아래와 같이 코드를 생성했습니다! Path fileName = Path.of("src/main/resources/template/test.txt"); String actual = Files.readString(fileName); 하지만 Path.of 와 Files.readString에서 인텔리제이가 빨간 밑줄을 쳐줬는데요, 자바8에서는 지원하지 않는 메소드여서 오류가 발생했습니다. 그래서 자바8 기준으로 코드를 수정했습니다. Path filePath = Paths.get("src/main/resources/template/test.txt"); List lines = Files.readAllLines(filePat.. 2023. 8. 11.
[Spring] 스프링 @MockBean, @SpyBean 배경 스프링과 Junit을 이용해서 테스트 코드를 작성하다 보면 테스트 환경(database, api)을 구현하는 코드까지 작성해야 하고 실제 테스트할 코드보다 환경을 구현하는 코드가 훨씬 더 복잡해지게 됩니다. 이런 문제 영역을 해결하기 위해서 테스트 더블 이라는 것이 나왔고 Java진영에서는 대표적으로 Mockito가 있습니다. Mockito를 사용하다보면 아래 어노테이션을 자주 접하게됩니다. @Mock @MockBean @Spy @SpyBean @InjectMocks SpringBoot 1.4에서 2개의 테스트 어노테이션 @MockBean, @SpyBean 이 추가되었습니다. 두 어노테이션 모두 spring-boot-test에서 제공하는 어노테이션입니다. Spring 에서는 보통 객체생성시 직접 생.. 2023. 3. 12.
[Spring] 스프링 캐시 알아보기 (@Cacheable, @CachePut, @CacheEvict) 스프링 캐시 캐시란? 자주 사용되는 데이터를 저장하는 공간을 의미합니다. 자주 사용되는 데이터를 매번 요청 때마다 생성하여 응답하는 것 보다는 생성된 데이터를 저장해놓고 똑같은 요청이 왔을 때 로직을 거치지 않고 데이터를 반환해주는 것이 서버에 리소스 사용을 줄일 수 있으므로 성능을 향상할 수 있습니다. 그렇다면 캐시는 어디에 사용하는 것이 좋을까요? 클라이언트에게 전달되는 값이 동일할 때 빈번하게 호출될 때 한 번 처리할 때 많은 서버 리소스를 요구 할 때 예시로는 공지사항, 조회수, 랭킹 등이 캐시를 많이 적용합니다. 반대로 캐시를 적용하지 말아야하는 경우는 언제일까요? 실시간으로 정확성을 요구하는 경우 빈번하게 데이터 변경이 일어나는 경우 spring-boot-starter에서 제공하는 캐시는 서버.. 2023. 3. 12.
[JAVA] CollectionUtils.isEmpty() 사용법 및 예시 객체의 Null 체크와 empty 여부를 동시에 체크하기 위해 어떻게 해야할까요? 지난번에는 String의 white space와 null 체크할 때 사용하는 StringUtils에 대해서 알아보았는데요~ 만약 List 의 empty 여부를 확인하고 싶다면 어떻게 해야하는지 알아보도록 하겠습니다~ ColletionUtils 문자열의 다양한 메소드를 사용하기위해 StringUtils 패키지를 사용했다면 객체에 대한 메소드를 사용하기위해서 CollectionUtils 패키지를 사용합니다. CollectionUtils는 Apache Commons에서 제공하는 클래스로 List의 길이와 null 체크 할 때 주로 사용됩니다. CollectionUtils.isEmpty() List testList = new Ar.. 2023. 2. 12.
[JAVA] StringUtils.isBlank()와 StringUtils.isEmpty() 차이 Apache Commons에서 제공하는 패키지중 하나인 StrigUtils 를 사용하여 String의 null 체크, white space(공백) 체크 또는 빈 문자열의 유무를 확인 할 수 있습니다. StringUtils 알아보기 StringUtils는 org.apache.commons.lang.StringUtils 패키지에서 제공하는 클래스입니다. 자바의 String 클래스가 제공하는 문자열 관련 기능을 강화한 클래스인데요 StringUtils의 특징은 아래와 같습니다. - 특징 StringUtils 클래스만으로 거의 대부분의 문자열 처리를 수행 파라미터 값으로 null을 주더라도 NPE (Null Point Exception)을 발생시키지 않음 참고: https://commons.apache.org/.. 2023. 2. 11.
[DB] MySQL CharacterSet과 Collation Character Set character set은 텍스트 데이터를 어떤 방식으로 인코딩하여 저장할 것인지를 결정하는 값입니다. 한글 인코딩을 위해 가장 널리 사용되는 인코딩 방식으로는 UTF-8과 EUC-KR이 존재하지만 show character set; 명령어를 통해서 지원하는 인코딩 목록을 확인 할 수 있습니다. Collation Collation은 정해진 character set에 의해 저장된 데이터들이 어떤 방식으로 정렬(order by) 될지를 결정하는 옵션입니다. 물론 직관적인 자료 (int나 date type)에서는 collation의 차이가 크게 의미 없습니다. 하지만 문자열을 정렬하는 방식에서는 차이가 있습니다. A와 가, 또는 A와 a 와 같은 문자열 정렬 방식을 설정하는 것은 설정.. 2022. 11. 12.
[금융IT용어] IaaS / PaaS / Saas IaaS (Infrastructure as a Service) 아이아스 또는 이에스라고 부른다. IaaS는 서비스로 제공되는 인프라스트럭처로 개발사에 제공되는 물리적 자원을 가상화한다. 클라우드 인프라스트럭처 서비스는 확장성이 높고 자동화된 컴퓨팅 리소스를 가상화하여 제공하는 것으로 고객에게 서버, 네트워크, OS, 스토리지를 가상화하여 제공하고 관리한다. IaaS의 제공업체는 서버, 하드 드라이브, 네트워킹, 가상화 및 스토리지를 관리하며 고객은 OS, 미들웨어, 애플리케이션 및 데이터와 같은 자원을 관리한다. 장점: 물리적 자원을 제공받기때문에 고정비가 들지 않는다. 물리적 자원에대한 규모 확장/축소가 자유롭다. 요약) 물리적 자원 제공 PaaS (Platform as a Service) Pass (.. 2022. 11. 6.
[금융IT용어] CRM / CRV / CoRPA CRM (Customer Relationship Management) 고객 관계 관리. 기업이 고객 관계를 관리해 나가기 위해 필요한 방법론이나 소프트웨어 등을 가리키는 용어이다. 현재의 고객과 잠재 고객에 대한 정보 자료를 정리, 분석해 마케팅 정보로 변환함으로써 고객의 구매 관련 행동을 지수화하고, 이를 바탕으로 마케팅 프로그램을 개발, 실현, 수정하는 고객 중심의 경영 기법을 의미한다. 다시 말해 기업들이 고객들의 성향과 욕구를 미리 파악해 이를 충족시켜 주고 기업들이 목표로 하는 수익이나 광고효과 등 원하는 바를 얻어내는 기법을 말한다. CRM은 단순히 제품을 팔기보다는 ‘고객과 어떤 관계를 형성해나갈 것인가’, ‘고객들이 어떤 것을 원하는가’ 등에 주안점을 둔다. 이런 고객 성향이나 취향을 먼저.. 2022. 11. 5.
[k8s] Helm과 Chart 란? (쿠버네티스 패키지 매니저) 글의 요약 설명 부분. 150자를 적어주세요. 글의 요약 설명 부분. 150자를 적어주세요. 글의 요약 설명 부분. 150자를 적어주세요. 글의 요약 설명 부분. 150자를 적어주세요. 글의 요약 설명 부분. 150자를 적어주세요. 글의 요약 설명 부분. 150자입니다 Helm Helm이란? 쿠버네티스는 도커 컨테이너를 쉽게 관리하고 배포해주는 일종의 컨테이너 오케스트레이션이라고하였습니다~! Helm은 이러한 쿠버네티스를 파이썬의 pip, Node.js에서 npm의 역할과 같이 쿠버네티스를 패키지로 해서 관리해주는 쿠버네티스 패키지 매니저로 쿠버네티스 클러스터에서 동작하도록 관리합니다. 즉, Helm을 사용하면 클러스터에서 배포할 애플리케이션을 쉽게 설치, 업데이트, 삭제가 가능합니다. Helm 아키텍처.. 2022. 11. 1.
[리눅스] 리눅스 명령어 nslookup 사용법 및 예제 리눅스 명령어 중에 도메인 정보를 확인하기 위해서 nslookup 이라는 명령어를 사용한 적이 있습니다. nslookup은 어떤 명령어인지, 언제 사용하는 명령어인지 그리고 어떻게 사용하는지 더 자세히 알아보도록합니다. nslookup 명령어 의미 nslookup 명령어는 네트워크 디버깅을 할 때 자주 사용되는 명령어입니다. DNS 서버에 직접 DNS 쿼리를 하고 그 결과를 출력합니다. 이 명령어를 통해서 DNS 설정이 정상인지, 정상 동작하고 있는지, 네트워크가 의도한대로 정상 설정 되어있는지 등을 확인합니다. 또한 nslookup은 리눅스 명령어지만 macOS 나 window에도 동일한 이름을 가진 명령어가 있스니다. 현재는 nslookup 보다는 비슷한 기능을 지닌 dig 또는 host 명령어를 지.. 2022. 10. 29.
[k8s] 컨테이너 실행 명령어 종류 Docker Container를 사용하다보면 명령어를 많이 사용하게됩니다. 보통 docker 명령어를 통해서 이미지를 실행 또는 stop을 할 수 있는데요, 기본적인 명령어 외에 어떤 명령어가 있는지 알아보도록합니다. 도커 컨테이너 (Docker Container) 도커 이미지를 통해서 도커 컨테이너를 생성 할 수 있습니다. 이전에도 설명드렸듯이 컨테이너는 이미지를 실체화한 것으로 이해 할 수 있는데요, 비유를 들자면 이미지 = 붕어빵틀 컨테이너 = 붕어빵 으로 이해할 수 있습니다. 즉 이미지 하나로 여러개의 컨테이너를 생성할 수 있는 것이죠. 자세한 도커 컨테이너 설명은 아래 포스팅을 참고하세요. [k8s] 컨테이너(Container)와 쿠버네티스(Kubernetes) 소개 컨테이너(Container).. 2022. 10. 28.
[네트워크] DMZ(Demilitarized Zone) 의미와 뜻 네트워크에서 내부망과 외부망에대해서 이야기할 때가 있습니다. 이때 DMZ라는 용어도 함께 언급되는데요 DMZ란 한국어로 직역하면 비무장지대로 아군과 적군 어느쪽이든 무장을 하지 않은 상태를 의미합니다. 그렇다면 네트워크에서 말하는 DMZ는 어떤 의미를 가질까요? 간단하게 DMZ가 가지는 의미부터 어떤 용도로 사용되는지까지 알아봅시다. DMZ란? DMZ란 Demilitarized Zone의 약자로 내부/외부망의 중간 지점을 의미합니다. 내부/외부 네트워크 사이에 중간지점에 위치하여 침입 차단 시스템 등으로 접근 제한을 수행하지만 외부에서 DMZ로의 직접 접근은 가능합니다. 배경 왜 DMZ라는 것을 만들어 사용하게되었을까요? 그 배경에대해서 알아봅시다. 컴퓨팅과 네트워크를 사용하는 기관들은 보안 목적으로 L.. 2022. 10. 27.
[경제용어] 인플레이션(inflation), 스태그플레이션(stagflation) 의미와 뜻 인플레이션이란? 인플레이션(Inflation) 인플레이션은 통화량의 증가로 화폐가치가 하락하고, 모든 상품의 물가가 전반적으로 꾸준히 오르는 경제 현상을 의미합니다. 인플레이션이 심해지면 초인플레이션이라고합니다. 통화량의 증가로 화폐 가치가 하락하고, 모든 상품의 물가가 꾸준이 상승하는 현상으로 반대말로 디플레이션(물가하락; Deflation)이라고 합니다. 인플레이션의 주요 원인으로는 유통되는 통화공급의 증가, 소비자 투자, 재정지출 등 수요 확대에 의하여 생깁니다. 인플레이션율을 결정하는 중요한 지표중 하나는 종합물가지수(소비자종합물가지수; CPI)입니다. 이는 단위시간당 얼마나 변하는지를 나타내는데 이 지표에 의해서 인플레이션이 결정됩니다. ​ 인플레이션은 경제에 여러가지 방향으로 영향을 줍니다. .. 2022. 10. 26.
[경제용어] 빅스텝, 자이언트스텝, 울트라스텝(점보스텝) 용어 의미와 뜻 요즈음 계속해서 기준금리 인상 소식이 들려오고있습니다. 금리인상을 할 때 50%p를 인상했다, 25bp를 인상했다 라는 bp(basis point)라는 단위를 사용하는데요, bp는 금리 변동을 나타낼 때 사용하는 단위로 1bp = 0.01%입니다. 금리를 인상할 때 5bp 인상했다 라면 5퍼센트 포인트 인상했다라고 읽습니다. 기준금리 관련 뉴스를 접하다보면 스텝이란 용어도 자주 나옵니다. 스텝(step)은 금리를 인상 또는 인하하는 폭을 의미합니다. 원래는 사람의 걸음 폭을 의미하는데 경제 용어로 사용되면 인상/인하 폭을 의미하게 되는 것이죠. 예를 들어 베이비스텝, 빅스텝, 자이언트스텝, 울트라스텝 등이 있습니다. 미국 중앙은행인 연방준비제도도 빅스텝이 올 수 있다는 소식도 있는데 뉴스에서 많이 보이는.. 2022. 10. 25.
[부동산] 용적율, 건폐율이란? 용적율이란? => 땅의 크기에서 연면적이 확보하고있는 비율 땅의 크기에서 연면적이 확보하고있는 비율을 의미합니다. 건출물의 바닥 면적이라고 볼 수 있다. 땅 위에 있는 건물의 바닥 면적을 모두 다 합한 것의 백분율을 의미합니다. (연면적 / 땅 면적) x 100 ​ 예를 들어 봅시다 100제곱미터 크기의 땅 위에 약 40제곱미터 규모의 바닥 면적이 모두 같은 5층짜리 건물을 짓는다면 용적률은 몇일까요? => 연면적은 약 200제곱미터 (40제곱미터 x 5층) 가 되며, 용적율은 200%가 됩니다. 만약 용적율이 크다면 건물이 높다고 파악할 수 있습니다다. 높은 건물을 지을 수 있는 여건이 충족되므로 땅의 시세도 높게 형성되게 됩니다. ​ 더해서 재건축/재개발 시에도 사용되는데 재개발이 진행될 시 용적률 .. 2022. 10. 24.
여의도 한강공원 2022 한강달빛야시장 2022 한강달빛야시장 최근에 3년만에 여의도에서 열렸던 서울세계불꽃축제가 열렸었죠 서울세계불꽃축제에 이어서 여의도 한강공원에서 한강 달빛 야시장이 열린다고합니다~ 이전에는 반포 한강공원에서 야시장이 열렸었는데 이번에는 여의도 한강공원에서 열립니다! 장소 및 일시 장소: 여의도 한강공원 물빛광장 일시: 10/22~10/23, 10/29~10/30 (토,일) 오후 5시 ~ 오후 10시 여의도 한강공원에서 열리는 한강달빛야시장은 총 2번 열립니다. 10/22~10/23과 10/29~10/30 토,일 주말에 오후 5시부터 10시까지 열립니다. 10월말에는 할로윈 이벤트도있어서 사람이 엄청 많은 것으로 예상되네요 ㅎㅎ 한강달빛야시장은 각종 먹거리와 핸드메이트 상품 판매 뿐만아니라 여러 아티스트가 참여하는 프리마.. 2022. 10. 23.
[부동산] LTV,DSR,DTI 용어 의미 뜻 LTV (주택담보가치비율; Loan to Value Ratio) LTV란? 담보 가치에 대비하여 설정한 대출 비율 주택담보대출의 경우 담보 가치에 대비했을 때 최대 대출한도를 의미한다. 즉, 주택가격에 비해서 주택담보대출 금액이 어느 정도 차지하는지를 나타내는 비율이다. ​ 💡예를 들어 LTV가 60%이고, 내가 제공하는 담보(주택가격)가 1억이라면? 내가 최대로 받을 수 있는 대출금은 1억의 20%인 6천만원이 된다. 따라서 대출금을 높게 책정받고 싶다면, LTV가 높아야 한다. ​ 보금자리대출의 경우 미혼, 기혼: 연소득 7,000만원 이하 신혼가구 : 부부합산 연소득 8,500만원 이하 대상주택: 아파트, 연립, 다세대, 단독주택(평가액 6억 이하) *시세는 kb시세 일반 평균가, 한국부동산원시세 .. 2022. 10. 23.
[k8s] 쿠버네티스 오브젝트(Kubernetes Objects) 종류 쿠버네티스 오브젝트(Kubernetes Objects)란? 쿠버네티스 오브젝트는 쿠버네티스 시스템에서 영속성을 가지는 오브젝트입니다. 쿠버네티스는 클러스터의 상태를 나타내기 위해 이 오브젝트를 이용합니다. 어떤 컨테이너화된 애플리케이션이 동작중인지, 어느 노드에서 동작 중인지 그 애플리케이션이 이용할 수 있는 리소스 그 애플리케이션이 어떻게 동작할지에대한 정책 (재시작, 업그레이드 등) 애플리케이션 개발자는 오브젝트를 생성/변경/삭제하여 쿠버네티스 시스템에 내 애플리케이션이 어떻게 표현될지 전달합니다. 이를 원하는 상태(desired state)라고 합니다. 대부분의 정보를 .yaml 파일로 kubectl (커맨드 라인 인터페이스)에 제공합니다. kubectl은 api 요청이 이루어질 때 json 형태로.. 2022. 10. 19.
728x90