분류 전체보기 272

[파이썬] 문자열 공백 쉽게 채우는 방법

if를 써서 해야하나 했는데 찾아보니 ljust() 함수가 있었다.아래 처럼 간단하게 공백 문자를 채워 줄 수 있다. # 문자의 길이가 4가 아니면 뒤에 공백으로 채운다text.ljust(4)# 테스트print("a".ljust(4)) # "a "print("ab".ljust(4)) # "ab "print("abc".ljust(4)) # "abc "print("abcd".ljust(4)) # "abcd"print("abcde".ljust(4))# "abcde" (문자 길이가 4보다 크면 그대로 출력)

IT/python 2024.07.16

구글포토 영상다운로드 재생불가 코덱변경

구글포토에 영상으로 다운로드해서 가공을 하려고했다.근데 크롬이 외에 어떤프로그램에서 다운로드한 mp4파을을 열수가 없었다.그래서 찾아보니 이런 구글의 자체적인 코덱을 사용하고 있었다. 코덱 확인하는 방법은 아래의 링크를 참조하면 된다. [맥] 영상 코덱정보(포맷) 확인 확인하는 방법영상이 어떤 코덱으로 인코딩 되었는지 확인하고 싶을 때가 있다.그럴 때 맥에서는 간편하게 기본프로그램이 확인이 가능하다.퀵타임 플레이어를 실행해 준다.영상을 불러온 후 (만약 영상을fomerain.tistory.com  그래서 다른 프로그램에서 사용하려면 코덱을 변경후에 사용해야 한다.나는 handbrake를 사용해서 변경했다. 설치방법 사이트에 접속을 해서 프로그램을 다운로드 받아 준다. 사용방법 프로그램을 실행하면 아래처러..

IT/etc 2024.07.15

[맥] 영상 코덱정보(포맷) 확인 확인하는 방법

영상이 어떤 코덱으로 인코딩 되었는지 확인하고 싶을 때가 있다.그럴 때 맥에서는 간편하게 기본프로그램이 확인이 가능하다.퀵타임 플레이어를 실행해 준다.영상을 불러온 후 (만약 영상을 인식할 수 없더라도 오디오만 불러온 상태에서도 확인 가능) 윈도우> 영화정보를 선택해 준다.아래처럼 영상과 오디오 포맷을 확인할 수 있다.

IT/mac 2024.07.15

[자바] netty 사용 방법

kcb와의 통신을 위해서  netty를 처음 사용해 보았다.좌충우돌이 많았지만 무사히 잘 마무리가 되었다.서버에서 euc-kr을 사용해서 그와 관련된 처리 부분에서 시간을 많이 허비했다.한글을 바이트 단위로 쪼개는 게 평소에는 잘하지 않는 부분이라 시간이 걸렸다.별거 없는 내용이지만 이렇게 적어 두지 않으면 나중에 또 시간을 허비할게 뻔해서 최대한 틀만 살려서 내용을 기록해 둔다.혹시나 netty를 사용하실 분에 도움이 되었으면 좋겠다. import java.io.UnsupportedEncodingException;import io.netty.bootstrap.Bootstrap;import io.netty.channel.ChannelFuture;import io.netty.channel.ChannelFu..

IT/java 2024.07.15

[자바] 문자열 euc-kr로 변환 한글깨짐

요즘 거의 대부분의 프로젝트가 UTF-8로 되어있다.그래서 예전처럼 한글이 깨져서 인코딩을 할 일이 잘 없었다.그래서 잊고 살고 있는데 갑자기 구시스템과 소켓 통신을 하게 되면서 한글 깨짐이 문제가 되었다.구시스템이 euc-kr로 되어 있었다.소켓 통신을 할때 netty를 사용해서 하게 되었는데 여기서 뭔가 한글 관련 설정이 있는 게 아닌가 했는데그냥 별거 없었다.이래서 기본기가 중요하다.String text = "안녕 hello";System.out.println(text);System.out.println("==================");// EUC-KR로 인코딩byte[] byteEuckr = text.getBytes("euc-kr");// EUC-KR로 디코딩String strEuckr =..

IT/java 2024.06.21

[크롬] 북마크바가 처음 시작 할때만 보이는 현상

브라우저는 주로 크롬을 사용한다.북마크바에 자주 사용하는 곳을 등록해고 사용을 하는데어느 순간부터 창을 처음 띄울 때만 북마크바가 보이고 이후에 사이트로 이동을 하면 북마크바가 사라지는 현상이 발생했다.아마 다른 걸 하면서 뭘 눌렀나 보다.아래처럼 단축키를 눌러 주면 북마크바가 보였다가 안보였다가 하는데 한번 보이게 설정을 하면 이후에도 계속 보이게 된다.단축키 : ctrl + shift + B

IT/etc 2024.06.20

[javascript] 테스트 환경

요즘 리액트를 공부하면서 자바스크립트에 대한 기본이 부족함을 느꼈다.쉬운 거 같지만 어려운 언어라는 말이 맞는 거 같다.그래서 다시 공부를 시작하면서 지인 추천 해준 동영상 강의를 보다가 강사의 환경세팅 방법이 마음에 들었다.nodejs, vscode를 이용해서 간단하게 테스트 환경을 만들 수 있다.각 잡고 공부 할 때 빠르게 테스트 환경을 만들어서 공부해보도록 하자.1. 바탕화면에 폴더 생성2. vscode 실행 후 폴더를 드레그3. js 파일 생성4. 터미널 실행5. 코드 실행

IT/javascript 2024.06.12

[vscode] 자동저장 설정 방법

파일 저장은 원래 습관적으로 해주던 동작이다.근데 이 습관을 무너트린 녀석이 바로 파이참이다.기본으로 자동 저장이 되다 보니 금세 여기에 적응이 되고 말았다.그래서 vscode로 넘어오고 나서 이게 참 불편했다.하지만 vscode도 자동 저장 기능을 제공하고 있다.왜 디폴트모드가 off인지 모르겠다.1. 메뉴위치2. 설명auto save에서 after Delay를 선택해 주면 아래에 auto save delay에 해당하는 시간 이후에 자동 저장이 된다.기본이 1000(1초)으로 이렇게 세팅을 하면 크게 불편함이 없다. 나머지 항목은 참고만 하도록 하자onFocusChange : 에디터 밖으로 포커스가 이동하면 파일이 자동 저장onWindowChange : VSCode 에디터 밖으로 포커스가 이동하면 파일..

IT/vscode 2024.06.12

[리액트] useCallback 사용

펑션을 자식에서 props로 내려 줄경우 부모가 리로딩 될 때 마다 자식도 같이 리랜더링이 되게 된다.이를 피하기 위해서 useCallback함수를 사용해주면된다.기존에 함수를 useCallback으로 감싸주고 변경 값이 변경될때에만 리렌더링이 될 값을 인자로 주면 된다.적용전const handleClick = (id)=>{ let newTodoData = todoData.filter((data) => data.id !== id); setTodoData(newTodoData);};적용후const handleClick = useCallback((id)=>{ let newTodoData = todoData.filter((data) => data.id !== id); setTodo..

IT/react 2024.06.07

[리액트]React.memo사용

React.memo를 사용하면 불필요한 렌더링을 막을수가 있다.예를 들어 리스트 아이템같은경우 조회된 이후에 변경 사항이 없는 경우 다시 렌더링이 될 필요가 없다.하지만 로그를 찍어 보면 같이 렌더링을 되는것을 확인 할 수 있다.이경우 해당 부분을 React.memo 감싸주기만하면 불필요한 렌더링을 막아 줄수가 있다. 적용전const List = ({ id}) => { return ( )};export default List;적용후const List = React.memo(({ id}) => { return ( )});export default List;

IT/react 2024.06.07