블로그 이미지
kalstein

여러가지 프로그래밍 관련이나...신변잡기적인 글들을 남기는 블로그입니다. 지식은 나누는만큼 강력해집니다 ^^

Rss feed Tistory
잡동사니 2011. 5. 4. 08:50

KT가 와이파이 핸드오버를 한다??

http://news.nate.com/view/20110503n12574

이런 기사가 있어서...좀 이상한것 같아서 한마디 써본다.
이게 말이되나 모르겠다.

현재 WiFI라고 불리우는것은 Wireless Physical Network 규격중 하나인 802.11 a/b/g/n 을 칭한다.
그런데...802.11 규격이라는것이, 고정점 무선네트웍을 지향하는 규격인지라, Handover에 대한 스펙이 없는것으로 알고있고, 있다고 해도... 지원이 어렵다. (사실 스펙을 넣을 필요도 없다. 아래에 설명을 보시라...)

WCDMA 망에서의 H/O는 다음과 같이 시행된다.
1. 단말기가 WCDMA 기지국 신호를 (pilot 채널이라는게 있다) searching 하고있다.
2. 그리고 기지국 측에서 Neighbor cell 이라고 근처에 인접한 cell의 정보를 단말기에 이미 알려준상태.
3. 단말기가 현재 cell의 반경에서 좀 벗어난 느낌이 들면, 즉 neighbor cell의 신호가 훨씬 좋다고 생각되면
   H/O 요청을 기지국에 한다.
4. 기지국에서 H/O 과정을 시행한다.

WiFi에서 안되는 이유...를 알 수 있을것이다.
일단 wifi는 전국망 뭐 이런식의 네트웍이 아니기때문에, neighbor cell 을 등록하거나 그런 과정이 없고,
단말기가 wifi 신호가 떨어진다고 해서 따로 H/O 요청하는 과정이 없다.
걍 끊어져버린다 =_=;;;;; 혹은 이미 알던 다른 Wifi AP 가 있으면 거기로 붙긴한다.

추가로 KT가 여러개의 특허를 냈다고 하는데, 그건 걍 특허고... 802.11에 들어가는 표준스펙을 KT가 추가할순 없다. 갖가지 표준회의가 열리며 거기서 H/O 관련된 표준규격을 제시하고, 회의통과가 되어야되는건데 그런내용은 전혀 없고 특허만 갖고있다고 한다... 이건뭐지 대체 =_=;;;

뭔가 개발은 했을테니... 좀 더 알아볼 필요는 있을꺼같다;;;;
,
잡동사니 2011. 4. 30. 12:05

iPhone 3Gs GPS 문제발생...

배터리가 요새 좀 수명이 다된거 같아서...집에서 DIY 했다...
근데 ㅡ,.ㅡ;; GPS가 안잡히는 문제가 발생 ㅠㅠㅠㅠ
다시 분해조립 해봤지만...여전히 안잡힘...

이게 완전히 안잡히는건 아니고, 대충 3G 기지국 GPS 정보까지는 받아오는데,
정확한 실제 위치가 안잡혔다.
(아이폰 기본 맵어플에서는 위치 정확히 잡은 후에 깜박거린다.
그 전까지는 그냥 고정 원 모양만 나오고 원 크기도 제법 크다.)

그래서 1차로 SW reset.
http://forums.macrumors.com/showthread.php?t=517227
일단 이거보고 따라해봄...
안해봤던 탈옥까지 해서 다 따라해봤으나... 결국 실패.

결국은 내가 조립을 잘못했다는 결과에 이르렀다.
범위를 좁혀보자...라고 생각하고 대체 뭐가 어떤 부품인지 살펴봤다.

http://www.ifixit.com 를 살펴보니... 각 번호별로 어떤것을 담당하는지 알수있었다.

이 사진은 iPhone 3G 모델인거 같은데, 7번이 빠져있다. 3Gs에서 7번은 왼쪽 하단의 노란색 부분에 있다.
각 부분 설명을하자면...

