Elixir

    Elixir의 Ecto에서 virtual 키워드가 의미하는 것

    처음에는 OOP의 virtual 개념이랑 헷갈려서 많이 혼동했던 부분. ecto에서 field를 정의할 때 virtual을 정해줄 수 있다. 여기서 virtual은 DB에 저장하지 않는 field라는 뜻이다. DB에 저장하지도 않은 테이블이 왜 필요하나면, 이것을 이용해서 유용한 처리를 할 수 있기 때문이다. 그 스키마와 연관된 값이지만 저장할 필요는 없는, 그런 값이 필요할 때가 있다. 공식 문서에서 발췌한 설명이다. 이 경우에서는 password 필드를 virtual로 하였다. password 필드는 평문 패스워드가 들어가는데 DB에 직접 들어갈 필요는 없다. 하지만 user와 관련된 값이기에 분리하기도 애매하다 virtual로 저장되기에 DB에 저장되지 않는다. changeset에서 이 값을 변환해..