반응형



안녕하세요!

문모닝입니다!


문모닝의 IT_28.리눅스(LINUX)


변화하는 과학기술과

끊임없이 변화하는 시장 상황에 부합하는

IT의 트랜드를 하나하나 살펴보는

문모닝의 IT!



오늘의 문모닝과 함께 할

IT의 콘텐츠는

 마이크로소프트의 윈도와 더불어

PC환경에서 많이 쓰이는 운영체제

리눅스를 소개해드리려고 합니다!


linux











리눅스(Linux)란?

리눅스는 윈도, 안드로이드, Mac OS 등과 같은

운영체제 중 하나입니다.


윈도처럼 많이 보급된 운영체제는 아니지만

서버를 관리하거나 사용법에 익숙해진 개인 사용자라면

매우 유용하게 사용할 수 있는 운영체제임에는 틀림없습니다.


server




리눅스는 앞서 말한 것과 같이 운영체제 중 하나이며,

그 커널 프로세스를 말하기도 합니다.

엄밀히 따지면 리눅스 커널과 GNU 프로젝트 라이브러리와 도구들이

포함된 전체적인 운영체제를 리눅스라고 말하죠!


리눅스는 1991년 리누스 토발즈가 탄생시켰습니다.

토발즈는 교육용 유닉스 미닉스를 사용하고 있었는데,

미닉스의 기능에 만족하지 못하고 새로운 커널을 만들어 냈고

여기에 1984년부터 프리웨어로만 구성된 유닉스를 만들고자 했던

리처드 스톨만이 진행한 GNU프로젝트를 합쳐 리눅스가 탄생하게 됩니다.










이렇게 탄생한 리눅스모든 소프트웨어가 무료라는

장점덕분에 인기를 얻게 되었고,

개방형 소스(오픈 소스)의 특성에 힘입어

다양한 리눅스 기반 운영 체제가 탄생했습니다.

페도라, 우분투 등 개인용 운영 체제뿐 아니라

CentOS 등의 서버관리에 용이한 운영 체제,

현재 구글에서 배포하는 모바일 운영 체제인

안드로이드도 리눅스 기반의 오픈소스 운영 체제죠!


android




이런 리눅스에는 특징적인 부분이 있는데

리눅스 커널과 대부분 GNU 소프트웨어가

GNU 일반 공중 사용 허가서 라이선스를 따른다는 점입니다.

GNU GPL의 조항에 따르면, '수정이 가능한

소스코드를 배포해야 하며 수정된 소스코드는 반드시

같은 라이선스로 배포해야 한다.'라는

조항이 있고 이러한 점을 카피레프트라고 불립니다.









gnu



위 사진은 GNU 마스코트입니다.

NU라는 발음이 같아서 마스코트가 됐다네요.

특이하다고 생각해서 첨부해 봤구요


이 외에도 리눅스는 유닉스와 완벽하게 호환된다는 점,

항상 가동되어 있으므로 안정적이라는 점,

하드웨어 기능을 더 알차게 이용한다는 점,

다중 사용자, 멀티 태스킹 등으로

강력한 네트워크 구축이 가능하다는 점 등

많은 장점을 가지고 있습니다.




예전과 달리 리눅스는 편리한 GUI까지

갖추게 되면서 보편적인 운영체제가 될 수 있는

많은 부분을 충족시켜왔습니다.


현재도 운영 체제 분야에서 많은 점유율을 확보하고 있는

리눅스! 어디까지 성장할지 기대가 되네요

반응형

'문모닝의 인터넷공부 > IT 공부' 카테고리의 다른 글

30.무선 충전기(Wireless Charger)  (0) 2017.12.19
29.라이파이(Li-Fi)  (0) 2017.12.15
27.웹표준(Web Standard)  (0) 2017.12.15
26.자바(JAVA)  (0) 2017.12.13
25.SSD(Solid State Drive)  (0) 2017.12.12
반응형



안녕하세요!

문모닝입니다!


문모닝의 IT_27.웹표준(Web Standard)


변화하는 과학기술과

끊임없이 변화하는 시장 상황에 부합하는

IT의 트랜드를 하나하나 살펴보는

문모닝의 IT!



요즘은 '스마트 시대'라 할 정도로

집에서든, 차에서든, 학교ㆍ회사에서든, 어디에서든지

원하면 간편하게 인터넷을 활용할 수 있는 시대에 살고 있습니다!!


그런데 혹시...

'웹 표준'이란

단어를 들어보신 적 있나요..??