1,2 -> 오른쪽 하단에 보이는 3개의 단자중 끼우는 방식인데 상판패널과 연결되어있다. LCD및 터치와 연관된다.
3 -> 1,2번 사이에 있는 녀석인데, 조도,근접 센서와 연관된다.
4 -> 아이폰 하단의 스피커,마이크 부분과 연관된다.
5 -> WiFi & GPS 안테나
6 -> WiFi & GPS & 이어폰 단자의 각종 센서 및 정보 관련 (일듯으로 추정됨)
7 -> 3G 안테나

WiFi & GPS 의 안테나는 USIM 뒤쪽에, 3G 안테나는 정확히는 모르겠으나, 3Gs의 외부에 나와있는 은테...가 그 역할을 하고있는게 아닌가로 추정되었다.
일단 나의 경우는 GPS가 제대로 동작하지않으니 ,5,6번이 문제라고 볼수있다.

세밀히 살펴보니 5번이 정확하게 들어가지않은것을 확인할 수 있었다. OTL
어설프게 끼워져있었던것. 어설프게 끼워져있어도, GPS를 제외하고는 정상동작하였으니 쩝;;;
여튼 안테나 주변의 먼지도 제거해주고, 깔끔히 재조립 후 테스트해보니...

굿!! 아주 잘된다!! ㅎㅎㅎ



결론 : DIY할땐 조립 잘하자 =_=;;


ps : 전화하는데 이상하게 암것도 안들려서 보니까... 근접센서 제대로 연결안됐나보다...ㅠㅠ 얼굴로 화면이 터치가 되어서 '소리끔'이 켜졌다 -.-;; 집에가서 3번 다시 연결해봐야할듯하다.

ps2 : 3번 재연결 후 근접센서 잘 동작함... 휴. 핀셋으로 잡아서 확실히 넣어주니 잘 동작한다. 다행!! 이제 전화도 아무 문제없이 사용!!

ps3 : 조도 센서는...고장났나? 제대로 동작안하는거 같은데 -.-;; 뭐 근데 사실 잘 안쓰니까 상관없긴함.
,
잡동사니 2011. 3. 16. 13:07

SKT 펨토셀에 관해서...

요즘 SKT에서 펨토셀로 2배가 빨라지니 뭐...이런 광고가 나온다.
그에 대한 진실이랄까... 여튼 썰을 풀어본다 ^^

사실 펨토셀을 도입하던 말던 WCDMA 3G의 데이터양은 정해져있다.
HSDPA의 경우 최대 21Mbps (Rel7 HSPA+ 기준. 갤럭시S2 부터 지원하는걸로 알고있다. 일반적으로는 7.2 or 좀 최신모델들은 14.4Mbps까지 지원하는 단말이 대부분이다) 라고 되어있지만... 저건 그냥 이상적인 값일 뿐이고. 보통 최신 스마트폰 유저들은 잘 해봐야 5~6  Mbps 정도일 것이다.

왜냐면... 무선자원을 공유하니까. HSDPA는 2ms 단위로 무선자원을 공유한다. 즉 HSPA+를 지원하는 단말기를 가지고있고, 해당 기지국을 혼자서 사용한다면 21Mbps의 속도를 즐길수있다. 2명이 붙으면? 10.5Mbps인셈. (그나마도 신호의 세기가 100%일때를 가정한거고... 좀 거리가 멀어지거나 하면 쭉쭉 떨어진다)

그럼 왜 펨토셀을 데이터속도가 2배 빨라진다고 광고하는걸까?
이유는 별거없다.  http://www.computertimes.co.kr/news/articleView.html?idxno=30793 를 참조해보면...
"콘텔라가 제조한 판도라-1C-PP는 최대 8명의 사용자"  라는점.

즉, 펨토셀이 설치되어있는 커피숍에 들어갔을 경우, 그곳에는 8명까지만 같이 무선자원을 공유한다는 소리다. 강남같이 사람들이 많은 곳이라면, 한 기지국에는 수십~수백명이 같은 기지국을 사용하게된다. 그렇게 열악한 상황에 비한다면 펨토셀의 환경은 거의 천국에 가깝다 ㅎㅎㅎ 그래서 데이터트래픽 속도가 많이 오를수 있다는것.



