본문 바로가기
반응형

개발26

동일한 패턴으로 반복되는 문자열 내에서 지정 문자열만 추출하여 치환 동해물과 백두산이 마르고 닳도록 하느님이 보우하사 우리 나라 만세 무궁화 삼천리 화려강산 대한사람 대한으로 길이 보전하세 위와 같이 동일한 패턴에서 애국가 가사 부분만 추출해 아래와 같은 패턴으로 변경하고픈 경우 동해물과 백두산이 마르고 닳도록 하느님이 보우하사 우리 나라 만세 무궁화 삼천리 화려강산 대한사람 대한으로 길이 보전하세 본인은 vscode로 편집했는데 탐색 조건을 아래와 같이 설정하고 (?(.*?)+) 치환될 문자를 아래와 같이 설정하면 된다. $1 탐색 조건 (?expr): 명명된 토큰. 괄호안에 묶인 표현식에 대한 이름을 정한다. 치환 문자 $N: N번째 일치하는 토큰으로 1로 지정하면 첫번째 일치하는 토큰, 여기서는 명명된 토큰이 지정된다. 2023. 12. 7.
Dockerbuild 파일에서 git clone 이미지를 생성할 때 기본 이미지를 바탕으로 수작업으로 세팅 후 commit을 하는 방법도 있지만 명시적으로 어떤 작업을 거쳐서 이미지가 생성됐는지 확인하기 위해 Dockerbuild 파일을 작성해서 build하는 방법으로도 많이 사용한다. 그런데 도커 사용 이력이 짧다 보니 git 서버에서 소스 코드를 받아오는 과정에서 삽질을 많이 했다. 일단 빌드 중에는 유저와의 interaction이 되질 않는다는 것도 삽질하다 알게 됐고, 때문에 계정 정보를 입력해서 소스코드를 다운 받는 문제를 해결해야 했다. 처음에는 사용중인 username과 password를 주소상에 입력하기도 해봤는데 보안상 문제도 있고, 패스워드 Dockerfile에 그대로 노출돼 있는 것이 미관상(?) 보기 좋지 않았다. RUN git .. 2023. 11. 22.
Flutter DataTable 스크롤 가능하도록 구현 PC 웹브라우저상에 DataTable에 View의 사이즈를 넘는 데이터들이 삽입되어도 스크롤이 가능할 줄 알았는데 개발 당시 적은 양의 데이터로 테스트 할땐 문제가 없었으나 웹브라우저 사이즈를 줄이거나 데이터가 많아지니 문제가 생겼다. 하지만 간단히 SingleChildScrollView로 해결할 수 있었다. 모바일 상에서도 이와 같은 처리를 해야 하는지는 확인해보진 않았다. import 'package:flutter/material.dart'; void main() { runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({super.key}); // This widget is the root of your applicat.. 2023. 11. 13.
gitlab에서 gitea로 마이그레이션 기존에 라즈베리파이4 8GB 모델을 이용해 우분투 서버에 도커 설치 후 gitlab을 설치해 사용했었다. 초기 세팅이 다소 어려웠고 시스템 리소스를 많이 소비하는 편이어서 개인적으로 사용하기엔 그닥 적합한 것 같진 않았으나 그냥 단순 호기심에 사용했었다. 소스 코드는 별도의 디스크를 이용하진 않고 기본 SD카드에 저장되도록 했었는데 SD카드의 불안정성을 간과했었던 것 같다. 몇년 전 이미 SD카드의 불안정성을 회사에서 라즈베리파이를 이용한 제품 개발 과정에서 뼈저리게 경험했었으나 그때는 빈번한 급작스런 셧다운과 고온의 환경에서 사용하는 등의 이유로 단시간에 시스템이 먹통이 되는 등 다소 터프한 환경에 기인한 것이라 판단했는데 그렇지 않은 가정집에서 사용함에도 불구하고 2년을 채 버티지 못하고 부팅이 안되.. 2023. 10. 29.
반응형