크로스 브라우징을 신경써서 웹페이지를 만들때, 


클라이언트의 브라우저가 어떤 것 인지 알아 내는 것은 무척 중요한 일이다.


제이쿼리 에서는 아래 메서드로 알아낸다.


$.browser.mise     :    익스플로러인 경우, true를 반환

$.browser.mozilla  :    파이어폭스인 경우, true를 반환

$.browser.safari    :    사파리, 크롬 인 경우, true를 반환

$.browser.opera    :    오페라인 경우, true를 반환


하지만, 이상하게 IE11(익스플로러) 버전에서는 위의 메서드가 실행이 되질 않는다..


스택오버플로우의 검색을 통해 IE의 반환값을 얻는 방법을 찾았다.


즉, $.browser.mise 가 null로 리턴 될때는, 아래의 코드로 반환하도록 코딩해야 겠다.


var ie = !!navigator.userAgent.match(/Trident.*rv\:11\./);




포스팅이 도움 되셨다면, 커피 한잔 후원해주세요!
더 좋은 포스팅 작성에 큰 힘이 됩니다.

Buy me a coffeeBuy me a coffee



Wrapper class


C++ 이나 JAVA 프로그래밍을 하는 사람이라면 래퍼 클래스를 많이 들어 봤을 것이다.


C++ JAVA의 래퍼 클래스는 간단하게 말하자면, 


기본 자료형(int나 long)같은 데이터를 객체에 넣기 위해 제공하는 함수들 이라고 생각하면 된다.


ex) int num = 5;  -->  Integer num = new Integer(5);


하지만 굳이 말하자면, 자바에서는 AutoBoxing 개념으로, 


Object obj = new Integer(5);     대신에   Object obj = 5; 


이렇게 써도 된다. (JDK 1.5버전 이후)


그렇지만, 자바나 C++ 외에도 래퍼(wrapper)라는 개념이 쓰이는데, 항상 아래와 같은 개념으로 생각하면 되겠다.


래퍼란 필요한 데이터를 받거나 쓰기 위해 데이터 형태를 세팅해 제공하는 서비스 이다.


한가지 예를들자면, url 주소앞에 http://도 래퍼 이다. 래퍼는 이와 같이 프로그래밍 용어로써 다양하게 쓰인다.



'용어정리 > 프로그래밍용어' 카테고리의 다른 글

List와 Map의 차이 (2)  (0) 2016.04.27
List와 Map의 차이 (1)  (0) 2016.04.26
XML 이란?  (9) 2016.01.26
상수(constant) 와 리터럴(literal)이란?  (16) 2016.01.06
API란?  (0) 2015.12.17

포스팅이 도움 되셨다면, 커피 한잔 후원해주세요!
더 좋은 포스팅 작성에 큰 힘이 됩니다.

Buy me a coffeeBuy me a coffee



API 는 Application Programing interface의 약자이다.


프로그래밍을 공부하는 사람이라면 한번쯤은 들어봤을 용어이다.


API의 뜻을 모르고 사용하는 사람도 많을 것이라고 생각한다.


API의 뜻을 설명하기전에 약자를 보면 Applicaiton이 보인다.


Application은 모바일 열풍이 불면서 나온용어라고 착각하는 사람들이 많다.


하지만 Application은 엄연히 컴퓨터 처리에 대상이되는 것들을 총칭해서 말한다.


우리가 하는 PC게임, 우리가 평소에 하는 프로그래밍도 Application이라 불릴 수 있는 것이다.


interface는 어떠한 리소스를 토데로 결과물을 만들거나 도출할때 쉽게 하기위해 도움을 주는존재를 뜻한다.


즉, 합쳐말하면 컴퓨터 처리에 있어서 프로그래밍을 쉽게 하게 해주는 인터페이스(도움을 주는 존재)라고 할 수 있겠다.








'용어정리 > 프로그래밍용어' 카테고리의 다른 글

List와 Map의 차이 (2)  (0) 2016.04.27
List와 Map의 차이 (1)  (0) 2016.04.26
XML 이란?  (9) 2016.01.26
상수(constant) 와 리터럴(literal)이란?  (16) 2016.01.06
Wrapper class(래퍼 클래스) 란?  (0) 2015.12.24

포스팅이 도움 되셨다면, 커피 한잔 후원해주세요!
더 좋은 포스팅 작성에 큰 힘이 됩니다.

Buy me a coffeeBuy me a coffee



제목은 자바의 삼항연산자라고 적었지만.


이 삼항연산자는 언어 불문하고 자주 쓰이는 코드다.


삼항연산자를 쓰는 이유는 딱 하나이다. 어렵지 않은 알고리즘의 다수줄의 코드를


가독성 좋게 한 두줄로 바꿔줄 수 있기 때문이다.


아래의 예시를 보자.