뭐...사실;;;  이런 기술적인 얘기들을 광고에 넣기도 힘들고, 이해도 안가니 그냥 속도 두배! 라고 광고하는것... 어찌보면 과대광고긴하지만, 어쩔수없달까 ^^
,
잡동사니 2010. 12. 3. 09:18

SW개발부서의 부서장이 SW개발자가 아니라면...

개고생한다. -_-;;;;

다음 제품에 대한 큰그림을 그리고 있는듯한데...
H/W accelator를 넣고 싶나보다. (별로 필요없을꺼같은데;;; 흠;;;)
뭐 그래서...현재 구조의 sw에서 어떤부분이 cycle이 많이 먹는가?를 궁금해하는듯.

그런데... 임베디드 시스템이다보니, PC와는 다르게 메모리가 정해져있다.
PC는 메모리 위치가 L2인지 DDR인지 구분하지않지만,
이쪽은 M2, M3, DDR 이렇게 3단계로 구분되어있다. (당연히 크기는 M2<M3<DDR)

그러다보니...cycle 측정해놓은 결과가 메모리에 너무 dependency를 가진다.
별거없는 함수인 주제에 M3나 DDR을 썼을경우 엄청난 cycle을 먹고있는것.
그래서 위에서 내려온 일이 뭐냐면....두둥!!!


'C코드를 보고 사이클 측정하기'


이건 뭐...;;;;; 아우 Tq qt
상황따라 loop도는거, banch 되는거...다 다른데 뭘 어케 측정하라는거냐;;;
특히나 optimizer 돌아가면 안드로메다로 차이날텐데.
다른 부서에서 그런용도로 사이클 측정한게 있던데.... 문서를 보니 이건 병림픽 가관이다.
CA(Computer Architecture)에서 항상 cycle을 많이 먹는 load/store가 1 cycle...로 가정.
하긴 뭐, ALU에 들어가는것도 C코드를 보고 눈으로 측정한거니...ㅋㅋㅋㅋ

함수별로 일일히 코드보고 하기는 겁나 귀찮고...해서 asm으로 분석하기로 했다 ㅋㅋㅋ
optimize 따위 꺼버리고, 대애~~충 asm 종류별로 분류해서...
아 정말 무의미한 짓을 왜하는지 모르겠네 -_-
O(n) 과 O(n log n) 의 각각 다른 알고리즘이 있을때, 그냥 생각하면 O(n log n)이 나빠보이지만....
실제 사이클은 또 다를수가 있는법인데;;;
(구현레벨의 차이라던가, 루프내부의 하는일이 많이 차이난다던가)
,
잡동사니 2010. 11. 12. 08:28

좋은 상사가 되려면...

트위터에서 시골의사님의 좋은 글귀를 보고는...잊지않도록 기록해둔다.

'칭찬은 모든사람이 모인자리에서.
질타는 개인적으로 불러서.'

그 반대로 행해지거나 칭찬은 전혀없는 윗사람이 너무나 많다.
아직 난 뭐...그다지 상사라는 위치랑은 멀지만...
그래도 언젠가는 내 밑으로 쭉 많은 사람들이 생길것이고
(이건...'그래도 안생겨요' 가 통하지않는다 ㅋㅋㅋ)
실행하도록 해야겠다. ^^
,
잡동사니 2010. 11. 11. 20:36

임베디드 시장도 x86이 점령중?

회사에서 뭔가 커~~다랗고 삐까번쩍한 구리 히트싱크가 2개나 달린...
무지막지한 보드들로 이루어진 기기가 있어서 저게 뭔가 알아봤더니...

엄훠나~

인텔제온이랜다 -_-;;; ㄷㄷㄷ
6코어짜리 2개 ㄷㄷㄷㄷ (네할렘인듯)
이전에 예전 버젼은 PPC CPU 1코어짜리 였다고한다.
그걸 최강 CPU 네할렘 듀얼로 업글이라니 ㅋㅋㅋ
아마 CPU 계산량만 따지면 거의...100배는 차이나지않을까 싶다 ㅡ.ㅡ;;;
(90년대 초중반 1core CPU vs 2010 최강 12core CPU)

