본문 바로가기

Programming

(123)
java : 문득 왜 로컬변수는 초기화를 안할까에 대한 생각. field variable. heap memory에 올라가는 변수.local variable. stack memory에 올라가는 변수. heap, static memory에 올라가는 기본형 변수들은 초기화가 된다.그러나 stack memory에 올라가는 변수들은 초기화되지 않는다. stack memory 의 특성은 push, pop 등을 하며 어떤 목적을 가지고 계산을 하는데에 쓰이는 메모리.즉, local variable은 프로그래머가 어떤 목적을 가지고 선언을 하며 그 목적은 계산이다.data를 선언할 때 이미 목적을 가지고 있기 때문에분명 data를 할당할 것이라 생각하기때문에 설계차원에서 초기화를 하지 않도록 설계되었다. (내 생각)대신 heap memory에는 기본으로 초기화를 해준다.그 값이 ..
persona 를 활용한 예 업무로 기존에 제공되던 서비스에 대한 리뉴얼을 맡게 되었다. 처음에 리뉴얼 전에 유지보수가 너무 힘든 시스템을 최대한 유지보수가 쉬운 방향으로 코드레벨에서 수정을 하였다.우선 유지보수가 쉬운 방향으로 코드레벨을 수정하고 나니 한가지 문제에 봉착했다.말은 리뉴얼인데 기존 시스템에서 더 나은 방향으로 도저히 생각할 수가 없었다.그래서 곰곰히 생각하다보니 나를 이렇게 꽉 막히게 만든 부분이 서비스의 메뉴에 있다는 데에 잠정적으로 결론을 내렸다.메뉴의 구성이 개발자의 편의성에 맞추어져있었고,개발자의 편의에 맞춰진 이 메뉴는 나로 하여금 더 이상 더 나은 생각을 하지 못하게끔 막고 있었다. 그래서 서비스가 가진 특징들부터 정의를 해보았고 각각의 특징들을 기준으로 서비스의 메뉴를 재구성하기 시작했다.한창 메뉴를 재..
javascript : string 은 immutable call by referrence와 call by value 에 대한 차이점에 대한 이해가 중요합니다. javascript 의 primitive type 들은 모두 call by value 로object type 들은 모두 call by refrerrence 로 데이터 연산이 일어나는데.string 은 immutable 성격을 가지게 하기 위해 object 이지만,call by value 로 데이터 연산이 일어납니다. 위의 경우를 이해하고 있지 않으면,코드 재사용시에 발생할 수 있는 오류를 막을 수 있습니다.
android : multiple custom scheme 위에 보시면 알 수 있듯이,하나의 intent 에서는 2개의 data 를 가질 수 있습니다.이를 몰라 같은 intent를 data만 달리 2개를 설정해놓고 종일 헤메었다지요... 위처럼하면 하나의 activity 에서는 2개의 커스텀 스키마를 가질 수 있습니다.보통 쓸 일이 없으실텐데요. (호스트, 파라미터 등 분기 요소가 많으니)저같은 경우엔 카카오SDK가 필요했는데 몇몇 기능중에는카카오 개발자에 등록된 app id에 의존하고 이 app id가 scheme를 따로이 가지더군요. 그래서 위와 같이 해결을 하였습니다. (아 안드로이드 어렵네요... 겔로그 하나 만들어보고 수년만에 만져보는데 멘붕데이의 연속 ㅎㅎ)
facebook : share url debugging facebook share 는 share 되는 페이지를 미리 읽은 후 이해하고해당 페이지의 meta tag 등을 이용하여 title, summary, description, 대표 image 등을 가지고 facebook feed 상에서 미리보기 같은 것을 보여줍니다. 이때, share 되는 페이지가 제대로 미리보기가 가능한지 알 방법이 없어 삽질하는 경우가 있는데요,페이스북에서 이러한 삽질을 최소화 시키기 위해 좋은 기능을 제공해주네요.https://developers.facebook.com/tools/debug/ 위 페이지의 네이밍을 보면 알 수 있듯이 디버깅이 가능합니다.전 위의 페이지를 이용하여 share 되는 페이지의 meta tag 를 맞춰주었습니다.약 몇시간 동안의 삽질 끝에 영어울렁증을 참고 ..
jquery : jquery mobile, swipe.js 를 함께 쓰지 마세요. jquery mobile 과 swipe.js 간에는 충돌이 발생합니다.(jquery 1.8, jquery mobile 1.3x, swipe.js 2.0) 업무로 코드를 모두 따라가본 것은 아니지만 서로간에 충돌이 발생하여swipe 초기화 이후에 진행이 되질 않습니다.따라서 swipe.js 를 쓸 일이 있을 때에는swipe.js 를 링크한 페이지에선 jquery mobile 을 링크하지 마세요.
html : 전화번호 텍스트 포맷으로 인해 폰트 색이 바뀌는걸 막으려면 meta tag를 이용하면 됩니다. head 사이에 위 메타태그를 적용해주면 전화번호 포맷으로 인하여 폰트 색이 원치않게 바뀌는 것을 막을 수 있습니다.(아이폰에서 텍스트 포맷이 전화번호와 같다면 자동으로 폰트 색이 바뀌고 원하는 색을 지정해주어도 적용되지 않습니다. 따라서 위 meta tag를 이용하여 색이 바뀌는 걸 막았습니다.)
.net의 webform controller 와 jquery mobile 조합은 최악. 바쁘다는 핑계로 웹개발시에 작성했던빠른 생산성을 자랑하지만 더티코드가 난무하게 되는 .net의 webform 컨트롤러.jquery mobile (JMO) 과는 너무나 안맞겠습니다.닷넷에 대한 이해를 시간 핑계로 못하고 주말에도 리서치하고 작업하는데view page는 정말 빠르게 생산해낼 수 있습니다.작동하는지 여부는 일단 뒤로 제껴두고 생산성은 정말 대단합니다. 하지만. 온갖 code generator로 생산된 code들로 일단화면제어가 사실 매우 힘듭니다.여기서 일단 asp.net 의 webform controller 사용을 절대 숙고해봐야합니다. 그리고 뭐 일정을 핑계로 합리화하면서 webform controller 사용을 불가피하게 사용하게 되는 경우...(보통 웹개발시엔 webform contro..