퇴근5분전

매국노들 빠는 기사에 댓글을 달았더니 쪽....ㅂㅏ~~~리는  안써지길래 하나 더 달았더니 

매국노들이 신고때렸나보다.... 

다음 이것들은 조선 부사장 출신이 아직도 앉아 있나? 

 짱개는 그냥 써지는데 왜? 쪼옥ㅂㅏ~ㄹㅣ는 자동 변환되어 보이는걸 막아놨냐? 

 

 

 저건 고칠 생각이 없나봐... 어떤 기사의 댓글인지 기억이 안나.. 

다음 포탈을 안들어가야지 하는데 카페들어가다보면 자꾸 클릭하게 되네... 

 

 

 

'--- 취미 > 생각하기' 카테고리의 다른 글

태블릿 거치대...  (0) 2022.11.28
업무 분석중에...  (0) 2022.11.22
이클립스와 전자정부 프레임워크...  (0) 2022.11.07
새 프로젝트를 시작하며....  (0) 2022.11.06
GitHub에 소스를 올리기 시작!!!  (0) 2022.10.24

 제목 쓰기 어렵다.

함수연결 보기 프로그램에 파일박스 안에 나열된 함수(fn1)와 그 안에서 호출되는 외부함수(fn2)의 연결을 

호출단계(레벨)별로 추가해서 그렸다. 

연결 호출 ...

대충 단계를 표시하기 위해 간소하게 했지만... 

 

 그래도 프로젝트에서 분석하면서 써보니... 나름 괜츈!!

다만 전자정부 플젝 소스 보니 눈돌아갈것 같아. 왜 이렇게 복잡한걸까? 

 문서가 없다더랑.. 보안상?? 두분 계시는데 인간 라이브러리... 

다만... 내가 질문을 할 수 있을지... 서로 귀찮은데... 잘못들어갔나 싶기도 하고... 나올까? 

 

 얼마나 자세히 적을 것인가? 이게 문제이긴하다...

너무 자세히 쓰면 소스 따라 치는 것 처럼 나오고... 다이어그램도 너무 복잡하게 보일테니... 

주요 로직만 적는 것으로 작성자가 적절하게 맞춰야 할 것 같다. 

 

 이번 AsIs Function Connection 프로그램 구현 중... 

텍스트 입력기반으로 만들었기에... 편의기능을 추가했다. 

생각지도 않았던 Alt + Up, Alt + Down 으로 VS 편집기처럼 선택한 행들의 위치를 변경하는 것을 구현하게 되었다. 

인텔리센스를 구현하려니... 참 걸리는게 많네.. 대충 흉내만 냈다. 

 

Textbox_KeyDown Event에서!!

 // txtSource : TextBox 임 

 // !!! 주의 : 프로퍼티에 WrapWord = false; 로 작업해야 함. 

 // 이유 : textbox의 내용이 길때 textbox 크기가 작아지면서 박스안에 글이 구겨들어간다. 이때 커서의 현재 위치 정보를 제대로 읽을 수 없었다.

 

            if (e.Alt && (e.KeyCode == Keys.Up || e.KeyCode == Keys.Down))
            { 
                int selStartIndex = txtSource.SelectionStart;
                int selLength = txtSource.SelectionLength;
                int selLineCnt = 1 + txtSource.SelectedText.Count(c => c == '\n');
                int currentlineIndex = txtSource.GetLineFromCharIndex(selStartIndex);
                List<string> lines = new List<string>(txtSource.Lines);

                if (e.KeyCode == Keys.Up && 0 <= (currentlineIndex -1 ))
                { 
                    string moveString = lines[currentlineIndex - 1]; 
                    lines.RemoveAt(currentlineIndex - 1);
                    lines.Insert(currentlineIndex + selLineCnt - 1, moveString);
                    int offset = moveString.Length;                    
                    txtSource.Text = string.Join(Environment.NewLine, lines);
                    lines.Clear();
                    txtSource.SelectionStart = selStartIndex - offset -2;
                    txtSource.SelectionLength = selLength;
                }
                else if (e.KeyCode == Keys.Down && (currentlineIndex+ selLineCnt) < lines.Count)
                {
                    string moveString = lines[currentlineIndex + selLineCnt];                    
                    lines.RemoveAt(currentlineIndex + selLineCnt);
                    lines.Insert(currentlineIndex, moveString);
                    int offset = moveString.Length;
                    txtSource.Text = string.Join(Environment.NewLine, lines);
                    lines.Clear();
                    txtSource.SelectionStart = selStartIndex + offset +2;
                    txtSource.SelectionLength = selLength;
                }
            }

 

 