문제는 ....
기존코드의 사용.
더불어 멀티코어의 사용에 전혀 익숙치않은 개발자들.
^^;;;

그래도 상당히 성능향상을 넉넉히잡았나보다.
대략 기존꺼 20배에 달하는 성능을 보장하도록 한것 같던데.
멀티코어만 조금 써준다면 남아도는 수치이지만...
현실안주하던 개발자들이었다면, 뭐...매우 힘든일이 될꺼다 ㅎㅎㅎ

여튼 조금 신선했달까. ^^
,
잡동사니 2010. 10. 21. 14:00

VIM setting & control

개인 세팅값 저장용.

_vimrc 에서 세팅한다.
colorscheme murphy
set ai
set ts=4 sw=4
set nobackup
set nu
set tenc=korea
set fileencodings=utf-8,korea
set ic

"set function key
map <F8> :nohl<CR>
map <F9> gd
map <F10> :nohl<CR> ''
map <F11> <C-]>
map <F12> <C-T>

<- control ->
tab 열기 = :tabnew
tab 이동 = ctrl + page up, down
,
잡동사니 2010. 10. 5. 23:26

야근이 많다는 것은...누군가가 무능력하다는 것이다.

우리나라 기업은 대체적으로 야근이 많다.
죽어라 일하는 야근도 있으며...눈치형야근도 있을것이고, 대기형 야근도 있을것이다...
어찌됐던 간에. 야근이 많다는건 무능력하다는거다...

첫째로, 일을 잘 했는데도 야근이 많을 수 있다.
이는 프로젝트 관리가 제대로 되지않았다는거다. 인력의 배정 및 기간, risk 관리...
뭔가 하나가 삐끗 (그래...하나만 삐끗하면 행복한거다 -_-) 했다는 소리...
상급자가 무능력하다는 거다.

둘째로, 일을 못하는 사람이라서 야근이 많을 수 있다.
똑같은 문제를 푸는데 일반적으로 1주일 걸릴게 그사람이 하면 2주일 걸리면,
야근이 되는거다... 회사에선 어차피 1주일 밖에 안주거든 -_-;;



문제는... 저런 문제를 해결할 생각이 회사측에서 있느냐 없느냐가 문제.
사실, 첫번째 문제는 알아내기어렵다. 상급자가 회사측의 꽤 고위급 임원인 경우는 어쩔건가?
자신이 행한 잘못을 시인하고 물러날건가? 그런일 없다 -_-;;
그리고 기간을 정하는 것도 널럴히 정할까? 그럴일 없다 ;;;;;;;;;;;;;;;;;;;;;

두번쨰 문제도 역시 어렵다. 일 잘하는 사람에게 더 많은 일을 줘야 전체 야근을 줄일수있다.
똑같은 평가 및 연봉의 위치에 있는 사람인데 일을 더 많이 할당하는것도 쉬운게 아니다.
해결하려면 애당초 인사 단계에서 적절한 사람을 배치했어야한다.



그런데...4여년을 현 직장에서 일해오면서,
대부분의 이유는, 첫번째가 좀 더 많은듯 하다. (뭐, 80:20 정도?)
대외적으로는 스마트하게 불필요한 야근을 줄이자...고는 하고 있다만...글쎄 ^^;

,
잡동사니 2010. 9. 16. 14:56

회사가 smart하게 생각처럼 안굴러가는 이유...

뭐 딱히 회사라기보다는 모든게 그럴지도. (정치라던가...기타등등)

조금 밑에 사람들이 실질적인걸 더 잘 알고...
점점 위로 갈수록 정확한 정보가 살짝 멀어지며...
일에 대한 결정은 위에사람들이 하고...
그런거에 지친 잘 아는 밑에 사람들은 딴길로 새고... (옮기거나 기타등등)
잘 모르는 밑에 사람들은 어떻게든 살아남아 위로 올라가고...

자 다시 처음부터 루프를 돌아봅시다... ㅋㅋㅋㅋ



자신이 잘 모르는걸 잘 모른다고 말하는게 그리 어려운 일인가 보다...
,
잡동사니 2010. 9. 13. 13:26

