분류 전체보기 389

맥북 Monterey 공개 베타 취소방법

서론 취소 이유 MacOS) Monterey Public Beta 설치하기 포스팅을 통해 Monterey가 공개 되기 이전부터 Monterey를 사용 해 왔습니다. 공개 베타에 참여한 덕분에 미리 Monterey 에서 공개될 기능들을 사용 해 볼 수 있었으며, 여러가지 새로 추가될 내용들을 미리 체험 해 본 덕분에 나중에 와이프를 비롯한 주변 맥북 유저들이 공식 Monterey를 설치 했을 때, 먼저 경험했던 내용을 공유 해서 약간의 도움을 줄 수도 있었습니다. 하지만, 제가 사용하고 있는 맥북이 업무에서 사용을 하지는 않는다고 하더라도, 제가 집에서 사용하는 유일한 개인 개발장비인데다가 따로 파티션을 나누어 두지 않은 상태에서 계속해서 베타버전을 사용 하기에는 리스크가 너무 크다고 판단해, 이제 Mon..

IT Computer/Mac 2021.11.21

Postgres) rownum 사용과 Subquery를 통한 update

rownum Postgres 에서도 Oracle의 rownum을 사용 할 수 있을까요? 가능합니다. row_number()를 이용하면 됩니다. 그럼 아래 처럼 그냥 호출 하면 rownum을 사용 할 수 있을 것 같지만.. select row_number(), i.* from item i; 윈도우 함수 호출에는 OVER 절이 필요함 이라는 에러가 나옵니다. 딱히 조건을 걸 생각이 없었지만 그래도 over절은 넣어줘야 하나 봅니다. 그럼 이렇게 작성 한다면 rownum을 사용 할 수 있습니다. as로 alias 를 주는것도 좋겠네요. select row_number() over(), i.* from item i; Subquery를 통한 update 이제 rownum을 받아 왔으니, 서브쿼리에서 rownum을..

Data/PostgreSQL 2021.11.19

일간 에러 2021-11-19

I cannot be cast to java.lang.Integer 문제 JPA Restrictions의 in 절 파라미터에 int 배열을 전달 했더니, 쿼리를 만들어 내지 못하며 I cannot be cast to java.lang.Integer 에러가 발생했다. int[] actions = { Constants.READ, Constants.ADMIN, Constants.SUBMIT, Constants.REVIEW,Constants.WORKFLOW } Restrictions.in("actionId", actions))); 해결 과정 혹시 쿼리에는 String만 들어가야 하나 해서 Parameter를 String 배열로 변환 해 전달 해 보았다. Arrays.stream(collectionMembers)..

SSH 비밀번호 없이 공개키 로그인이 안될때

증상 ssh 접속시 비밀번호를 입력하고 로그인 하지 않기 위해 authorized_keys에 공개키를 추가 했지만, 여전히 비밀번호를 물어 보는 문제가 있었습니다. ssh 공개키도 제대로 입력 했는데 왜 비밀번호를 물어보는지 문제를 해결 할 필요가 있습니다. 원인 원인을 파악하기 위해 secure 파일을 확인 해 봅니다. sudo cat /var/log/secure 로그를 확인 하니 아래와 같습니다. [dev@serverpc .ssh]$ sudo cat /var/log/secure Nov 18 11:09:53 serverpc sshd[4851]: Accepted password for dev from 127.0.0.1 port 9999 ssh2 Nov 18 11:09:53 serverpc sshd[485..

IT Computer/Linux 2021.11.18

CentOS) Docker 및 Compose 설치

