깃 클라이언트를 쓰지 않고 개발툴 인텔리제이나 이클립스에서 깃을 사용하거나 커맨드로 깃을 이용하는 사람이 있을 것이다. 보통 GUI 툴로 소스트리를 사용하지만 쫌 더 가벼운 깃 포크를 한번 써보는 것을 추천한다. 개발툴에서 사용하던 사람은 취향이니 개발툴에서 계속 사용해도 상관없다. 깃 포크는 무료버전과 유료버전이 따로 있다. 무료버전을 쓰더라도 왠만한 기능은 다 쓸 수 있다. 깃 GUI 툴을 회사에서 사용하고 강력한 기능을 원하면 유료버전인 깃 크라켄을 알아보는것도 좋다. 나는 깃을 개발툴에서만 사용했는데 깃 포크를 써보니 소스파일이 어느 위치에서 수정되었는지 알 수 있고, diff 파일을 편하게 볼 수 있어서 좋았다.
[타입 변환] 타입 변환이란 데이터 타입을 다른 데이터 타입으로 변환하는 것을 말한다. 타입변환은 크게 자동 타입 변환(promotion)과 강제타입 변환(casting)이 있다. [자동타입 변환(Promotion)과 강제타입 변환(Casting)] 자동타입 변환은 값의 허용 범위가 작은 타입이 허용 범위가 큰 타입으로 저장될 때 발생한다. 정수형 끼리 자동 타입 변환은 허용범위가 큰 타입으로 저장하면 되지만 음수 범위가 없는 char 타입으로 자동 변환이 안된다. 정수형은 무조건 실수형으로 자동 타입 변환이 된다. 자동타입 변환과는 반대로 큰 허용 범위 타입에서 작은 허용 범위 타입으로 변하게 할때는 앞에 괄호안에 작은 허용 범위 타입을 써줘야 한다. 실수형을 정수형 타입에 넣을 때도 앞에 타입을 써줘..
[변수] 컴퓨터 메모리(RAM)는 값을 저장할 수 있는 수많은 번지(주소)들로 구성되어 있다. 변수는 값을 저장할 수 있는 메모리의 특정 번지에 붙이는 이름이다. 프로그램은 변수를 통해 메모리의 특정 번지에 값을 저장하고 읽을 수 있다. 따라서 메모리에 값을 저장하고 싶으면 변수를 써야 하며, 이 변수를 메모리의 어디에 저장하고 어떤 방식으로 저장할지는 프로그래밍 언어와 운영체제가 정한다. 자바의 경우는 JVM이 한다. [변수 사용] 변수 명으로 예약어는 쓸 수가 없는데 예약어는 이미 해당 프로그래밍 언어에서 의미를 갖고 사용되는 단어이다. 만약 사용하면 컴파일 에러가 발생한다. ※ 예약어 ex) boolean, true, try, void, return, private, class, import, fi..
[공부이유] 코딩테스트는 좋은 회사를 가기 위해서는 필수적으로 공부를 해야 한다. 코딩테스트를 안보는 회사도 있지만 그 회사가 코딩테스트를 보는 회사보다 좋은 경우는 별로 없을것이고 자기가 가고 싶은 회사가 코딩테스트를 보면 면접도 볼 수 없다. 회사에서 코딩테스트는 많은 입사자를 거르기 위한 거름망 용도로 생각하면 된다. [코딩테스트 공부 사이트, 책과 사이트 장단점] 코딩테스트 공부 할 수 있는 사이트는 많지만 대표적으로 3군데가 있다. 1. 백준(https://www.acmicpc.net/) 2. 프로그래머스(https://programmers.co.kr/) 3. 릿코드(https://leetcode.com/) 코드를 크게 입력, 구현부, 출력 으로 나눴을때 백준은 다 코딩 해야 되지만, 프로그래머..
디비버 툴을 이용하면서 같은 DB에 여러 script 윈도우 창을 띄워서 하게 되는 경우가 많다. script window창을 생성 할때 마다 새로운 세션이 DB에 연결되면 서버에 많은 무리가 갈 수 있기때문에 여러 script window를 생성하더 라도 한개의 세션만을 연결 할수 있는 방법이 아래 설정이다. 환경설정 > 편집기 > SQL 편집기 에서 Open separate connection for each editor 체크 해제하면 편집기 추가시 커넥션 하나씩 추가 안되게 할 수 있다. 운영서버 연결할때는 해제해야한다.
이클립스를 다운받았는데 WAS를 설정 하려고 했더니 아래 처럼 preferences에 server 탭이 없는 경우가 있을 것이다. 위 경우는 이클립스 받을때 IDE for Java Developers로 다운받아서 이기 때문에 아래 Java and Web Developers로 새로 다운을 받으면 된다.
배포 shell 스크립트로 배포를 할때는 자동으로 tomcat이 shutdown되는 일이 있었는데 수동으로 한줄 한줄 스크립트를 실행시켜서 배포 할때는 자동으로 tomcat이 shutdown 되지가 않아 원인을 2달동안 못찾았다 원인 파악 후 위 이슈가 생기려면 아래와 같은 조건이 필요하다 1. 배포 스크립트에서 tomcat을 서비스로 실행시키지 않고 tomcat의 shutdown.sh, startup.sh 로 실행시킨다. 2. 1번 조건에서 shutdown.sh, start.sh를 백그라운드로 실행시키지 않는다. (&, nohup 사용 안함) 3. 2번 조건으로 tomcat을 start 한 후 마지막에 tail -f 로 로그를 확인한다 4. tail -f 로 로그를 확인 하는 중에 ssh 접속 프로그램..
자바스크립트의 함수를 호출하면서 매개변수 원시 타입 값은 값을 전달 받고, 객체는 주소를 전달 받는다. 객체는 주소를 전달 받기 때문에 함수 body에서 객체를 변경 하였을 경우 원본이 훼손된다. var changeVal = function(primitive, obj) { primitive += 100; obj.name = "kang"; } var num = 50; var obj = { name: "lee" }; changeVal(num, obj); console.log(num); //50 console.log(obj.name); //kang num은 원시타입으로 값을 그대로 전달 받았지만, obj는 객체이기 때문에 주소가 전달 되었고, 함수 body에서 name을 변경 하였더니 원본 자체도 name이 ..
호이스팅 모르면 아래 글 참조 https://deftkang.tistory.com/235 [JS] 자바스크립트 변수 호이스팅(hoisting) 쉽게 이해하기 자바스크립트는 인터프리터 언어여서 코드가 한줄 씩 순차적으로 실행된다고 생각하지만 소스 코드가 실행되는 런타임전에 자바스크립트 엔진에서 변수 선언이 먼저 실행된다. 변수 호이스팅 deftkang.tistory.com 변수 호이스팅은 변수 선언문이 런타임 이전에 실행되어 undefiend로 초기화 되지만 함수 호이스팅은 함수 선언문으로 초기화 된다. console.log(score); //undefiend console.log(add(3, 4)); //7 console.log(minus); //undefiend score = 80; var score;..
모든 언어에서의 데이터 타입은 크게 원시 타입(primitive type)과 참조 타입(reference type)으로 구분된다. 원시 값은 메모리에 값이 그대로 할당된다. 하지만 참조 타입은 메모리에 실제 값이 있는 주소를 참조한다. 원시타입은 모든 숫자형, char, boolean 등이 있고, 참조 타입은 String, Class, Interface, 배열 등이 있다. String이 참조 타입이니 메모리에 실제 값이 있는 주소를 참조하게 된다. 원래는 메모리 영역이 스택과 힙으로 나눠 져서 구동 되지만 이해를 돕기 위해 하나의 메모리로 그림을 그렸다. 위 처럼 string name과 string name2는 값이 kang 으로 같은 값이지만 메모리의 주소는 다르다. == 는 메모리의 값을 비교 하므로..
자바스크립트는 인터프리터 언어여서 코드가 한줄 씩 순차적으로 실행된다고 생각하지만 소스 코드가 실행되는 런타임전에 자바스크립트 엔진에서 변수 선언이 먼저 실행된다. 변수 호이스팅이란 호이스팅이란 끌어올린다는 뜻이다. 즉 변수를 위로 끌어올려서 먼저 실행시킨다는게 변수 호이스팅이다. 아래 예제 처럼 score 변수 선언 없이 그냥 출력하려고 하면 ReferenceError가 발생한다. console.log(score); //ReferenceError: score is not defined 아래 예제 에서는 출력문 밑에 score 변수를 선언하고 위에서 score를 출력 했지만 변수에 아무값도 할당하지 않은 값 undefiend가 출력 되었다. console.log(score); //undefiend var..
변수 선언과 값들에 대한 타입 자바스크립트는 변수를 선언할 때 타입을 미리 지정하지 않고, var 라는 한가지 키워드로만 변수를 선언한다. 변수의 값은 어떤 타입으로든 저장이 가능하며, 변수의 어떤 타입의 데이터를 저장하느냐에 따라 변수의 타입이 결정된다. var intValue = 10; console.log(typeof(intValue)); //number; var strValue = "string type"; console.log(typeof(strValue)); //string; var booleanValue = true; console.log(typeof(booleanValue)); //boolean; var functionValue = function() { return "hello world..