본문 바로가기

전체 글

(174)
[JavaScript] 강제변환 - 명시적 강제변환, Explicit Coercion 이 글의 내용은 자바스크립트의 강제변환의 좋고 나쁨을 충분히 이해하고, 자신의 프로그램에 적절한지 스스로 현명하게 판단할 수 있도록 하기위한 내용을 작성했다. 어떤 값을 다른 타입의 값을 바꾸는 과정이 명시적이면 '타입 캐스팅, Type Casting' 이고, 값이 사용되는 규칙에 따라 암시적이면 '강제변환, Coercion' 이라고 한다. '타입 캐스팅'은 정적 타입 언어에서 컴파일 시점에, '강제 변환'은 동적 타입 언어에서 런타임 시점에 발생한다. 본 글은 '강제 변환'을 세부적으로 나눠 '명시적 강제변한'과 '암시적 강제변환'으로 구별할 것이며, '명시적 강제변환'은 코드만 봐도 의도적으로 탕입변환을 일으킨다는 사실이 명백한 반면, '암시적 강제변환'은 다른 작업 도중 불분명한 부수 효과로부터 발..
[JavaScript] 강제변환 - 추상 연산, Abstract operation 이 글의 내용은 자바스크립트의 강제변환의 좋고 나쁨을 충분히 이해하고, 자신의 프로그램에 적절한지 스스로 현명하게 판단할 수 있도록 하기위한 내용을 작성했다. 어떤 값을 다른 타입의 값을 바꾸는 과정이 명시적이면 '타입 캐스팅, Type Casting' 이고, 값이 사용되는 규칙에 따라 암시적이면 '강제변환, Coercion' 이라고 한다. '타입 캐스팅'은 정적 타입 언어에서 컴파일 시점에, '강제 변환'은 동적 타입 언어에서 런타임 시점에 발생한다. 본 글은 '강제 변환'을 세부적으로 나눠 '명시적 강제변한'과 '암시적 강제변환'으로 구별할 것이며, '명시적 강제변환'은 코드만 봐도 의도적으로 탕입변환을 일으킨다는 사실이 명백한 반면, '암시적 강제변환'은 다른 작업 도중 불분명한 부수 효과로부터 발..
[JavaScript] 네이티브, native 다음은 가장 많이 쓰는 네이티브 들이고, 네이티브는 사실 내장 함수이다. - String() - Number() - Boolen() - Array() - Object() - Function() - RegExp() - Date() - Error() - Symbol() : ES6에서 추가됨 필자는 Java를 주로 썼기 때문에 String()이 문자열 값을 생성하는생성자와 비슷하다고 생각했고, 아래와 같이 쓸 수 있다는 것을 알았다. var s = new String("Hello World!"); console.log(s.toString()); // Hello World! 그러나, 네이티브는 생성자처럼 사용할 수 있지만 실제로 생성되는 결과물은 예상과 달랐다. typeof s; // "object" s ins..
[JavaScript] 값(value), 레퍼런스(Reference) 값, Value 자바스크립트는 포인터라는 개념 자체가 없고, 참조하는 방법도 조금 다르다. 어떤 변수가 다른 변수를 참조할 수 없다. !! 포인터가 없다 !! 자바스크립트에서 레퍼런스는 공유된 값을 가리키므로 서로 다른 10개의 레퍼런스가 있다면, 이들은 저마다 항상 공유된 단일 값을 개별적으로 참조한다. 즉, 값 또는 레퍼런스의 할당 및 전달을 제어하는 구문 암시가 전혀 없다. 값의 타입만으로 값-복사, 레퍼런스-복사 둘 중 한쪽이 결정된다. null, undefined, string, number, boolean, symbol 같은 단순값은 언제나 값-복사 방식으로 할당/전달된다. 객체(배열과 박싱된 객체 래퍼 전체)나 함수 등 합성 값은 할당/전달시 반드시 레퍼런스 사본을 생성한다. CASE 1. ..
[Java] java.io.NotSerializableException 오류 해결 ⌗ 오류 현상 Caused by: java.io.NotSerializableException: at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1184) at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432) at java.io.ObjectOutputStream.writeOb..
[MAC] 사용중인 포트로 프로세스 찾아서 강제 종료(kill)하기 로컬에서 프로젝트를 실행하다가 간혹 비정상적으로 종료되는 경우에 사용중인 포트가 있어 이를 강제로 Kill해야하는 경우가 있어 이를 위해 작성한다.. ⌗ 사용중인 Port로 프로세스 PID 찾기 # 사용법 lsof -i :포트번호 # 예시 lsof -i :8080 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME test 1234 shaking 15u IPv4 0x1f23462a48d69d65 0t0 TCP localhost:cslistener (LISTEN) ⌗ 프로세스 PID 로 강제 종료하기 # 사용법 kill -9 [PID] # 예시 kill -9 1234 [참고] stackoverflow.com/questions/3855127/find-and-kill-p..
[Server] 통신 상태, HTTP status HTTP status code (200, 300, 400, 500) [참고] http://i.stack.imgur.com/whhD1.png
[JPA] 영속성 관리 : 매핑한 엔티티를 엔티티 매니저를 통해 엔티티의 생명 주기는 어떻게 사용되는가 엔티티 매니저는 엔티티를 저장하고, 수정하고, 삭제하고. 조회하는 등 엔티티와 관련된 모든 일을 처리한다. 개발자 입장에서는 엔티티 매니저는 엔티티를 저장하는 가상의 데이터베이스로 생각하자 ! 아래의 내용은 JPA 중 하이버네이트를 기준으로 기술하였음을 참고 부탁드립니다. 엔티티 매니저 팩토리와 엔티티 매니저, EntityFactory & EntityManager 데이터베이스를 하나만 사용하는 애플리케이션은 일반적으로 EntityManagerFactory를 하나만 생성한다. 예시) EntityManagerFactory emf = Persistence.createEntityManagerFactory("DB_NAME"); 이는 엔티티 매니저 팩토리를 생성하는 코드로 이를 호출하면 META-INF/persis..

❥ CHATI Github