본문 바로가기
반응형

전체 글340

[파이썬&루비] 캡슐화(Encapsulation) 캡슐화(Encapsulation) 객체는 규모 있는 애플리케이션을 만드는 과정에서 필요한 기능이다.따라서 일반적인 프로그래밍 과정에서 객체의 필요성에 대해 못 느낄 수도 있다.객체는 부품과 같다. 이러한 객체를 조립해서 큰 프로젝트를 만들어 가는 것이다.따라서 좋은 객체를 만드는 것은 좋은 부품을 만드는 것이며, 이를 위해서 여러가지 조건을 충족해야한다.그 중에 하나가 인캡슐레이션, 즉 캡슐화이다. 캡슐화란 객체가 어떤 일을 하는지와 상관없이 견고한 케이스로 감싸듯 외부의 영향을 받지 않게 하는 것이다.즉, 이러한 케이스, 캡슐을 씌우는 것은 외부로부터 영향을 받아 변경되지 않도록 하는 것이다.함수나 변수도 캡슐로 감싼 예 중의 하나이다.함수의 조건문 반복문 등도 함수라는 캡슐로 싼 것이나 다름없고, 이.. 2017. 6. 1.
[기술의역사] 자바스크립트(Java Script) 자바스크립트(Java Script) (웹 프로그래밍 3대장 - 아카이누 키자루 아오키지) 앞선 포스팅에서 살펴본 HTML에서 말했듯이, 자바스크립트는 동적 페이지 구현을 위한 언어이다.버튼 클릭시 이벤트의 상세한 구현이나 서버와의 통신이 대부분 자바 스크립트로 이루어진다.자바스크립트는 이름에서도 알수 있듯이 스크립트 언어로써, 인터넷 브라우저의 스크립트 엔진으로 돌아가게 된다. 이름부터 자바와 비슷한 자바스크립트는 자바와 아무런 관련이 없다.브랜던 아이크라는 사람이 10일만에 설계한 언어로써, 초기에 이름을 몇번씩 바꾸면서 'Java와 구문의 유사성이 있으므로 Java Script라는 이름으로 최종결정되었다'라고 하지만 대외적으로 알려진것은 역시 그 당시 뜨거웠던 자바의 인기에 어느정도 편승하기 위한 전.. 2017. 6. 1.
[파이썬&루비] 객체(Object) 객체(Object) 객체 지향 프로그래밍(Object Oriented Programming)이라는 말에서도 알수 있듯이객체는 OOP의 기반이 되는 개념중의 하나이다. 함수만 묶어 놓았던 모듈과는 다르게, 객체에서는 변수와 함수를 묶어서 찍어낼수 있는 개념이다.이렇게 객체를 기반으로 생성된 것을 인스턴스라고한다.여기서는 객체에 대한 개념을 깊게 다루지는 않을 것이며, 사용 방법에 대해 알아보도록하겠다. 12345678# pythonclass Cal(object): # 클래스 코드 #rubyclass Cal # 클래스 코드endcs 먼저 class 키워드를 사용해서 객체를 만들어 준다. 이때, 루비는 역시 end 키워드를 사용해서 객체 생성 코드를 닫아주며,파이썬은 class뒤에 객체이름(object):를 .. 2017. 6. 1.
[Backjoon] 10988문제 - 팰린드롬인지 확인하기 알파벳 소문자로만 이루어진 단어가 주어진다. 이 때, 이 단어가 팰린드롬인지 아닌지 확인하는 프로그램을 작성하시오.팰린드롬이란 앞으로 읽을 때와 거꾸로 읽을 때 똑같은 단어를 말한다. level, noon은 팰린드롬이고, baekjoon, online, judge는 팰린드롬이 아니다. 풀이보통 팰린드롬 문제를 정석적으로 풀기 위해서는 스택을 사용한다.문자열의 길이/2 만큼은 스택에 넣고, 나머지는 스택에 있는 값을 꺼내보면서 확인하는 것이다.그러나 스택을 만들기 번거롭다면 아래와 같이 코드를 작성해도 좋다. 1234567891011121314151617181920import java.util.Scanner; public class Main { public static void main(String[] a.. 2017. 6. 1.
[파이썬&루비] 모듈(Module) 모듈(Module) 모듈이라고 하는 것은 프로그래밍에서 사용하는 부품이다.어떻게 보면 함수도 부품이라고 할수 있는데, 함수보다 더 큰 규모의 파일이 모듈이 된다.예를 들어, 학교에서 학생들을 가르치다가 학생들이 늘어남에 따라 학년으로 분리한다.그러다가 학년이 감당할수 없을 만큼 규모가 증가하면 반이라는 단위로 나뉘게 된다.만약 학년과 반의 개념이 없고 학교만 있다면, 학생들이 무질서하게 분포되어있으므로문제가 생기게 된다. 학년은 교육 정도나 나이에 따라 분류되어지고, 반은 생일이나 키, 이름에 기반한 번호로 줄세워진다.이와 같이 일정한 기준에 따라 성격이 비슷한 파일들을 하나의 디렉토리에 묶어준다.따라서 모듈은 코드의 복잡도를 낮추고 문제를 방지하기 위한 중요한 기능이다. 12345678# pythoni.. 2017. 5. 31.
[파이썬&루비] 함수(Function) 함수(Function) 12345678910# pythondef func(): print('Hi!') func() # rubydef func() puts('Hi!')endfunc()cs 중복의 제거와 재사용성, 코드의 효율성에 기반하여 프로그래밍은 발전해 왔다.그 중에서도 함수는 재사용성을 높이고 효율적인 코드를 만들기위해 꼭 필요한 존재이다. 함수의 기본 개념은 입력값이 있으면 출력 값을 주는 코드이다.물론 이 입력값의 개수는 0개부터 여러개가 될 수도 있다.우리가 이때까지 사용하던 print도 함수의 종류이다.print나 len등은 언어에서 제공해주는 내장함수이며, 별도의 설치나 조작이 없어도 사용이 가능하다. 사용자 지정 함수를 만들수도 있다.위의 코드가 지정 함수에 대한 예제인데, 그렇게 효율적인.. 2017. 5. 31.
[기술의역사]HTML(HyperText Mark-up language) HTML(HyperText Mark-up language) (웹의 창시자 팀 버너스리) HTML은 마크업 언어로써 프로그래밍 언어와 조금 다른 개념이다HTML을 알아보기 전에 우선 HTML이 등장하게 된 배경 부터 살펴보자. 불과 30년 전까지만 해도 인터넷은 군사 시설에서나 사용할 수 있는 신기술이었다.1969년 인터넷은 미국 국방부의 고등 연구 계획국에서 사용하는 ARPAnet이라는 패킷 스위칭 네트워크였으며1983년 TCP/IP가 이를 대체하여 인터넷으로 진화 하였다. 그러다 1990년대 웹의 창시자 팀 버너스리(Timoty. J. Berners-Lee)가유럽 입자 물리 연구소(CERN)에서 근무하던중 웹에대한 초기 아이디어를 제안하고 구현하게 되었다.이 아이디어는 입자 물리 연구소 직원들이 잘 짜.. 2017. 5. 30.
[Javascript] 클로저(Closure) 클로저(Closure) 클로저란 Javascript의 유효범위, Scope를 이용하여 생명 주기가 끝난 외부함수의 변수를 참조하는 방법이다.외부함수가 종료되더라도 내부함수가 실행되는 상태이면 내부함수에서 참조하는 외부 함수는 닫히지 못한다.따라서 외부 함수가 종료되기 위해서는 내부함수가 종료되어야하기 때문에 클로저(Closure)라고 불리운다. 12345678910111213141516171819function outFunc(){ var num= 0; return { func1 : function(){ num+=1; console.log("num :"+num); }, func2 : function(){ num+=2; console.log("num :"+num); } };}var out = outFunc(.. 2017. 5. 30.
[기술의역사] 자바(JAVA) 자바(JAVA) (어느 한 분야에 깊게 빠질수 있는 사람이 개발을 잘하나 보다 - 사진은 제임스 고슬링) 1995년에 발표된 썬 마이크로 시스템즈의 제임스 고슬링이 개발한 언어이다.위 사진에서 아련하게 소녀시대를 보고 있는 아저씨가 고슬링이다.초기에는 임베디드 시스템을 위해 개발 되었으나 현재는 안드로이드나 웹 등에서 활발하게 사용되는 중이다. 자바가 가지고 있는 가장 큰 강점은 자바 가상 머신(JVM) 이다.초기 언어들은 운영체제에 어느정도 종속적인 면을 보였는데, 자바는 개별적으로 JVM이라는 가상머신에서 돌아가기 때문에어디서나 동일한 퍼포먼스를 보여줄수 있다는 장점이 있었다.이 때문에 자바의 슬로건은 Write once, Run everywhere이다 물론 JVM이라는 특수한 환경 때문에 기존의 언.. 2017. 5. 29.
반응형