본문 바로가기

설명

어플 수익 공개 포함 + 안드로이드 앱 admob 광고 넣기 (소스 포함) 안드로이드 앱에 광고 넣기 간단하게 말씀드립니다. 아래 4군데에 각각 소스를 넣으면 됩니다. 수익은 하단 영상을 참고하세요~! 0. build.gradle 파일 내 compile 'com.google.android.gms:play-services:6.+' 1. AndroidMainfest.xml 파일 내 더보기
AWS 강좌 처음 이신분 바로 보세요! 그냥 쉽게 쫙 바로 이해하실 수 있게 정리했구요. 무료책도 있으니 보세요~! https://youtu.be/SEF_LIVsDN4 더보기
시대별 한국사 한국 영화들 + 설민석 해설 + 유투브 영상 전용 어플 역사 영화를 모두 모았습니다! 영화 다운로드 한국사 관련 역사 영화를 모두 모았습니다. 제가 역사는 잘은 모르지만, 역사관련 영화를 굉장히 좋아하는데요. 어느 때부터 최고의 한국사 설민석 선생님께서 재밌게 영화와 역사를 설명을 해주셨는데요. 그 영상을 모두 모아서 편리하게 볼 수 있게 앱을 만들었습니다. 다운로드 https://play.google.com/store/apps/details?id=com.hitouch.moviehistory 한국사 시대별 영화 + 설민석 선생님 해설 영상 + 유튜브 영상 - Google Play 앱 시대별 역사와 한국사 설민석 선생님 해설 영상 그리고 유투브 영상등을 편리하게 보실 수 있습니다! 「645년」 안시성 「660년 」 황산벌 「668년 」 평양성 "「1375년 고려 우왕 1년」 무사" 「고려말 」 쌍화점 「.. 더보기
멕시코 국기의 의미 - 선을 넘는 녀석들 중에 나라들 국기 언제 봐도 헤깔려요. 이번에 선을 넘는 녀석들이라는 프로그램을 보면서 설민석씨가 멕시코 국기에 대해서 설명을 해주시는거에요. 어쩜 저렇게 귀에 쏙쏙 들어오게 설명을 할까요. 멕시코 나라를 세울 때 독수리가 뱀을 물고 날아가다가 선인장 위에 멈출 것이다. 그러면 거기에 나라를 세우라는 얘기로 시작되었다고 해서 국기에 정말 독수리가가 뱀을 물고 선인장 위에 서 있는 거예요. 이런식으로 국기를 외우면 다 외워지겠다는 생각이 들더라구요. 아 전세계 나라, 수도, 국기 다 외워버리고 싶은데, 마음만 그렇고, 항상 그런 대화가 오갈 때 고개가 숙여지더라고요. 이제 아이들도 자라는데, 아이들보다 잘 알아야 할거 같아서요. 그래서 직접 만들어봤습니다. 국기랑 놀자~국기랑 놀자 아이들에게도 알려주시고, 우리.. 더보기
HTML5, 기존 HTML과 무슨 차이일까? HTML에 갑자기 5가 붙으면서 뭔가 많이 바뀐 듯한 느낌을 준다. 무슨 차이일까? 태그, 속도? HTML5도 HTML을 근간으로 한다. HTML태그라는 것들을 모임이고, 일종의 스크립트 언어이다. 가장 중요하고 특징적인 발전은 Socket 일 것이다. Socket은 통신에서 사용된다. 네트워크에서 통신을 할 때 Socket을 만들고, 그 Socket을 통해서 데이터를 주고 받는다. 서버와 클라이언트간의 통신을 한다고 했을 때 서버와 클라이언이언트에 각각 Socket이 생성되고, 이 Socket은 통신을 하기 위한 주체가 된다. 이것이 HTML상에서 구현가능하도록 만들어진 것이다. 왜 획기적이고, 큰 변화일까? 그것은 HTML이 동작되는 원리에서 생각해볼 수 있다. HTML은 홈페이지, 웹사이트의 컨텐츠.. 더보기
빅데이터의 실제적인 이야기 데이터가 많다고 해서 빅데이터라는 말로 만들어졌을 것이다. 데이터가 기존에는 필요한 정보들 위주로 저장이 되어서 사용되었다. 사용자 정보라고 하면 언제 태어났고, 어디 살고 있고, 취미가 무엇인지 정도 이것을 가지고, CRM이라고 고객 관리 데이터로 사용을 했다. 데이터베이스는 정형화된 틀 속에 값을 넣고, 그 값이 틀림이 없게 관리하는 것이 기존 데이터베이스의 역할이였을 것이다. 빅데이터는 그 사람의 정보뿐 아니라 그 사람의 행동까지도 기록한다로 생각하면 된다. 그 사람이 하는 행위도 다 기록에 남는다. 그 사람이 무엇을 샀고, 어디로 갔고, 무엇을 먹었는지 사실 과거에 불필요하다고 생각했던 데이터들 또는 데이터베이스에서 구지 관리하지 않았던 시계열(시계열은 시간축을 X로 하여 흘러가는 데이터들) 의 .. 더보기
DHCP는 편리하다. DHCP는 Dynamic하게 IP를 부여 받고, 제공하는 방식이다. IP를 구지 설정하지 않고, DHCP로 설정을 하게 되면 자동으로 IP를 부여 받게 된다. IP를 구지 몰라도 되고, 셋팅하지 않아도 되어 편리하다. IP는 고정IP가 있고, 동적IP가 있다. 고정IP는 일반적으로 컴퓨터나 서버에서 지정된 IP를 설정을 한다. 고정 IP를 사용한다. IP는 00.00.00.00 이런식으로 구성된다. 이런 경우는 사용하고자 하는 수만큼 IP가 확보되어야 한다. DHCP는 동적 IP를 사용한다. IP설정을 하지 않는다. 그럼 DHCP서버에서 임의의 사용할 수 있는 IP를 부여해주고, 그 IP 부여 받은 것으로 인터넷을 쓸 수 있다. 대개 집에서 인터넷 통신사를 통해서 인터넷을 할 때는 고정 IP로 사용하지 .. 더보기
압축의 원리 간단하게 압축이라는 것은 흔하게 많이 접해본 말이다. 원래 크기보다 줄인다라는 의미이다. 어떻게 하면 원래 크기보다 줄일 수 있을까? 압축이 되는 것이 무엇이 있을까? 원리는 무엇인가? 일반 생활에서 압축은 여유 있는 공간을 줄임으로 압축이 될 것이다. 압축을 하는 것은 부피를 줄이는 것이다. 컴퓨터에서의 압축의 대상은 파일이다. 파일의 크기를 줄이는 것이다. 예전에는 파일의 크기를 줄일 필요성이 더 컸다. 디스크 용량도 부족하고 네트워크 속도도 느리기때문에 줄여야 이동도 가능하고, 전송도 가능했다. 그래서 여러가지 압축 기술들이 나오기 시작했다. 외국 제품들이 많이 나왔는데, RAR, ZIP 이런 확장 파일을 갖는 파일들을 만들어주고, 해당 압축된 파일을 풀어주었다. 우리나라에서는 대표적으로 알집이 있었다. 알.. 더보기
TCP/IP의 시작 인터넷의 시초는 1969년 미국 국방성의 연구로부터 시작됐다. 기술 발전은 전쟁, 포르노 산업등에서 시작됨은 공공연한 사실이다. 그리 유쾌한 일은 아니지만, 사람들의 필요에 의해서 출발하고 그것이 사업이 되었을 것이다. 아파넷이라고 불리었고, 대학 연구기간과에서 실험적으로 시작이 되었고, 서로간의 통신을 위해서 시작이 되었다. 아파넷은 점점 커지기 시작했다. 그런데, 상호간의 접속을 위한 프로토콜(일종의 약속)이 필요했고, 이를 위해서 1982년 OSI라는 프로토콜이 만들어졌다. 그런데, 표준규약이 또는 통신사들이 내세우는 표준이라는 것이 뒤떨어지고 또는 너무 무겁기 때문에 실제로는 사용을 안하듯이 이 표준을 뒤로 하고 TCP/IP표준이 더 많이 사용하게 되었다. TCP/IP 프로토콜도 OSI 7 lay.. 더보기
NAT는 사설과 공인 IP 변환기 NAT는 Network Address Translation이다. 말 그대로 하면 네트워크 주소를 변환해주는 것이다. IP는 내부 IP와 외부 IP 개념이 있는데, 외부 IP의 경우는 그 주소로 외부에서도 데이터를 전달할 수가 있다. 유일하게 존재하는 주소가 되고, 그것은 어디서든 접속이 된다. 내부 IP의 경우는 임의로 지정을 할 수가 있고, 내부에서만 연결이 가능하다. NAT는 내부 네트워크에서 외부로 통신을 하기 위해서 주소를 변환해주는 서버이다. 통신을 하기 위해서는 상호간에 외부 또는 공인 IP가 있어야 한다. 내부 네트워크인 경우에 외부에서는 접속을 할 수가 없다. 이를 위해서 NAT는 외부에서도 접속할 수 있는 IP를 제공한다. 외부와 통신이 가능하도록 해당 서버에 IP를 부여해준다. 이렇게 .. 더보기
Why? 클라우드, 클라우드인 이유, 제공되는 기능들 예를 들면 명절에 철도 예매 서비스, 연말 정산 서비스 등 몇몇개 서비스는 플랙서블한 컴퓨팅 자원이 필요한 것들이다. 현재 어떤 서버 구조로 서비스 하고 있는지 보안사항이여서 알 수는 없겠지만, 매우 적합 할 것으로 보인다. 때로는 게임업체에서도 우리나라 게임이라면 시간대별 게임서버 댓수를 달리 함으로써 효율적인 서버 관리를 할 수도 있다. 아무래도 새벽 2-6시까지는 게임하는 사람들이 상식적으로는 적을 것이다. 낮시간에도 적을 수 있다. 하지만 휴일이나 주말에는 늘어날 수 있다. 이러한 때에 맞춰서 서버를 유연하게 관리한다면 비용적인 측면에서 좋고, 프로모션 같은 것을 진행했을때 갑자기 늘어나는 트래픽을 대응할 수 있을 것이다. 클라우드 이용 시 모델에는 퍼블릭 클라우드가 있고, 프라이빗 클라우드가 있.. 더보기
SaaS vs PaaS vs IaaS SaaS는 Software as a Service이다. 기존 방식으로 보면 소프트웨어는 구매를 해서 설치하고 사용을 했다. 장점과 단점이 존재할 수 있다. 일시에 구매를 해야 한다는 점이 그리고 사용하지 않을 수도 있다는 점등에서 진입 장벽이 높았을 수도 있다. SaaS는 소프트웨어를 서비스방식으로 제공한다는 취지이다. 과거 마이크로 소프트 워드 제품을 구매해서 사용해야 했다면 구매 당시에 비싼 제품 비용을 내야 하는 단점과 생각했던 거보다 많이 사용하지 않을 수 있는 리스크가 있다. 이를 제공처에서 한번의 라이센스 구매가 아니라 사용시에 비용을 지불하는 식으로 제공하는 것이다. 그리고 설치방식이 아니라 스트리밍 방식으로 서비스 처럼 제공을 한다. 그리고 데이터도 서버에 저장할 수 있다. 물론 서버는 개.. 더보기
클라우드 컴퓨팅이란? 장점은? 클라우드 컴퓨팅은 클라우드라는 말은 구름이라는 뜻에서 나왔다. 어딘가 존재하는 컴퓨터들이다. 어딘가는 존재한다. 하지만 구지 우리가 알아야 하는 것은 아닌 개념이다. 물리적으로 어떻게 구성되어 있는지 몰라도 된다. 모른다는 것은 큰 리스크이기도 하지만, 편리함을 주는 부분도 있다. 과거 서버 하나를 구입해서 운영을 하는 것까지는 큰 비용과 시간이 들었다. 클라우드 컴퓨팅은 이미 준비되어 있고, 그것을 바로 이용할 수 있다. 서버를 구입하는 것은 매우 큰 돈이 든다. 수천만원에서 수억까지 투자를 해야 서버를 구입할 수 있다. 하지만 클라우드는 몇만원부터 시작이 가능하다. 잘만 이용하면 Free Tier 같은 혜택을 통해서 매우 저렴하게 운영을 할 수도 있다. 편리함과 비용측면이 있는데, 보안 관점에서 우려.. 더보기
클라이언트 and 서버 그리고 WAS, DB서버 클라이언트는 우리가 보고 있는 컴퓨터, 스마트폰이 클라이언트이다. 클라이언트는 손님이기도 하고, 요청자이기도 하다. 엄밀하게 말하면 컴퓨터나 스마트폰이 클라이언트는 아니다. 그 운영체제 내에서 클라이언트로 동작되는 것들이 클라이언트이다. 클라이언트로 동작된다는 것은 요청자 역할을 하는 것이다. 그리고 서버로부터 응답을 받아서 화면에 결과를 보여준다. 대표적인 것이 브라우저인 인터넷 익스플로러이다. 스마트폰의 대부분의 앱은 클라이언트이다. 서버로부터 응답을 받아서 보여준다. 서버와 클라어인트 구도라는 것은 이렇게 서버에서 응답을 해주고, 클라이언트에서 응답을 받아서 보여주는 구조인 것이다. 클라이언트는 컴퓨터 같은 경우는 설치하기도 한다. 카카오톡 앱도 PC버전이 나와서 설치하여 사용할 수가 있다. 컴퓨터.. 더보기
건축물의 구조 설계 같은 시스템 아키텍쳐 시스템 아키텍쳐는 시스템의 서버들의 구성 모습이다. 구조라고 말할 수도 있다. 시스템 구성도로 표현을 하기도 한다. 서버간 연결하는 구성도만을 얘기하는 것은 아니고 좀더 깊은 내용까지 아키텍쳐라고 할 수 있다. 예를 들면 어떤 소프트웨어로 구성을 할지에 대한 것도 아키텍쳐라고 할 수 있다. 이렇게 아키텍쳐를 전문으로 구성하고 설계하는 사람들을 아키텍트라고 한다. 왠지 아키텍트라고 하면 산출물이나 내용을 말하는거 같긴 합니다만, 역할자를 말한다. 시스템 아키텍쳐는 시스템의 기능이나 성능 면에서 중요한 의미가 있다. 어떤 아키텍쳐를 가지냐에 따라서 확장이 용이할 수도 있고, 반대로 어려울 수도 있다. 따로는 SOF(Single of Failure)라고 해서 실패 포인트를 가질 수도 있다. 이러한 것을 보완해.. 더보기
정보시스템 감리의 실제적인 업무 내용 정보시스템에 있어서 감리 영역은 시스템이 잘 구축되어 있는지 점검하는 것이다. 그 기준은 설계 문서가 될 것이다. 설계 대로 구축이 되어 있는지 측면이 구현이 잘되었다고 할 수 있다. 설계도 확인을 해야 한다. 요구사항 대비 요구사항이 반영이 잘되었는지를 봐야 한다. 요구사항이 설계에 반영이 되고, 실제 구현이 잘되었는지까지 봐야 한다. 그리고 구현체가 문제는 없는지를 봐야 한다. 결국 다리를 건축했다고 하면 감리는 이 다리가 원래 설계 목적에 맞게 잘 만들어졌는지 봐야 한다. 안전점검을 하듯이 감리를 하는 것은 시스템이 잘 운영될 수 있게 만들어졌는지 체크를 해보는 것이다. 이론적으로는 그러하고, 현실적인 대부분의 시스템 감리는 일주일 정도의 시간을 가지고 한다. 주로 산출물 리뷰 및 인터뷰로 진행이 .. 더보기
소프트웨어 유지보수도 중요하다. 유지보수라는 것은 구축된 시스템을 운영 및 관리해주는 것이다. 사실 이미 구축된 시스템이라면 많은 일손이 안들수도 있다. 잘 돌아가기만 하면 될 것이다. 물론 B2C 서비스의 경우 상황은 다를 수 있다. 앞서 얘기한 것도 있지만, 린 개발방법론이라든가 DevOps를 한다면 유지보수라는 측면보다는 지속 개발이라는 것이 맞을 것이다. 계속된 요구가 있고, 개선 사항이 있을 것이다. 운영 중에도 개발을 많이 한다. 기존 시스템들은 대개 1.0, 2.0 이런식의 버전을 구분하고, 고도화 프로젝트등을 진행해서 기존 시스템을 사용하다가 어느 순간에 개편 내지 대체를 한다. 하지만 이런 서비스라든가 최근 시스템들은 지속적인 기능 업그레이드 내지는 개발을 한다. 기존과 같은 유지보수이든 지속 개발 관점의 유지보수이든 .. 더보기
매번 헤깔리는 오버로딩, 오버라이딩 오버로딩과 오버라이딩은 기본적으로 객체 지향 개념 중 하나이다. 객체를 기반으로 개발을 한다고 할 때는 그 객체가 가지는 속성을 잘 활용을 해야 한다. 객체를 가지고 여러가지 관점으로 이용할 수 있어야 한다. 객체를 지정하고 한번만 사용하고 약간 내용이 바뀐 것을 다시 객체를 만들어서 해야 한다면 비효율적이다. 오버로딩과 오버라이딩은 재사용관점으로 이해해도 된다. 오버로딩은 함수를 호출 할 때 동일한 이름의 함수로 정의 하되 인자의 값을 형태나 개수를 달리하는 것이다. 그리고 호출 할 때 인자의 값이나 개수를 넣으면 알아서 해당 함수로 불리는 것이다. 편리성도 있고, 재사용성도 있다. 오버라이딩은 상속 개념을 이해해야 한다. 상속도 객체 지향의 중요한 개념 중 하나이다. 상속을 하여 재사용을 한다. 예를.. 더보기
플랫폼! 기차 기다리는 곳이 플랫폼 플랫폼 들어본 듯하지만, 막상 설명하긴 좀 어려운 말이다. 무엇을 플랫폼이라고 할까? 카카오톡이 플랫폼일까? 네이버가 플랫폼일까? 카카오톡이나 네이버는 서비스라고 한다. 서비스에 더 가깝다. 플랫폼은 뭘까? 기차들이 오가고 역에 멈춘다. 역에 보면 기차가 멈춰서 사람들이 탑승하는 곳이 있다. 여기가 플랫폼이다. 플랫폼은 기차가 머무르는 곳이고, 사람들이 탑승하는 곳이다. 플랫폼 자체가 서비스는 아니다. 서비스를 위한 기반은 될 수 있다. 카카오 자체가 여러가지 서비스를 품고 있다. 서비스라고 보는게 맞지만, 그 안에는 여러가지 플랫폼이 기반을 이루고 있다. 플랫폼 사업을 한다고 하는데, 이는 특정 서비스를 만든다기 보다는 서비스들을 만들기 위한 또는 서비스에 필요한 기능들을 제공하는 것이다. 서비스들이 .. 더보기
리팩토링 is 리모델링 리팩토링은 다시 구조화 하는 것이다. 건물로 비유하면 리모델링 정도라고 보면 될거 같다. 보통 개발자들은 남들이 짜놓은 코드를 보면 코드가 엉망이라고 다시 짜야 한다고 한다. 대개는 다시 처음부터 짜고 그 복잡한 기능들을 구현하다보면 다시 스파게티 코드가 된다. (스파게티 코드라는 말을 쓴다. 엉망진창이라는 뜻이다.) 그러면 다른 누군가는 말을 한다. 다시 처음부터 짜야 한다고 역사는 반복된다고 했던가 그러면 건축물로 치면 처음부터 다시 짠다는 의미는 무너뜨린다는 것이다. 그리고 다시 짜는 것이다. 과연 효율적일까? 왜 그렇게 복잡한 코드가 되었을까 생각해보면 그럴만한 사연이 있기도 하다. 그러면 무엇이 좋을까? 개발을 처음할 때는 몰랐던 사실을 기능을 구현하고 나니 알았다면 알고 났을 때 어떤 구조가 .. 더보기
객체지향을 쉽게 설명하면 객체지향이라는 말은 객체를 지향한다는 의미이다. 객체를 지향하는 것이 무슨 말일까? 그렇다면 이 전에는 무엇을 지향했을까? 프로그램은 순차적인 진행 절차를 가지고 개발이 되어왔다. 어떤 기능이 동작하기 위한 로직들이 수행되는 것이다. 이것만 놓고 보면 객체지향이라고 할 수는 없다. 순차적 프로그래밍이다. 순차적 프로그램 당시 무언가를 지향한다고는 하지 않았다. 객체지향이 나오면서 기존 순차적 또는 절차적인 순서가 아닌 방향이 된 것이다. '객체 지향이라는 개념이다. 객체 지향 개념은 객체를 지향했다는 것인데, C언어의 경우는 순차적인 프로그램을 만들었다. C++의 경우에는 객체가 중심이 된다. 객체라는 개념부터 이해를 해야 할텐데, 객체는 우리 주변에 모든 것이라고 할 정도로 모든 것이 객체로 되어 있다.. 더보기