if(a>b){
		result = 111;
	}else{
		result = 222;
	}


어렵지 않은 코드이다. a가 클시 result에는 111이 들어가고 b가 클시, result에는 222가 들어간다.


문제가 뭐냐면... 귀찮다 분명 어렵지 않은 알고리즘이지만, 


다른 코드들이랑 쓰다보면 눈에 안들어 올 것이다.


위코드를 아래와 같이 바꿀 수 있다.



result = (a>b)?111:222;


이런식으로 쓴다. result의 값은 위 위의 코드와 동일하게 들어간다. 


변수 = (참이나 거짓이나오는 부울린) ? (참일경우 들어가는 값 ) : (거짓일 경우 들어가는 값);


위의 경우는 int형 변수 result를 썻지만. 좀더 응용하면 여러 변수들을 상황에 맞게 쓸 수 있다.


예를들어, 자바의 JFrame 에서 visible을 컨트롤 한다고 생각해보자.



frame.setVisble((frame.isVisible())?false:true);



이해가 가는가? 삼항연산자의 리턴값을 변수에 넣지 않고 바로 setVisible안에 넣은것이다.


따라서 저 코드는 visible 이 트루 일때는 frame을 안보이게하고. 


visible이 거짓 일때는 frame 을 다시보이게 하는 코드라 할 수 있겠다.




 

 

'Java' 카테고리의 다른 글

JAVA Static이란?  (2) 2016.03.29
자바 enum 열거형  (0) 2016.01.27
JAVA - 익명클래스(Anonymous class)란?  (3) 2016.01.20
JAVA의 생성자 (2)  (2) 2015.11.17
JAVA의 생성자 (1)  (0) 2015.11.12

포스팅이 도움 되셨다면, 커피 한잔 후원해주세요!
더 좋은 포스팅 작성에 큰 힘이 됩니다.

Buy me a coffeeBuy me a coffee


오늘 포스팅 할 내용은 인덱스를 이용한 요소 찾기다. 


포스팅 하기 앞서 이러한 요소 찾기가 왜 필요한지 알아보자.


css로 정의하면 하나의 class명으로도 여러 태그들을 자신이 설정한 스타일로 맞출 수 있는 장점이 있다.


하지만 태그들을 각각 따로 어떠한 처리를 하고 싶다고 가정할 때,


어떻게 해야 할지 여간 난감한게 아니다. 하나의 방법으로는 id를 각각 써줘서 가져오는 방법도 있겠지만,


귀찮기도 하고 좋은 방법이 아니다.


그럴땐 .eq(index)란 요소찾기 메서드를 쓰면 된다.


아래 예시를 보자.



1
2
3
4

1,2,3,4 각각 같은 class인 태그다. 이러한 태그들을 다루고 싶을땐,





이와 같이 인덱스를 이용해 가져 올 수 있다.


위에서 언급한 id로 일일이 가져오는 방법 보다는 


후자와 같은 방법이 객체를 배열로 다 룰수 있어 활용성이 더 좋다.





포스팅이 도움 되셨다면, 커피 한잔 후원해주세요!
더 좋은 포스팅 작성에 큰 힘이 됩니다.

Buy me a coffeeBuy me a coffee



- JavaScript







위의 코드를 <head> 내부안에 작성하면 되겠다.


실행되는 해당 플랫폼은 <body>안에 아래와 같이 작성한다.


<button id="btn1" onclick="button_click();">Button!!</button>




- JQuery




    


위의 코드를 역시 <head> 내부안에 작성하면 된다.


실행되는 해당 플랫폼은 <body>안에 아래와 같이 작성한다.


<button id="btn1">Button!!</button>

예시를 버튼으로 했지만, 어떠한 태그든 클릭이벤트를 넣을 수 있다.


제이쿼리의 #은 javascript의 getElementById를 의미하므로 id값을 가져온다.




포스팅이 도움 되셨다면, 커피 한잔 후원해주세요!
더 좋은 포스팅 작성에 큰 힘이 됩니다.

Buy me a coffeeBuy me a coffee




주로 경쟁 시장과 관련된 내용에 많이 나오는 용어이다.


레드오션(Red Ocean)은 말 그대로 피(red)를 흘려야하는 경쟁 시장을 뜻한다.


해당하는 재화와 용역이 이미 포화상태를 이루어, 치열한 경쟁을 치루어야 한다.


블루오션(Blue Ocean)도 역시 말 그대로 피(red)와 반대되는(blue) 경쟁 시장을 뜻한다.


아직 뚜렷한 경쟁 구도, 재화, 용역 등이 구성되지 않아 수요가 창조에 의해 발생한다.


광범위하고 잠재력을 가진 시장이라 볼 수 있다.




언뜻 보면, 레드오션 보다 블루오션이 좋아 보이지만,


때로는, 막연한 블루오션보다는 레드오션이 나을 경우가 있다고 생각한다.









