https://medium.com/@su_bak/%EB%94%94%EC%9E%90%EC%9D%B8-%ED%8C%A8%ED%84%B4-design-pattern-%EC%9D%B4%EB%9E%80-9f8492209b07