Technician
-
거대 조직Technician 2022. 12. 14. 18:11
보통 소프트웨어 아키텍쳐라고 하면 뭔가 대단한 비젼이나 생각이 있고 그거에 맞추어서 소프트웨어 모듈을 나누고 배치할것 같지만, 실제로는 조직별로 혹은 사람별로 나누어 주기 편하게 나누어 지는 경우가 더 자연스럽고 많다. 문제는 이 모듈들이 많아지고 (관여하는 사람, 조직이 많아지고) 복잡해질 수록, 내가 담당하는 부분 이외와 협업을 하기가 어려워지고 협업해야 할 사람(조직) 갯수가 3-4개만 넘어가도 소통에 소모되는 에너지가 더 들어가면서 뭔가 바꾸는게 어려워 지게 된다. 삼성이 한국에서 제일 잘나가고 여러가지 기술적인 트렌드를 빠르게 소화하고 받아드릴려고 하지만 여전히 삼성 마저도 이런 부분을 외국회사에 비해 제대로 못한다. 예를 들면 아래 애플 TV기능(1분 30초)은 TV에서 검색기능을 쓰면 자동으..
-
한번에 코딩Technician 2022. 8. 21. 03:33
고수들이 그림을 그리거나 글씨를 쓸때 한획에 확 그리는 장면처럼, 코딩도 키보드에 손을 올려놓고 한번에 다짜서 돌리고 나면 버그 없이 돌아가는게 고수일거라는 생각을 지금도 가지고 있다. 하지만 실제 이렇게 한번에 기능구현을 하려면 전체 구조가 머리속에 들어가 있어야 하고, 구조의 디테일도 3D 조감도 보듯이 머리속에서 확대하면 구석구석 다른 부분과 어떻게 연결되고 동작하는지가 다 그려져야 한다. 이런 디테일은 실제 코딩을 하지 않은 상태에서 머리속에 넣는게 쉽지가 않다. 이전에 비슷한걸 만들어 보았거나 혹은 코딩하고 단위 시험을 하면서 코드가 돌아가는 모습을 보면서 머리속에 넣어야 하기 때문이다. 그래서 에자일이라는 작게 만들고 시험하고 다시 만드는 방법이 각광 받는거고. 어제는 전체 구조도 다 머리에 ..
-
재귀Technician 2022. 4. 12. 17:56
프로그램을 하면서 만난 개념 중에 가장 특이한 개념은 재귀 함수(recursive call)다. 함수중 스스로 다시 자기를 호출하는 함수를 말하는데, 보통 Dynamic programing을 해결하는 데 사용된다. https://codingcompetitions.withgoogle.com/codejam/archive/2022 Code Jam - Google’s Coding Competitions Put your coding skills to the test as you work your way through multiple rounds of algorithmic coding puzzles for the title of Code Jam Champ and 15,000 USD. codingcompetition..
-
코딩 문제1: 큰 숫자 계산 (arithmatic operation with very big number)Technician 2018. 3. 25. 11:36
//given basic add,sub,mul,div function. // the problems ask to calculate any math operation till required precision like 20th decimal point.//since float type have limit to represent this kind of precision, number should be converted to decimal point only at last stage. during intermediate stage number should be represented as vulgar fraction. and number input is string type to handle big number..
-
나의 프로그래밍 수준Technician 2017. 8. 20. 18:04
처음 영국에 일자리를 잡으러 인터뷰를 보러다닐때 느낀건 삼성에서 일하면서 실무적인 디버깅 방법이나 업무적인 센스는 가지고 있었지만 리눅스 전반이나 프로그래밍에 전반적인 지식이 무척 얕다는 것이었다.어떤 모범이될 롤모델도 없었고, 모두들 자기 일이 바쁜 관계로 그저 단기적인 시각만 가지고 움직이는 코드를 만들는 대만 주력했었다. 결국 초기 면접에서 개발직으로 진입할 수준이 안되서 Customer Engineer로 일자리를 잡을수 밖에 없었다.제일 처음 개발자 면접은 ARM에서 봤었는데 그당시 너무나 내가 제대로 아는게 없구나 하는걸 절실히 느꼈다.다시 개발자로 커리어를 전환하는데 4년정도 공백이 있었다가 최근 2년 다시 개발자로 전환해서 개발자로 일하고 있다. 2년 정도 개발자로 영국에서 일하면서 다시 돌..
-
코딩Technician 2017. 6. 5. 05:09
코드를 짜는건 (코딩은 사실 바느질 하듯이 짠다고 하는게 더 어감에 맞는듯하다) 공을 공중에 여러개 돌리면서저글링하는 것과 비슷하다.단순해 보이는 코드도 사실 생각하거나 고려해야 할 사항이 많이 있고, 이런 사항이 많을 수록 공중에 떠있는 공의 갯수는 늘어난다. 예를 들면 대략 함수 3-4개 불리는 코드를 짠다면 관련된 함수들의 사용법을 숙지해야 하고, 관련된 내부 외부 변수들을 확인해야 하고. multi thread코드라면 shared 변수의 충돌이 없는지도.에러가 발생했을때 어떻게 처리할지도 생각해야 하고.다른 팀원과 업무가 나누어진 상태로 일이 진행되고 있다면 다른 팀원이 하는 일과 충돌하지 않는지 중간 중간 확인해야 하고. 전반적인 구조가 내 코드때문에 망가지지 않는지 확인해야 하고.이왕이면 새로..
-
Code reviewTechnician 2016. 11. 20. 05:13
Agile로 개발하면서 안할 수없는게 Code Review다. Git를 회사에서 쓰기때문에 Code Review는 Git하고 연동된 Gerrit을 쓴다. Gerrit은 아래 링크 참조.https://gerrit-review.googlesource.com/#/q/status:open모든 코드는 머지되기 전에 Review를 해야되고, 정해진 수의 리뷰어가 코드에 동의하지 않으면 머지를 할수가 없다. 리뷰에 대한 개인적인 느낀점은, 코드를 짜다 보면 특정 시각에 묶이게 되는데 이 고정 시각때문에 확연한 버그도 잡지 못하는 경우가 있다. 이건 Unit test로도 잡아낼 수 있지만, 상호 리뷰로 간단 하게 다른사람이 찾아내는 것도 가능한다. Software라는건 참의로 묘해서 무형이면서도 무지 복잡하고 거대할 ..
-
AgileTechnician 2016. 7. 24. 19:01
새로 들어온 직장은 개발 프로세스에 Agile을 본격적으로 하고 있다. 전직장에서도 Agile로 개발을 하고 있었지만 막 시작한 단계여서 부분적으로 했었는데 새로 들어온 직장은 모.. Agile에 사활을 건거쳐럼 팔을 걷어 부치고 한다. 제일 인상적인건 Continous Integration을 새로 온 직장에서 하고 있는 방식인데, 그 규모가 내가 상상한 이상이다. Continuous Integration을 하기위해서 대규모 Unit test혹은 Submodule test 인프라스트럭쳐를 공들여 잘 만들어 놓았다. 만일 개발자가 새로운 코드를 만들어 commit하면 자동으로 Unit test 혹은 Submodule test가 Trigger되고 전체 software 의 상태가 실시간으로 모니터된다. 물론 ..