iOS4가 Multitasking이 안된다고?

어제 인터넷서핑중에...저렇게 주장하는 사람들이 제법 있음을 알았다.
아이폰유저이긴하지만 애플빠도 아니고,(애플빠였으면...아이맥 등도 구매했겠지) 그렇다고 안드로이드 진영을 까지도 않지만, (안드로이드 자체를 깐적은 단 한번도 없다. 단지 안드로이드 진영의 한계점만 언급할뿐) 무작정 어설픈 지식으로, iOS자체를 까는건 뭐랄까. 컴퓨터 공학을 전공한 자로써 잘못된 지식이 전파 되는것 같아서 한 글 남겨본다... (그래. 나 발끈했다 -_-)


일단 까는 사람들 내용은 이랬다.
1. iOS의 멀티태스킹은 언론플레이다. 실질적으로는 제대로 지원도 못한다.
2. 어플이 멀티태스킹에 대비해서 프로그래밍을 해야된다는게 말이나 되나.
3. 그나마 멀티태스킹이라고 하는 수준은 DOS 수준밖에 안된다.

쩝... 이게 참 말이나 되는건지. ㅋㅋㅋ
일단 용어 정리부터 해보자. 멀티태스킹이란 뭘까.
간단히 우리가 PC사용할 때 보면, 음악, 메신져를 켜두고, 웹페이지도 열어놓고, 게임도하고. 이런거다.
그리고 전문용어 하나 정리하자면 "context switching"
뭐 정확하게 하자면, task가 전환될때 CPU내의 register를 각 stack에 백업을하고 어쩌고저쩌고...지만,
그냥 간략히 말하자면, 인터넷 쓰다가 창을 최소화 시켰다가, 나중에 복원해도 똑같은 페이지가 보이는것.
그정도로 하자.

하나더. 스마트폰 사용중에, 멀티태스킹이란 어떤걸까.
음악(ipod던, 소리바다던 벅스던 기타등등)을 켜두고, 웹페이지를 볼수 있고,
그 와중에 메신져에서 친구가 메세지 보내주면 그에 대해 답해주고.
대부분의 경우가 이거다 그치? (딴 시나리오 얼마든지 추가하시라~)

자, 1,2,3 을 반박해보도록 하자.



1. iOS의 멀티태스킹은 언론플레이다. 실질적으로는 제대로 지원도 못한다.

솔직히 iOS3의 멀티태스킹은 좀 거시기하긴하다. 무조건 어플을 껐다가 키면 초기상태로 빠진다.
위에서 언급했던 "context switching"이 제대로 안된달까?
반면 iOS4 부터는 좀 다르다. 어플을 껐다 켜면 아까 껐던 상태 그대로 켜진다.
위에서 말했던 스마트폰 사용중 멀티태스킹 상황을 지원못하는가?
당연히 지원한다. 일단 크게 광고했던 멀티태스킹 기능은 스트리밍 음악 서비스와, GPS 기능이다.
이를 통해, 네비게이션, 음악 듣기 등이 멀티로 가능하다.


2. 어플이 멀티태스킹에 대비해서 프로그래밍을 해야된다는게 말이나 되나.

스마트 폰인데도 불구하고, PC 상황과 동일하게 동작하는걸 원한다.
즉, 음악파일을 플레이하면 플레이하는거지 왜 백그라운드에서 동작하는 다른 API가 있냐는거다.
안드로이드는 다 잘 되는데 왜 iOS만 그렇냐는거다.

스마트폰은 PC환경과 조금은 다르다. 어차피 유저는 화면에 띄워져있는 것에 집중하고있고,
백그라운드로 CPU를 왕창쓰는 어플이 돌아가야 할 이유도 없다.
(Seti@Home 을 스마트폰에서 띄우고 쓰실 분 계신가? MP3 Encoding을 하실건가?)
멀티태스킹은, GPS나 음악 스트리밍 서비스 정도만 해도 충분하다.
더 필요한게 있으면 다음 버젼 iOS SDK 에 추가가 되겠지.
어플 개발자가 멀티태스킹으로 돌아야된다고 판단되면 해당 API를 쓰라는거다.
이게 뭔가 논리 배반적인가?