Linux 배포 및 버전 확인 자연스럽게 sudo apt update 를 입력 했는데, apt가 안먹히더라고요. 당연히 배포판이 우분투라고 생각했는데 아니었습니다. 일단 어떤 배포판을 사용하는지 먼저 확인 합니다. grep . /etc/*-release CentOS 7.9 버전 입니다. Docker 설치 https://docs.docker.com/engine/install/centos/ Docker Engine을 설치 하기 전에 먼저 Docker Repository 를 셋업 해야 합니다. 그리고 그걸 위해 yum-utils를 먼저 설치하겠습니다. sudo yum install -y yum-utils 금방 설치가 됩니다. 이번에는 yum-config-manager 를 설치 해 줍니다. sudo yum-co..

IT Computer/Linux 2021.11.18

Brackets) Unable to access the extension registry. Please try again later. 에러 해결

문제 Brackets 에서 플러그인을 설치하려고 하는데, Available에 접속이 되지 않았습니다. 구글에 검색해보니 Adobe가 망했다는 등 말도 안되는 말이 많았는데요, 어쨌든 플러그인을 설치 해야 하는 상황이었기 때문에 문제를 해결 해야 했습니다. 원인 최근 설치 파일에서 extention manager 부분의 기능이 제대로 동작하지 않고 있다고 하는데요, Adobe의 새로운 도메인이 SSL 구현으로 인해서 정상적으로 이전이 되지 않아서 생기는 문제 입니다. 해결 config.json 파일을 편집해서 간단하게 에러를 해결 할 수 있습니다. 단계별로 사진과 함께 올릴테니 천천히 따라하시면 누구든 어렵지 않게 해결 하실 수 있습니다. 1. config.json 파일 찾기 일단 Applications ..

CSV 포맷 소개 및 자바로 CSV 파일 작성 하기

CSV 파일형식 소개 CSV(Comma Separated Values)는 몇 가지 필드를 단순히 쉼표(,)로 구분한 텍스트 데이터 및 텍스트 파일 입니다. 장점으로는 표의 형태를 직관적으로 나타내는 간단한 형식이기 때문에 이해하기가 쉬우며, 소프트웨어로 처리하는 것 또 한 쉽습니다. 데이터에 , 가 포함되지 않았다면 간단한 코드 한 만으로도 구현이 가능 할 정도 입니다. 또한 쉼표만으로 구분하며 이스케이프 문자는 선택 사양이니 매우 경량입니다. 이름, 나이, 주소 Shane, 10, ThornHill Jenny, 20, Devonport Ann, 30, Queenstown 한눈에 보기에도 정말 간단합니다. 그 단점으로는 데이터에 쉼표가 포함된다면 곤란해 진 다는 것 입니다. 예를 들어 데이터중에 금액 데..

Programming/Java 2021.11.17

자바에서 YAML 파일 작성하기

YAML https://yaml.org YAML 이란 YAML은 사람이 읽을 수 있는(human-friendly) 데이터 직렬화 언어 입니다. 모든 프로그래밍 언어 사이에서 호환 됩니다. 서로 다른 시스템 간에 데이터를 주고 받기 위해서는 데이터 직렬화 뿐만 아니라, 데이터 포맷에 대한 약속이 필요한데요, 우리가 흔히 사용하고 있는 XML 이나 Json 등도 그 중 일부 입니다. 이전까지 xml이 많이 쓰였지만, json이 뜨면서 xml은 대부분 사장되었는데요, 아무래도 xml이 json 형태에 비해 굉장히 거추장 스럽고 한눈에 들어오지도 않았기 때문 이라고 생각합니다. XML에서 JSON으로 발전 한 것 처럼, YAML은 json 보다도 더 비교적 직관적이고 읽기 편리합니다. XML, JSON과의 비교..

Programming/Java 2021.11.16

일간 에러 2021-11-12

save(object) 메서드 먹통 문제 dao.save(object)를 아무리 호출해도 저장이 되지 않아 테스트 케이스를 통과 하지 못하던 에러. 저장만 안되고, 기존에 이미 있던 DB를 조회 하거나 수정 하는데는 문제가 없어서 당황스러웠다. 원인 Spring Data JPA를 사용할때는 save 메서드를 당연하게 사용했는데, 이번에는 다중 쓰레드에서의 DB 커넥션을 관리해줘야 하는 상황이다 보니, Hibernate가 제공하는게 아닌 다른 구현체를 상속해서 데이터 접근 객체를 만들어 사용하고 있었다. 하다 하다 안되어서 메서드 목록을 보니 create 메서드가 따로 있기에, 그럼 save와 어떤 식으로 차이가 있는지 살펴보려고 코드를 타고 들어가니.. public abstract class Abstra..

java) 여러개의 파일 압축해 zip파일 생성

압축파일 생성 java에서도 파일을 압축 하고 압축을 해제 할 수 있습니다. 심지어 java.util.zip 에 기본적으로 포함 되어 있기 때문에 외부 라이브러리를 사용하지 않고도 손쉽게 구현 할 수 있습니다. 아주 간단한 예제를 만들어서 실습 해 보겠습니다. 사전준비 사실 준비라고 할 것도 없고, 그냥 압축 할 파일을 몇개 준비시켜 둡니다. Terminal 을 켜서 파일들의 경로도 미리 확인을 해 둡니다. 코드작성 세개의 파일을 토대로 File 객체를 생성 한 후, ArrayList에 담아서 순회하고, 압축파일을 생성하는 코드를 작성 해 보았습니다. 딱히 어려운 내용이 없으니 코드를 보면 내용들이 이해 되실거에요. package com.tistory.shanepark.file.zip; import ja..

Programming/Java 2021.11.11

Apple TV 한국에서 애플티비와 홈팟미니 스테레오 활용 후기

1. Apple TV 구매를 결정한 이유 1) 뉴질랜드 오랫동안 Apple TV와 Apple HomePod은 국내에 출시되지 않아왔습니다. 저는 오랫동안 구글의 Chrome Cast 를 사용 해 왔습니다. 해외에서 몇년씩 지낼때도, 혹은 한 두달씩 해외로 배낭 여행을 떠날 때에도 크롬캐스트는 꼭 가지고 다녔었는데요, 큰 화면으로 내가 보고 싶은 영상을 보는건 정말 인생을 풍요롭게 만들어줍니다. 뉴질랜드에서 근무하던 때, 잠깐 3달정도 지냈던 집에 Apple TV가 있었는데요, 그걸 사용해보며 크롬캐스트와는 결이 다른 강력한 사용성에 반해 너무나도 사고 싶었습니다. 하지만 국내에는 정식으로 발매되지 않아 그 사용성이 너무나도 제한적이기에 고민은 많이 했지만 실제 구매로 이어지지는 않았었습니다. 2) 귀국 ..

JAVA에서 비동기 HTTP 요청시 멀티파트 파일 전송 (ContentTooLongException: Content length is unknown)

문제 Multipart 요청을 비동기로 다른 API 서버에 보내려고 하는데 에러가 발생했습니다. 사용자가 업로드 한 파일에 문제가 있는지 (금지 단어 포함 등) 를 확인 하기 위해 어플리케이션 내부에서 해당 파일을 또 다른 어플리케이션(파일 검사API)으로 보내는 로직을 수행하도록 구현을 하고 있었습니다. 사용자에게서 받은 Multipart file을 그대로 다시 API 서버로 전송을 하는데, Single Thread로 수행 했을 때는 문제가 없었습니다. 하지만 Single Thread로 수행 시, 요청한 사용자 입장에서는 파일 업로드에 걸리는 시간이 사용자 -> 어플리케이션서버 -> 검증API서버 이렇게 이렇게 두배로 늘어나게 됩니다. 그래서 어플리케이션 내부에서 검증 서버로의 전송은 비동기 요청으로 ..

Programming/Java 2021.11.05

Rebase 활용해 Commit 합치기

Rebase Rebase는 한 branch에 있는 내용을 다른 branch에 병합하는 두가지 Git 유틸리티 중 하나 입니다. 다른 하나는 이미 모두가 사용하고 있는 git merge 입니다. merge는 항상 이후로 향하는 변경인 반면에, rebase는 git의 history를 다시 작성 하는 강력한 기능을 가지고 있습니다. Rebase는 manual과 interactive 이렇게 두 가지 메인 모드를 가지고 있습니다. 여러가지 역할이 가능 한 rebase 지만 이번 posting에서는 이미 커밋한 몇개의 커밋을 하나로 합치고 새로운 커밋 메시지를 남기는 용도로 사용 해 보겠습니다. 문제 커밋을 했는데 깜빡한게 있는 경우가 생겼습니다. 19 분 전에 커밋을 하자 마자 코드가 너무 지저분 하다는 생각이 ..

Development/Git 2021.11.03

Postman Apple Silicon 지원 소식

Postman Postman은 API 테스팅을 쉽고 빠르고 간편하게 할 수 있도록 도와주는 어플리케이션 입니다. TeliportMe의 CTO로 있던 Abhinav Asthana이 본인의 필요에 의해 Chrome extention을 만들었던 것이 그 시작 입니다. 오랜 기다림 끝에 Postman이 Apple Silicon 에서 native로 동작하게 되었습니다. 이제는 맥북에서 이미 대부분의 어플리케이션이 네이티브로 동작 하다 보니 Postman은 얼마 남지 않은 Rosetta에서 실행되는 앱 중 하나로 남아있었는데요. 그래서인지 실행 할 때 로딩이 오래 걸리는 역 체감이 유독 심하게 느껴졌었습니다. 이제 더이상 답답하게 로딩을 기다리지 않아도 됩니다.! ​ ARM 64 ​ https://www.postm..

IT Computer/News 2021.10.30

Programmers Weekly Challenge 12주 후기

12주의 Programmers Weekly Challenge 가 끝났습니다. ​ 취업 하자마자 위클리 챌린지가 시작 된 덕에, 매주 월요일에는 점심 식사를 빠르게 마친 후 프로그래머스에 새로 공개된 문제를 푸는 재미로 한주를 시작했었는데. 문제를 기다리던 즐거움이 사라진다는게 상당히 아쉽습니다. 한편으로는 취업한지 어느 덧 12주가 흘러가서. 12주동안 스스로의 성장에 대해도 되돌아보는 시간도 되었습니다. ​ 갑자기 2,4,6,7 주차 총 4개의 문제가 사라져 버려서 프로그래머스에 문의도 해 보았는데요 내부 사정이라고만 답을 해 주었습니다. 아무래도 라이선스 문제가 있지 않았을까 추측이 되지만 정확한 이유는 모르겠습니다. ​ 그래도 다행인건 문제 풀이를 했던 코드들은 모두 남아 있습니다. 문제까지 남기지..

Development/DevLife 2021.10.30 (1)