본문 바로가기

개발6

삼각행렬로 연립방정식 단번에 구하기 학창 시절.. 행렬이 수학책의 첫 단원이라 본의 아니게 공부했던 기억이 있다. 아마 나만 그랬던 건 아닐 것이다ㅎㅎ 어잿든 십수 년 코딩을 해오면서도 이제야 왜 행렬이 첫 번째인지 그 깊은 뜻이 헤아려진다. 머리가 나빠서 이론은 건너뛰고 실전코딩부터 했던터라 지금까지 해 오던 것이 선형대수학의 내용인지조차 몰랐었다. 왜 필요한지도 모른채 행렬부터 공부하다 보니 연결이 어려웠던 걸까.. 주입식 교육의 폐해다ㅎㅎ 뒤늦게 다시 선형대수학을 공부하며 하나하나 정리해 가고 있는데.. 삼각행렬로 연립방정식을 구하는 손쉬운 방법을 소스로 만들어 보았다. php로 짰지만 다른 언어로도 쉽게 변경 가능하다. //삼각행렬 function triangularMatrix(&$matrix) { $j_count = count($.. 2019. 8. 19.
FragmentPaper에서 ListView가 매번 초기화되지 않도록 하기 대부분의 앱은 탭과 리스트로 구성된다. 많은 정보를 간편하면서도 체계적으로 보여줄수 있기 때문이다. Android에서 이러한 구조는 보통 FragmentPaper에 ListView를 넣어 구현한다. FragmentPaper는 메모리 관리를 위해 사용자가 보고 있는 페이지과 양옆의 페이지만 유지하고 나머지는 죽이는데 내 경험상 완전히 죽이는것이 아니라 Fragment의 생명주기만 끝내는것 같다. 결과적으로, 페이지를 옮길때마다 Fragment가 초기화되어 그 안의 ListView 내용도 다 지워진다. 이를 방지하는 방법이 따로 있을지도 모르겠지만 나는 다음과 같이 onCreateView()에 몇줄을 코딩해 해결하곤 한다. Fragment의 생명주기는 다시 시작되지만 Class 자체의 객체변수들은 그대로 남.. 2019. 5. 23.
인공지능 독학을 위한 예습복습... 머신러닝 쉽게 이해하기 꼬맹이 시절, 다들 그랬겠지만 수많은 만화영화를 보며 자랐다. 특히, 로봇이 나오면 더욱 열광했던것 같다. 그때부터 였을까? 진짜 언젠가는 내손으로 로봇을 만들고 싶어 과학자가 꿈이라고 말했던게... 결국, 공부를 못해 과학자의 길은 포기했지만ㅎㅎ 아직 그때의 감정은 뿌리깊게 남아있다. 소프트웨어 엔지니어가 된 지금, 그 오래된 감정을 끌어내려 한다. 턱없이 부족한 실력일수 있지만.. 인공지능을 구현해 보기로 마음 먹었다. 그 첫번째 단계로 기본 개념을 익히기 위해 이 책을 샀다. 인공지능을 어려운 수식없이 인문학적으로 풀어 쓴게 인상적이었다. 전공과목을 교양으로 듣는 느낌이랄까ㅎㅎ 하지만 번역본이다보니 약간 어색한 글귀가 있어 아쉬웠다. 때론 그림으로도 설명해준다. 인공지능의 핵심이라 할 수 있는 신경.. 2019. 2. 7.
EditText에 자동으로 단위 콤마 넣기 NumberFormat 을 이용하면 숫자에 단위 콤마를 쉽게 찍을수 있다. 하지만 이를 EditText에 적용할려고 하면 한가지 문제가 생긴다. 입력할때마다 콤마가 찍혀야 하는데... addTextChangedListener에서 NumberFormat으로 콤마를 찍으면 당연히 텍스트가 변경되므로 다시 리스너가 호출된다. 즉, 호출이 무한 반복되면서 앱이 멈추게 된다. 그래서 살짝 꼼수를 부려봤다. EditText 밑에 같은 크기의 TextView를 깔고 여기에 콤마를 찍은 텍스트를 대신 써주고, 후에 EditText를 동기화 하는 것이다. 물론, EditText는 투명하게 설정해 안보이게 한다. 사실 임시 방편으로 만든것인데.. 생각보다 잘 작동해 계속 쓰고 있다 ㅎㅎㅎ 소스는 다음과 같다. 요즘 뜨고 .. 2019. 1. 17.
Intent 전달 방식을 모방하여 부모 activity를 호출하기 IOS에서는 prepare()을 통해서 부모 controller를 쉽게 전달할 수 있다. 하지만 Android에서는 Intent로 activity를 전달하기 쉽지 않다. 뭐, Intent 말고도 여러 전달 방식이 있기 때문에 상관없지만... 깔끔하게 코딩하고 싶은 마음에 함 만들어 보았다. static을 이용하지만, 마치 Intent로 전달하는것 같은 느낌으로ㅎㅎ public class BaseActivity extends FragmentActivity { private static final String KEY_PARAM_CONTEXT_ID = "ParamContextId"; //전달할 Context를 담는 Map private static HashMap mParamContextMap = null; /.. 2018. 6. 7.
UIButton 이미지를 손쉽게 정렬하자~ 아이폰 Swift에서 UIButton 안의 이미지를 원하는 위치에 두려면 Edge Inset을 이용하여 좌우상하에 여백을 줘야 한다 여간 귀찮고 불편한 일이 아닐 수 없다 그래서 좀 더 편하게 이미지를 옮기는 방법을 소개한다 원리는 무지 간단하다 Edge Inset를 가로,세로 기준으로 이미지 크기와 함께 각각 계산해 주면 된다 왼쪽 정렬 (L: 왼쪽 여백, R: 오른쪽 여백, M: 여백, IW: 이미지 너비, BW: 버튼 너비) 가운데 정렬 이 두가지 경우만 이용하면 나머지 정렬도 모두 가능하다 코딩하면 다음과 같다 class ImageButton: UIButton { //가로 정렬 기준 (-1: 왼쪽, 0: 가운데, 1: 오른쪽) @IBInspectable var horizontal: Int = 0 .. 2017. 5. 30.