구현 로직 설명

 

 이번 프로젝트를 며칠 진행하면서... 

이런게 있었으면 좋겠다. 라고 생각한게 있다. 

예전 국민은행 프로젝트 할때 BizFlow 인가를 만들었었는데... 

그건 플로우를 그려가면서 소스를 생성하는 거였다. 

 

이번건... 반대로 요구사항을 분석하기 위해 소스를 추적하면서 사용할 프로그램을 만들자. 

 

예를 들면, 로그인! 이라는 처리를 하기 위해

이런 다이어그램을 쉽게 입력하고 그리고 찾고 따라가고 하면... 

업무이해할때 좋지 않을까? C#이라면 그냥 프로그램 돌릴 생각하고 만들면 되는데... 

 java라서... 파서 구현하는게 더 오래걸릴듯... 

 

함수내에서 등록 할 작업(예. 아이디, 비번체크)들은 꼭 기록해야 할 내용들을 간략히 적어가면서 넘어가고...

중요한 로직이 들어있다면 상세히 기술하거나 호출되는 메소드로 바꿔 흐름을 따라갈수 있게 고치면 될듯 하다. 

 

퇴근해서 테스트 해본 것!!

 

Text로 입력받을 것이고

이것을 "FN:메서드,  FILE=경로0/경로1/파일명" 정규식으로 쪼개서 

 식 : fn:(?<fn>\w.*)(\s)*(\,)+?(\s)*file=(?<file>\w.+) 

 

fn=메서드, file=경로0/경로1/파일명  를 얻을 수 있도록 그룹지었다. 

 

Proc 

    - [ fn, comment ]

 각 fn들은 저장할때

  경로0/경로1/파일명 폴더 아래

      메서드.define 파일로 저장하자.

 

자료구조는 설계를 마쳤고, ui도 대략 그렸다. 간단한 데모로 만들고 실제로 프로젝트 분석하면서 써봐야 겠다. 

 

- 목표 : 여기까지 이번주 일요일까지 만들고 다음주 월요일은 실무에서 써보자!!

 

 데모로 전체 프로세스 추적을 하면 그려보고 DB를 호출하는 부분에 해당 테이블과 대상 컬럼들 정보를 기록하고, ERD를 부분조각으로 그릴 수 있도록 업그레이드하면 될것 같다. 

 

 

 

 이번 프로젝트인데... 

이클립스 단축키부터 익혀야 겠네...

 

웹이니까 딱히 어려운건 없어 보이는데... 디자인도 깔끔하게 되어 있고, 

수정 조금에 신규만 좀 해주면 될 것 같다.코어쪽은 담당자가 있다 하니... 

쿼리야 어려울것 없지만... 내가 하는건지.. 아직 롤을 정확히는 모르겠다. 

프론트엔드만 하면 되는 것 같던데... 

 역시 새 프로젝트를 하면 머리속에 새록새록 피어나는 아이디어가 생기는 것 같네... 

다만 앱을 만들어서 몇천원, 몇만원이라도 다달이 벌었으면 좋겠는데... 

 공공이나 기업용 프로그램만 만드니, 개인적인 앱에 대한 아이디어가 안떠오르네... 

10개월짜리 잘 하면서 궁리를 좀 해봐야지... 

 

 

 음... 새 프로젝트를 이제 시작한다.

맨날 얻어 쓰던 오피스... 2021버젼으로 하나 구매하고!

 