보다 기술적인 얘기로 들어가자면, 보통 OS의 task는 3가지 상태를 가진다.
Ready, Suspend, Running.
Running은 말 그대로 지금 돌아가고 있는 녀석.
Ready는 Running 할 준비가 된 녀석.
Suspend는 지금 돌 필요가 없는 녀석.

iOS에서는 지금 유저가 사용중인 단 하나의 어플만 Running으로 보면 된다.
다른 어플로 전환하거나, 홈버튼으로 어플을 나가버리면 원래 있던 어플을 Suspend로 바꾼다.
단, 멀티태스킹 API를 사용 하는 녀석들은 계속 Ready <-> Running 상태를 유지할것이다.
그래서 실제로 백그라운드 음악틀기,GPS잡기가 될꺼니까.
Suspend로 가는 녀석들은 아예 신경을 안써도 되는 구조이다.

유저가 수많은 어플을 껐다가 켰다가 할것인데,
그 모든 어플들을 계속 Ready <-> Running 상태를 유지하는게 옳은가, Suspend로 치부해서 신경끄는게 옳은가?
휴대폰 배터리가 무한이 아닌 다음에는 당연히 후자가 낫다.
뭐...아무것도 안하는 어플이 배터리를 소모하는게 맞다면;;; 할말은 없다 ㅡ.ㅡ;;;


3. 그나마 멀티태스킹이라고 하는 수준은 DOS 수준밖에 안된다.

DOS상에서의 램 상주 프로그램이 가능했던 점에 비추어서, 저런 말을 하는 사람도 있었다.

위키에서 램 상주 프로그램에 대한 설명.
============================================================
램 상주 프로그램(TSR, Terminate and Stay Resident)은 도스 운영 체제 상에서 제한된 멀티태스킹을 가능하게 하는 하나의 방법이었다. 수많은 하드웨어 드라이버 프로그램들은 TSR의 형태를 취했으며, 여러 유틸리티와 바이러스들이 이러한 형태를 취하기도 했다.

MS-DOS에서는 한 번에 오직 하나의 프로그램만 실행될 수 있으며, 종료될 때는 보통 시스템 호출 INT 21h/4Ch를 호출하여 기본 셸 프로그램인 COMMAND.COM에게 제어권을 돌려 주었다. 이렇게 종료할 경우 프로그램이 사용하고 있던 메모리와 자원들은 모두 초기화되지만, INT 21h/31h를 호출하여 종료할 경우 프로그램의 일부가 램에 계속 남기 때문에 이를 통해 램 상주 프로그램이 구현되었다.
============================================================

DOS는 멀티태스킹 자체를 고려하지않은 OS이다.
그래서 어쩔수없이 2개의 프로그램을 굴리기 위해 저런식으로 썼는데,
그것과 iOS의 멀티태스킹이 비슷하다는 거다. -_-;;
뭐 사용자가 얼핏 봤을때 비슷할 수도 있다.
그런데 중요한 점은 DOS 상황에서 해당 어플이 무한루프가 빠지거나, 잘못된 연산으로 죽는경우,
OS 자체가 죽어버린다. 재부팅 말고는 해결책이 없다.

iPhone을 쓰다가 간혹 어플이 지혼자 죽어버리는 경험 해보셨을것이다.
어플의 버그로 어플이 비정상종료된 상태이다.
이때 스마트폰 자체가 죽던가? 아니면 어플만 종료되던가?
이게 DOS 정도의 OS인가??
(선점형 Kernel이냐 비선점형 Kernel이냐를 따지시는 분들은 저리로 훠이훠이~
지금은 단순히 user space만을 논하고 있다.)


이상 반론 끝.
참 뻘글을 남겼을 수도 있지만, 저런 이상한 말을 듣고는 바로 질문 하는 사람들 있었다.
'iPhone 멀티태스킹 안되나봐요? 그럼 음악 들으면서 웹서핑 안되겠네요...'
이런게 문제다. -_-

정확히 알지 못하고 정확히 표현하지 못할꺼면 말을 하지말던가...
,
TOTAL TODAY