모르셔도 괜찮습니다!!

그래서 오늘은 이 웹 표준에 대해서 알아보겠습니다!!


'웹 표준'이란

웹 표준화 단체인 W3C(World Wide Web Consorution)에서

권고한 표준안에 의해 표현, 구조를 분리하여 제작하고

웹을 구현하는 작업을 의미합니다!!



이게 무슨 말이냐고요..??

걱정 마세요!!


더 이해하기 쉽게 알려드리겠습니다!!

요즘은 인터넷을 사용하는데 다양한 브라우저들이 있고,

또 사용자마다 각기 다른 브라우저들을 사용하고 있습니다!

다양한 브라우저들










그런데 내가 익스플로어로 웹페이지를 만들었는데 크롬에서는 안 열리고,

크롬으로 웹페이지를 만들었는데 익스플로어에서는 안 열리는 현상을 막기 위해서


웹페이지 제작에 있어 브라우저의 종류 및 버전에 따른

기능 차이에 대해서 어느 브라우저를 선택하든지 호환이 가능하도록 하는

표준안이 바로 '웹 표준'입니다!!


또한! 최근 다양한 디바이스가 있는데

이 IT 기기에도 호환될 수 있게 하는 것이 이 '웹표준'입니다!!

대표적인 디바이스로는 '스마트폰'이 있습니다!!



다양한 스마트폰 운영체제

'스마트폰 소프트웨어의 대표격인 안드로이드, IOS'


웹 표준으로 제작한 웹 페이지여야 모바일에서도

호환이 될 수 있으니 꼭! 웹 표준에 따라 제작해야 할 것 같습니다!!







마지막으로!

웹 표준의 대표적인 중요성 3가지만 알아보겠습니다!


첫 번째, 웹페이지 수정 및 운영 관리 용이

온라인 콘텐츠의 올바른 구조화와 CSS로 시각 표현을 통일해 제작 부담을 줄임


두 번째, 웹 접근성 향상

여러 브라우저에서 호환이 가능하고, 표준이 정해져 있다 보니 보다 대중성 지님


세 번째, 다양한 디바이스 호환

웹 표준으로 제작하면 별도의 웹 페이지 제작 없이 호환 가능



이외에도 여러 가지 중요성이 있는 웹 표준!!

앞으로 더 중요해질 것 같습니다!!


반응형

'문모닝의 인터넷공부 > IT 공부' 카테고리의 다른 글

29.라이파이(Li-Fi)  (0) 2017.12.15
28.리눅스(LINUX)  (0) 2017.12.15
26.자바(JAVA)  (0) 2017.12.13
25.SSD(Solid State Drive)  (0) 2017.12.12
24.소프트웨어 개발 프로세스  (0) 2017.12.11
반응형



안녕하세요!

문모닝입니다!


문모닝의 IT_26.자바(Java)


변화하는 과학기술과

끊임없이 변화하는 시장 상황에 부합하는

IT의 트랜드를 하나하나 살펴보는

문모닝의 IT!



오늘은 프로그래밍 언어 가운데 가장 사용 점유율이 높은 언어!

JAVA 프로그래밍 언어를 소개해드리려고 합니다!!







자바는 프로그래머가 아니더라도 IT업계 종사자 혹은

IT분야에 관심이 있으신 분들은 많이 들어보셨을 법한 용어인데요.

오늘 자바가 무엇인지,

왜 다들 자바를 많이 사용하는 것인지 알아보도록 하겠습니다!


Java Oracle









자바는 썬 마이크로시스템즈에서 개발한 객체지향적 프로그래밍 언어인데요,,

현재 오라클과 썬 마이크로시스템즈가 인수합병됨에 따라

자바에 대한 권리 및 유지보수는 오라클로 넘어간 상황입니다.


자바를 이해하기 위해선 먼저 객체지향적 프로그래밍 언어가 무엇인지

알아볼 필요가 있습니다!


객체지향적 프로그래밍 언어는 말 그대로 컴퓨터 프로그램을

명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위,

즉 '객체'들의 모임으로 파악하고자 하는 언어입니다.

이런 객체지향적 언어는 객체 단위로 프로그래밍 되기 때문에

소프트웨어 개발과 보수를 간편하게 하며, 보다 직관적인 분석을

가능하게 하는 장점을 갖고 있죠.


자바를 다른 컴파일언어와 구분짓는 두 번째 특징은

컴파일 된 코드가 플랫폼 독립적이라는 점인데요