터치되는 포터블 모니터도 하나 샀다. 

http://item.gmarket.co.kr/detailview/item.asp?goodscode=2001424980 

 

G마켓-제우스랩 Z15ST 휴대용 터치 스크린 ...

248,900원

item.gmarket.co.kr

 화면기획용 프로그램에 펜과 손 터치구분을 하기 위해... 

 

 기존에 레노버 타블렛 윈도우10 싸구려 사서 개발에 써보려 했는데 너무 버벅거려서... 

그래서 노트북에서 직접 개발을 위해 샀다. 

 

 이번 플젝하면서 머리속에 스쳐가는 아이디어... 

웹이니까. 웹 테스트 프로그램을 만들어볼까?

 크롬 확장프로그램을 만들어서 

 - 캡쳐를 찍어서, 문제있는 부분을 표시하고, 내용을 기록해서 서버에 업로드한다.

그래서 git에서 스크린샷 찍는 소스들을 구했다. 

 Restful api 작은거 하나 만들어서 파일로 쌓아놓고 보여주는거 처리하는것들... 

만들어볼까 한다. 

 지금 GreenShot 가지고도 인터넷 창도 전체창 캡쳐가 가능하다. 

 

 퇴근이 지랄맞다.. 여의도 나오는데 30분이상 걸리다니... 

 

 

 

총 18개 ( 3개는 허접하기도 하고 별기능 없는것이라 비공개 )

 

 이것으로 172개의 플젝 중에 선별해서 GitHub에 올릴 수 있는건 다 올렸다.

16년간 프로젝트 뛰면서 짬을 내서 만든 것중에 15개가 선별되었네. 꽁꽁 숨겨놨던건데... 이제서야 올렸네...

 실력 좋은 사람들이 만들어내는 코드 같은게 아니니... 꽁꽁 숨겨왔는데... 너무 급하게 막 올렸나? 싶기도 하고..

닷넷을 더 할 수 있을까? 자바로 가야 하나? 자바에서 써주려나?

난감한 문제네... 

 

GIT 관련...

# 1) 프로그래밍2022. 10. 26. 22:10

 친구에게 git관련 도움을 받았다. 

종일 관리 프로그램 소스를 github에 올리고 git개념 가이드만 겨우 봤네... 

저녁마다 차례로 봐야 할듯... 

github에 총 12개를 올렸다. 앞으로 3개나 4개쯤 더 올라가면 대충 될 것 같다. 

170여개의 프로젝트 파일중에 오픈소스 불러온 것들 40여개 정도 빼고, 올려도 될만한 것들을 고르는게 쉽지 않네... 

만들다 기능확인 하고 디자인이 구려서 또는 다른 프로젝트로 시간을 뺏겨서... 등등...

흔적만 남기고 멈춰버린 개발프로젝트가 많이 있네...

 

 - SVN만 써본 나에게 알려준 슬라이드쉐어( 간만에 들어와 보네.. )

svn 능력자를 위한 git 개념 가이드 (slideshare.net)

 

svn 능력자를 위한 git 개념 가이드

사내 공유를 위해 제작한 문서입니다만, 혹시 도움이 되실 분이 있을까 싶어서 공유합니다. 혹여 오류가 있을 수 있습니다. 관대한 마음으로 이해 부탁드리며 글 남겨주시면 참고하여 수정하겠

www.slideshare.net

 

: https://fork.dev/

 

Fork - a fast and friendly git client for Mac and Windows

Fork - a fast and friendly git client for Mac and Windows

fork.dev

 

브랜치배우기 : https://learngitbranching.js.org/?locale=ko

 

Learn Git Branching

An interactive Git visualization tool to educate and challenge!

learngitbranching.js.org

 

브랜치 전략 : http://blog.hwahae.co.kr/all/tech/tech-tech/9507/?popular=9507

 

Git 브랜치 전략 수립을 위한 전문가의 조언들 – 화해 블로그 | 기술 블로그