포스팅이 도움 되셨다면, 커피 한잔 후원해주세요!
더 좋은 포스팅 작성에 큰 힘이 됩니다.

Buy me a coffeeBuy me a coffee



mommoo.tistiory.com/3 ( Java의 생성자 (1) )



저번 포스팅의 2탄이다. 1탄은 위의 경로로 가서 보면 된다.


저번 포스팅의 예제를 사용해 생성자의 사용법에 대해 설명하겠다. 


public class Test{
        
	public int num;
	public String str;

	public Test(int num,String str){
		this.num = num;
		this.str = str;
	}

	public void print(){
		System.out.println("num은"+num+"입니다. , str은"+str+"입니다.");
	}

	public static void main(String str[]){
		Test test = new Test(10,"홍길동");
		new Test(9,"활빈당");
	}
}

main 함수에서 new 키워드를 통해 Test클래스를 사용했다. 생성자 함수가 2개의 매개변수를 요구 하므로


Test클래스를 생성할 때, 두가지 정보를 넣었다.(이름,나이)


main 함수안에 첫번째 줄은 test 라는 참조변수에 생성한 Test클래스의 정보를 담았고


두번째 줄은 Test클래스를 생성만 할 뿐 변수에 담지는 않았다.


결과적으로 말하자면, 둘다 new 키워드를 통해 클래스를 호출 했고 둘다 생성자( public void Test(int num,String str) )가


실행이 된다. 거꾸로 말하자면, new 키워드를 통해 클래스를 호출만 하면 생성자는 무조건 실행이 된다는 것이다.


따라서, 생성자는 프로그래머가 생각하기에, 자신이 만든 프로그램(클래스)이 메모리에 적재 될 시,


반드시 해야할 일 을 코드로 작성하는 공간이라 생각하면 되겠다.


클래스 안에는 반드시 생성자가 정의 되어야 한다. 하지만 아래와 같은 코드를 보자.



public class Test{

	public int num;
	public String str;

	public static void main(String str[]){
		Test test = new Test();
	}

위의 클래스는 생성자가 보이지 않는다.


분명히 클래스는 생성자가 존재해야 한다고 말했지만, 컴파일 오류가 발생하지 않고, 실행도 잘된다.


이유가 무엇일까? 


정답은 사용자가 생성자를 따로 적지 않았을 시, 자바 컴파일러가 우리가 만든 Test 클래스에


Test(){}; 라는 생성자를 (디폴트 생성자) 저절로 넣어준다. 


즉 결국엔 생성자가 있는것 처럼 된것이다.


그렇다면, 우리가 매개변수가 있는 생성자를 따로 적어 주었을시, 자바 컴파일러가 Test(){}라는 디폴트 생성자를 넣어줄까?


답은 아니오다. 우리가 따로 생성자를 적어주었을시, 우리가 적은 생성자를 메인 생성자로 판단하고 디폴트 생성자를 넣어주지 않는다.


아래의 코드는 오류가 발생한다.

public class Test{ public int num; public String str; public Test(int num){ this.num = num; } public static void main(String str[]){ Test test = new Test();//매개변수가 하나 필요하다... }

그렇다면, 위의 코드의 오류를 고치는 방법은 무엇이겠는가? 제일 간단한 방법은


Test클래스를 호출할때 매개변수를 하나 입력하는 것이다.


다른 방법도 있다. 혹, 오버로딩을 아는 사람이라면, 쉽게 이해 할 수 있을 것이다.


생성자를 하나더 만드는 것이다.


public class Test{ public int num; public String str; public Test(){}; public Test(int num){ this.num = num; } public static void main(String str[]){ Test test = new Test(); }


이렇게 생성자를 하나 더 만들어 주면 된다.


main에서 Test클래스를 생성할 때, 매개변수가 없는 클래스를 생성 하였으므로 매개변수가 없는 생성자를 찾아가 클래스를  생성한다.



여기까지가 준비한 내용이다. 


다른 개념을 추가적으로 덧 붙여 생성자를 설명하면 말 할 내용은 더 길어진다.(예를들어, 상속) 


때문에, 생성자의 모든 부분을 다루진 않았지만 어느정도 생성자에 관해 알게되었을 것이라고 예상한다.





'Java' 카테고리의 다른 글

JAVA Static이란?  (2) 2016.03.29
자바 enum 열거형  (0) 2016.01.27
JAVA - 익명클래스(Anonymous class)란?  (3) 2016.01.20
JAVA의 삼항연산자  (4) 2015.12.11
JAVA의 생성자 (1)  (0) 2015.11.12

포스팅이 도움 되셨다면, 커피 한잔 후원해주세요!
더 좋은 포스팅 작성에 큰 힘이 됩니다.

Buy me a coffeeBuy me a coffee

+ Recent posts