자바 컴파일러는 자바 언어로 작성된 프로그램을

바로 어셈블리어로 컴파일 하는 것이 아닌 바이트코드라는

특수한 바이너리 형태로 변환하게 됩니다.

이런 바이트코드를 실행하기 위해서는 JVM(자바 가상 머신)이라는

특수한 가상 머신이 필요한데, 이 가상 머신은

자바 바이트코드를 어느 플랫폼에서나 동일한 형태로 실행시킵니다.

바로 이 '어느 플랫폼에서나 동일한 형태로 실행'이라는 구절이

자바의 두 번째 특장점 입니다!!


이 부분이 여러 CPU나 운영 체제의 환경에 영향을 받지 않고

JVM을 설치할 수 있는 시스템에서는 어디서든 실행이 가능해

웹 어플리케이션의 특성과 맞아 떨어진다고 말 할 수 있는 것이고,

앞서 말씀드린 객체지향적 언어라는 점과 이 두 번째 장점이

자바를 가장 인기있는 프로그래밍 언어로 만들어 준 것입니다.



자바를 소개하는데 실제 예문도 한번 봐야겠죠??



자바 예문



위에 나온 예문은

콘솔창에 'Hello, world'가 나오는 간단한 예문입니다!


자바라는 프로그래밍 언어의 특징부터 간단한 예문까지 살펴봤는데요

알면 알수록 점점 빠져드는 매력있는 언어임에 틀림없습니다!








자바라는 매력있는 언어가 앞으로 

IT개발 업계에 어떻게 작용할지 기대해보도록 하죠!!


반응형

'문모닝의 인터넷공부 > IT 공부' 카테고리의 다른 글

28.리눅스(LINUX)  (0) 2017.12.15
27.웹표준(Web Standard)  (0) 2017.12.15
25.SSD(Solid State Drive)  (0) 2017.12.12
24.소프트웨어 개발 프로세스  (0) 2017.12.11
23.데이터베이스(DB; Database)  (0) 2017.12.01
반응형



안녕하세요!

문모닝입니다!


문모닝의 IT_25.SSD


변화하는 과학기술과

끊임없이 변화하는 시장 상황에 부합하는

IT의 트랜드를 하나하나 살펴보는

문모닝의 IT!








최근 컴퓨터를 구매해본 경험이 있으시거나

컴퓨터 부품에 관심이 있으신분들은 SSD라는

단어를 접해보신적이 있으실텐데요.


오늘은 이 SSD가 무엇인지,

어떤 장점을 가지고 있는지 살펴보려고 합니다!



SSD