Git 브랜치 전략 효과적으로 VCS를 사용하려면 프로젝트 여건에 어울리는 브랜치 전략을 세워야 합니다. 이를 위한 첫 번째는 바로 브랜치 전략에 대한 비교 분석입니다. Git기반으로 워크플로우

blog.hwahae.co.kr

 

그리고 친구가 건낸말

fource push 만 조심해

force push 할 일이 별로 없긴한데 rebase 좋아하는 분들이 가끔 지 피쳐브랜치에 날려야할걸 실수로 다른데 날리지

그래서 rebase 금지인 팀도 있음

https://git-scm.com/book/ko/v2/Git-%EB%B8%8C%EB%9E%9C%EC%B9%98-Rebase-%ED%95%98%EA%B8%B0

 

Git - Rebase 하기

Rebase는 기존의 커밋을 그대로 사용하는 것이 아니라 내용은 같지만 다른 커밋을 새로 만든다. 새 커밋을 서버에 Push 하고 동료 중 누군가가 그 커밋을 Pull 해서 작업을 한다고 하자. 그런데 그 커

git-scm.com

 

땡큐~ 

 

 소스를 서너개 정도를 git에 올리고 3개를 공개 설정하였다. 

그중에 OneStarter라는 프로그램의 데모 버젼을 올리고 ReadMe와 테스트 수정하면서 git에러가 발생!!!

:: OneStarter의 소스가 사라짐을 이제야 발견 ㅠㅠ... 

 

상황 :: 

  1. 소스를 최초로 git에 올림.

  2. 실행해보면서 사이트에서 ReadMe 작성

  3. ReadMe를 Git사이트에서 커밋! ( 최초 ReadMe 생성 )

 4. 수정된것을 Pull하지 않고 그냥 커밋, Push 날렸더니... 여기서 부터 에러가~~~~ 발생

  5. 이거 저거 vs ui 버튼들 눌러보면서 되려나? 했지만 안됨... 

      :: 내용을 모르다보니 눌러도 에러고... 

  늘 사용하던 SVN이 아니라 대처도 쉽지 않네?

 

 

조치 :: git 명령어로   git pull origin +master 라는걸 해야 한다고 함. 

https://doozi316.github.io/errorlog/2019/09/30/error1/

 

Git push 오류 해결 (Updates were rejected because the tip of your current branch is behind its remote..)

 

doozi316.github.io

 

그래서 콘솔을 열어 git을 날렸더니 실행파일이 없음. 

powershell도 열어서 git했더니 실행파일이 없음. 

[도구] > [Nuget 패키지 관리자] => [패키지 콘솔] 열어서 git 했더니 실행파일이 없음.

 

Git을 다운로드함 

https://git-scm.com/downloads 

 

Git - Downloads

Downloads macOS Windows Linux/Unix Older releases are available and the Git source repository is on GitHub. GUI Clients Git comes with built-in GUI tools (git-gui, gitk), but there are several third-party tools for users looking for a platform-specific exp

git-scm.com

:: 영어도 짧은데... 설치중에 물어보는게 너무 많아... 기본적으로 선택되어 있는거 그냥 설치 Next...

 

다음 콘솔을 열어 git명령을 날리니 모두 내려옴. 

최종 결과

결과적으론 수정한게 git꼬이니까 모르겠네 부터 이미 내가 반영하려던게 되어 있는 것 처럼 보임. 

Create ReadMe.md 할때가 내가 사이트에서 커밋할때인것 같고... 

소스보고 스페이스 하나 넣고 git command날리고 push 한다음 보니 위처럼 바뀌었음. 

 

일단 내용을 몰라서... Git을 공부해야 한다. 

 닷넷을 하면서... 그냥 hdd에 간수하던 지난 프로그램들을 하나씩 하나씩 올려보고 있다. 

나중에 선별해서 [공개] 로 전환해야 겠다.

 

일단... JSFW의 폴더안에 프로젝트 갯수는 총 172개.

이중에 골라서 일단 올리겠지만... 많긴 많네... 

 

JSFW 폴더 밖에 프로젝트도... 험... 올릴까 말까.....