(출처:https://www.flickr.com/photos/intelfreepress/6345916908)




SSD란?


PC를 구성하고 있는 여러 장치 중 가장 핵심적인

역할을 담당하고 있는 3가지 요소가 있는데요

하나는 CPU(중앙처리장치)이고 또 하나는 RAM(주기억장치)

그리고 마지막 하나가 HDD(보조기억장치)입니다.


이 세가지 장치 중 CPURAM의 경우

기술이 발전함에 따라 동작 속도가 하루가 다르게

향상되고 있는 반면 HDD의 경우 물리적인

회전에 의해 데이터를 읽거나 쓰기 때문에

속도의 한계가 있고 많이 뒤쳐진 것이 사실입니다.



이러한 HDD의 한계를 극복하기 위해

등장한 것이 SSD인데요!

기존의 HDD가 물리적인 회전에 의한 동작을 보였다면

SSD는 'Solid State Drive'의 약자로

HDD와 달리 반도체를 이용해 데이터를 저장하며

이러한 특성 덕분에 HDD보다 빠른 속도로

데이터 읽기/쓰기가 가능합니다.



빠른 속도








SSD의 장점으로는

앞 서 언급한 빠른 속도가 가장 큰

장점이 될 수 있겠지만,

그 이외에도 물리적인 회전에서 발생하는

소음이 줄어들고, 전력소모가 적어

휴대용 컴퓨터에서 배터리 유지시간을 늘릴수 있다는

장점도 있습니다.


밧데리









이처럼 HDD에 비해 큰 장점을 가지고 있는

SSD가 왜 모든 컴퓨터에 구성되지 않고

아직 HDD가 있는것인지 궁금하실텐데요.


SSD에는 큰 단점이 있습니다.

성능적인 부분에서가 아닌

바로 비용적인 부분에서 입니다.

현재 같은 비용에서의 용량차이가

평균 12배~16배 정도 난다고 하니

용량이 많이 필요한 컴퓨터 구성에서는

아직 HDD를 사용할 수 밖에 없는 것이죠


돈




가까운 미래 반도체 기술과 전반적인 저장장치 

기술의 발전으로 SSD가 더 많이 보급되길 기대해보겠습니다!

반응형
반응형



안녕하세요!

문모닝입니다!


문모닝의 IT_24.소프트웨어 개발 프로세스


변화하는 과학기술과

끊임없이 변화하는 시장 상황에 부합하는

IT의 트랜드를 하나하나 살펴보는

문모닝의 IT!



오늘의 문모닝과 함께 할

IT의 콘텐츠는

제가 정보처리기사를 공부하면서

애먹기도 했지만 재밌게 공부했던 내용인

소프트웨어 공학 중


'소프트웨어 개발 프로세스 모델'입니다








‘소프트웨어 개발 프로세스 모델’이라,,

제목만 들어도 지루하고 복잡할 것 같지 않나요?



하지만, 막상 이해해보면 쉬운 구조로 되어있습니다!

구조는 쉬우나, 여기서 적용되는 코딩이 어렵기에 다루기 힘든 것이죠!!

간단하게 코딩 전에 여기 있는 프로세스 모델에 대하여 한 번 알아보도록 하죠!





1. 주먹구구식 모델


주먹구구식 모델

(출처:http://terms.naver.com/entry.nhndocId=3532869&cid=58528&categoryId=58528)



주먹구구식 모델은 정말 말그대로 단순합니다.

가장 먼저 코딩작업을 통해 제품을 만듭니다.

만든 제품을 사용해 보았을 때,

문제가 발생하면 코딩작업을 통해 수정하고,

문제가 없을 시에는 그냥 사용하는 매우 단순한 구조입니다.



이 구조는 순차적으로 꼼꼼히 작업한 것이 아니기 때문에,

상황에 따른 문제점이 발생 시 대처하기 어려워

지속적인 관리가 힘들다는단점이 있습니다.









2. 선형순차적모델(Waterfall Model; 폭포수 모델)


폭포수 모델

(출처:http://terms.naver.com/entry.nhn?docId=3532870&cid=58528&categoryId=58528&expCategoryId=58528)




선형 순차적 모델의 대표로 폭포수 모델이 있습니다.


위의 그림처럼 이 방식은 한 단계, 한 단계를 순차적으로 마무리하며

최종적으로 한 제품을 완성시키는 모델입니다.


한 번 내려온 계단을 다시 올라가는 일이 없도록

한 과정을 완벽하게 마무리 한 후에

다음 작업을 진행합니다.


각 과정을 마무리 지을 때마다 사용자에게 검증을 받음으로써

추후에 문제 발생 시,

책임소재를 쉽게 나눌 수 있다는 장점이 있습니다.





3. V모델


V모델

(출처:http://terms.naver.com/entry.nhn?docId=3532873&cid=58528&categoryId=58528&expCategoryId=58528)



이 모델은 폭포수모델의 변형된 버전입니다.

폭포수 모델은 각 단계가 마무리 된 후,

사용자에게 확인을 받고 매듭을 짓는다면,

V모델은 각 단계마다 테스트를 추가하여

추후 프로그램 사용시에 발생할 수 있는 오류를

제작과정에서 찾아내어 없애자는 목표를 가지고 이루어지는 모델입니다.







4. 진화적 프로세스 모델



위에서 보았던 선형 순차적 모델의 대표적인 모델이

'폭포수 모델'이었다면,

진화적 프로세스 모델의 대표적인 모델은 '프로토 타입'입니다.



진화적 프로세스 모델

(출처:http://terms.naver.com/entry.nhn?docId=3532876&cid=58528&categoryId=58528&expCategoryId=58528)


단순한 프로그래밍 작업이라면 상관 없지만,

몇 년을 내다보거나,

아주 큰 투자비용을 발생시키는 대규모 프로그래밍의 경우에는

프로토타입 모델이 필요합니다.


개발자와 사용자 간에 아무리 많은 의사전달이 있다 하더라도

각자의 머리속에서 그려낸 예상 모델은 다를 수 있습니다.


드라마 제작이 들어가기 전에 사전 시나리오를 보는 것과 마찬가지로,

프로그램도 개발 전에 예상 모델을 만든 후에 사용자에게 제시하여

사용자의 요구사항에 따라 프로토타입 모델을 조정한 후에,

본 모델의 프로그래밍이 설계되고 제작되기 시작하는 방식입니다.






5. 나선형 모델(Spiral Model)


나선형 모델

(출처:http://terms.naver.com/entry.nhn?docId=3532879&cid=58528&categoryId=58528&expCategoryId=58528)



나선형 모델은 폭포수 모델과 진화적 프로세스 모델의 장점이

합쳐진 것이라 볼 수 있습니다.


진화적 프로세스에서는 소비자의 요구에 따른 프로토타입 모델을 바로 만들었다면,

나선형 모델에서는 위험요소를 분석한 후에 제작에 들어갑니다.


이 과정을 통해 제작된 1차 프로토타입 모델은 사용자에게 검증을 받은 후,

추가 요구사항 및 수정 내용을 참고하여 2차 프로토타입 모델로 완성됩니다.


만들어진 프로토타입 모델은

다시 사용자에게 검증을 받고 수정하는 과정이

수차례 반복되면서 최종적으로 프로토타입 모델을 벗어나 제품으로 완성됩니다.





6. 단계적 개발 모델


단계적 개발 모델

(출처 : http://terms.naver.com/entry.nhn?docId=3532882&cid=58528&categoryId=58528&expCategoryId=58528)




단계적 개발 모델은 갤럭시 휴대폰에 비교할 수 있습니다.

갤럭시S를 개발하여 소비자가 사용하는 동안에

개발자는 갤럭시S2를 만들고,


갤럭시 S2를 소비자가 사용하는 동안에

개발자는 갤럭시 S3를 만드는 것처럼

점차적으로 사용자는 모델을 사용하면서,  

동시에 개발자의 모델의 신버전을 개발해나가는 방식입니다.









7. 통합프로세스 모델


통합프로세스 모델

(출처:http://terms.naver.com/entry.nhn?docId=3532885&cid=58528&categoryId=58528)



통합 프로세스 모델의 개발 과정은

도입, 구체화, 구축, 전이

크게 4단계로 나눌 수 있습니다다.


크게 나뉜 단계들은 다시 수차례 반복 실행을 하는 작은 단위로 나누어집니다.


도입단계에서는

비즈니스 모델링 및 요구사항 정의가 많이 이루어집니다.


아이디어, 프로젝트 실험 가능성, 프로젝트 계획 및 전망, 위험요소 등

직접 소프트웨어 개발을 실행 하기 전

준비단계라고 볼 수 있습니다.


구체화 단계는 제작 준비를 줄이고,

어떻게 제작할 것인지 직접 분석, 설계하는 작업을 주로 실행합니다.


구축 단계에서는 실제 만들어진 프로토타입을 기반으로 구현 작업을 실행합니다.

또한 테스트 작업도 점차 늘려가는 단계입니다.


전이 단계에서는 마무리 작업 등을 시행한다고 볼 수 있습니다.

개발된 모듈에 대해 테스트를 주로 실행하고,

배포 가능한 단위로 묶어서

사용자에게 인수해주는 과정 등을 시행합니다.


지금까지 위에서 설명했던 것들은 각 단계에서 가장 많이 시행되는 것들입니다.


모든 단계에서 대부분의 모든 작업이

그 양을 달리하며 계속 시행되고 있다는 것이

통합 프로세스 모델의 특징입니다.




8. 애자일 프로세스



가장 간단하고 꼭 필수적인 것들만을 집어 넣어

 신속하게 1차적으로 소프트웨어를 만듭니다.


이렇게 만들어진 소프트웨어를 사용자가 사용하고 있는 동안에,

추가적인 사용자의 요구사항과 따로 채워져야 할 부분을 빠르게 만들어

2차적으로 제공합니다.


이렇게 계속 사용자는 사용하면서 추가적으로 요구사항을 내놓고,

개발자는 신속하게 소프트웨어를 계속 업그레이드 시킵니다.

이 과정은 짧으면 짧을수록 사용자에게 편리합니다.

이러한 소프트웨어의 개발과정은 사용자와 개발자가

지속적으로 자주 연락하고,

실제 사용하면서 가장 필요한 부분들을 위주로 개발시켜 나가기에

효율성도 높은 개발 방법입니다.





오늘은 여러가지 소프트웨어 개발 프로세스 모델에 대하여 알아보았습니다!

비슷한 듯 하지만,

다양한 모델들이 상황에 따라 다르게 사용되어

참 다양한 소프트웨어들이 안정적으로 구축되는 것 같은데요!!


과연 다음엔 어떤 모델이 등장할지 너무 기대됩니다!






반응형

+ Recent posts