콘텐츠로 건너뛰기

Odoo Website 모델 구조: 사이트 구성 아키텍처 완전 분석

Odoo에서 웹사이트 모델을 완전히 이해하기 위한 가이드 — 개발자와 기능 컨설턴트를 위한 실전 안내서
2026년 3월 11일 작성자
Odoo Website 모델 구조: 사이트 구성 아키텍처 완전 분석
Dasolo
| 아직 댓글이 없습니다

소개


Odoo에서 모델은 데이터베이스에 데이터를 어떻게 정리하고 보관할지를 결정하는 청사진입니다. 영업, 제품, 페이지 등 비즈니스에서 다루는 모든 정보는 특정 모델의 레코드로 존재합니다.


모델 구조를 이해하는 것은 개발자와 기능 담당 컨설턴트 모두에게 필수입니다. 모델이 바로 Odoo 데이터 설계의 기초이며, 필드 정의, 관계 설정, 비즈니스 로직 구현이 모두 여기에서 출발합니다.


이 글은 웹사이트(website) 모델에 초점을 맞춥니다. 사이트 설정 전반을 관장하는 모델로, 멀티사이트 구성, 브랜딩 변경, 외부 시스템 연동 등 사이트 관련 작업의 중심에 있습니다.

웹사이트 모델이란 무엇인가?


웹사이트 모델은 Odoo에서 한 사이트의 설정 정보를 담는 레코드입니다. 도메인, 사용 언어, 로고와 소셜 링크, 메뉴 구조 등 사이트의 외형과 동작을 결정하는 요소들이 모두 이 모델에 저장됩니다.


이 모델은 Website 앱의 일부로 모든 Odoo 웹사이트에서 사용됩니다. 멀티사이트 환경에서는 사이트마다 별도의 웹사이트 레코드를 가지며, 각 레코드는 고유 도메인·회사·언어·테마를 가질 수 있습니다.


다른 여러 Odoo 모델은 website_id 필드를 통해 이 모델을 참조합니다. 페이지, 블로그, 상품 등 콘텐츠를 특정 사이트에 속하도록 범위를 지정할 때 website_id를 사용합니다. 이 방식은 Odoo의 모델 상속과 api 설계가 함께 작동하는 전형적인 패턴입니다.

모델의 핵심 필드


다음은 웹사이트 모델에서 자주 사용되는 주요 필드들입니다. 각 필드를 이해하면 사이트 구성과 맞춤화 작업을 더 수월하게 할 수 있습니다.


1. name

종류: Char. 필수. 사이트명을 저장합니다. 백엔드의 사이트 전환기나 설정 화면에 표시되어 사이트를 식별하는 기본값으로 쓰입니다.


2. sequence

종류: Integer. 기본값 10. 여러 사이트가 있을 때 목록에서의 표시 순서를 제어합니다. 값이 낮을수록 앞에 노출됩니다.


3. domain

종류: Char. 사이트 도메인(예: https://www.mydomain.com)을 지정합니다. https가 없을 경우 자동으로 추가되며 고유해야 합니다. 라우팅과 SEO에 사용됩니다.


4. company_id

종류: Many2one (res.company). 필수. 웹사이트를 특정 회사와 연결합니다. 멀티컴퍼니 환경에서는 사이트별로 회사 관련 데이터만 표시됩니다.


5. language_ids

종류: Many2many (res.lang). 사이트에서 제공하는 언어 목록입니다. 방문자는 이들 언어 사이를 전환할 수 있으며 기본적으로 설치된 모든 언어가 포함될 수 있습니다.


6. language_count

종류: Integer. 계산된 필드. 사용 가능한 언어 수를 나타내며 화면표시나 필터링에 유용합니다.


7. default_lang_id

종류: Many2one (res.lang). 필수. 사용자가 처음 방문했을 때 기본으로 보여줄 언어입니다. 반드시 language_ids에 포함되어야 합니다.


8. auto_redirect_lang

종류: Boolean. 기본값 True. 활성화하면 방문자의 브라우저 언어에 맞춰 자동 리디렉션합니다.


9. cookies_bar

종류: Boolean. True일 경우 쿠키 동의 배너를 표시합니다. GDPR 등 규정 준수에 유용하며 Odoo가 쿠키 정책 페이지를 자동 생성할 수 있습니다.


10. logo

종류: Binary. 사이트 로고 이미지입니다. 헤더 등 여러 위치에 표시되며 설정하지 않으면 기본 Odoo 로고가 사용됩니다.


11. favicon

종류: Binary. 브라우저 탭에 보이는 파비콘입니다. Odoo가 256x256 크기로 리사이즈합니다.


12. social_twitter

종류: Char. Twitter/X 계정 URL. 기본값은 회사 설정에서 가져오며 푸터나 공유 시 사용됩니다.


13. social_facebook

종류: Char. Facebook 계정 URL. 다른 소셜 필드와 동일한 방식으로 동작합니다.


14. social_linkedin

종류: Char. LinkedIn 계정 URL.


15. social_instagram

종류: Char. Instagram 계정 URL.


16. social_youtube

종류: Char. YouTube 계정 URL.


17. social_github

종류: Char. GitHub 계정 URL.


18. social_tiktok

종류: Char. TikTok 계정 URL.


19. social_default_image

종류: Binary. 소셜 공유 시 기본으로 사용할 이미지입니다. 설정하면 로고 대신 Open Graph나 트위터 카드에 사용됩니다.


20. google_analytics_key

종류: Char. 구글 애널리틱스 추적 키를 저장합니다. 구성하면 Odoo가 추적 스크립트를 삽입합니다.


21. google_maps_api_key

종류: Char. Google Maps API 키로 지도와 위치 기능에 사용됩니다.


22. user_id

종류: Many2one (res.users). 필수. 이 사이트의 공개 사용자 계정입니다. 포털 접근과 익명 방문자 처리를 위해 사용되며 회사 설정에서 기본값을 가져옵니다.


23. cdn_activated

종류: Boolean. True면 정적 자산을 CDN으로 제공하여 성능을 개선합니다.


24. cdn_url

종류: Char. CDN이 활성화된 경우 사용하는 CDN 기본 URL입니다.


25. cdn_filters

종류: Text. 리라이트할 URL을 정의하는 정규식 패턴입니다. 기본값은 정적 경로를 포함합니다.


26. menu_id

종류: Many2one (website.menu). 계산된 필드로 사이트의 메인 메뉴(루트 메뉴 항목)를 가리킵니다.


27. homepage_url

종류: Char. 홈페이지 경로(예: /contactus 또는 /shop)입니다. 반드시 슬래시(/)로 시작해야 합니다.


28. custom_code_head

종류: Html. head 태그에 삽입할 커스텀 코드(분석 스크립트, 메타 태그 등)를 저장합니다.


29. custom_code_footer

종류: Html. footer에 삽입할 코드로 채팅 위젯이나 추가 추적 스크립트 등에 유용합니다.


30. robots_txt

종류: Html. 맞춤형 robots.txt 내용을 저장하여 검색엔진 크롤러 접근을 제어할 수 있습니다.


31. theme_id

종류: Many2one (ir.module.module). 현재 설치된 테마를 가리킵니다.


32. auth_signup_uninvited

종류: Selection. 값은 b2b(초대 필요) 또는 b2c(무기명 가입 허용)로 방문자의 회원가입 방식(초대 필요 여부)을 제어합니다.


33. create_date

종류: Datetime. 레코드 생성 시각으로 Odoo가 자동 관리합니다.


34. write_date

종류: Datetime. 마지막 수정 시각으로 자동 관리됩니다.

업무 흐름에서 이 모델의 활용 방식


1. 멀티사이트와 지역화(로컬라이제이션)

여러 브랜드나 지역을 운영하는 기업은 사이트별로 개별 웹사이트 레코드를 만듭니다. 각 레코드는 도메인과 언어, 콘텐츠를 독립적으로 가질 수 있으며, 페이지·블로그·상품 등은 website_id로 해당 사이트 범위에 속하도록 설정됩니다.


2. 브랜딩과 정체성 관리

로고, 파비콘, 소셜 링크 등은 사이트 단위로 설정합니다. 마케팅팀이 리브랜딩할 때 이 필드를 갱신하면 사이트 전반에 반영됩니다. social_default_image는 공유 카드 표시를 개선합니다.


3. 언어와 SEO

language_ids와 default_lang_id는 제공 언어 구성과 초기 노출 언어를 결정합니다. auto_redirect_lang는 방문자 경험을 향상시키며 올바른 설정은 hreflang과 SEO에 긍정적 영향을 줍니다.


4. 성능 최적화와 CDN

트래픽 증가에 대응하려면 cdn_activated와 cdn_url을 사용해 정적 자산을 CDN으로 분산하는 것이 효과적입니다. cdn_filters로 리라이트 대상을 세밀하게 제어할 수 있습니다.


5. 규정 준수와 분석

cookies_bar로 쿠키 동의 배너를 띄우고, google_analytics_key나 custom_code_head로 추적 스크립트를 삽입합니다. robots_txt로 크롤러 접근을 통제해 검색엔진 정책을 관리하세요.

개발자가 이 모델을 확장하는 방법


개발자는 여러 패턴을 통해 웹사이트 모델을 확장합니다. 그중에서도 Odoo의 모델 상속 방식이 가장 기본적입니다.


모델 상속

모델을 확장하려면 _inherit = 'website'를 사용합니다. 새 필드를 추가하거나 메서드를 오버라이드하고 제약을 추가할 수 있으며, 변경사항을 별도 모듈에 보관하면 업그레이드 유지보수가 용이합니다.


필드 추가

상속된 모델에 필요한 새 필드를 정의하세요. Char, Many2one, Boolean, Integer, Text, Selection 등 적절한 타입을 선택하고, 멀티사이트 논리를 고려해 사이트 종속 필드인지 판단합니다.


파이썬 확장

create, write, unlink 같은 기본 메서드를 오버라이드해 추가 로직을 넣을 수 있습니다. 기존 동작을 보존하려면 super()를 호출해야 하며, 특히 programmatic으로 사이트를 생성할 때 user_id와 company_id에 유의하세요.


Odoo Studio

코드 없이 필드를 추가할 수 있는 Odoo Studio는 빠른 커스터마이즈에 유용합니다. 다만 복잡한 비즈니스 로직이나 API 기반 연동이 필요한 경우엔 커스텀 모듈로 관리하는 편이 장기적으로 더 안전합니다.

권장 실무(베스트 프랙티스)


  • 프로덕션에 배포할 때는 각 사이트에 대해 도메인을 설정하세요. 라우팅과 SEO에 도움이 됩니다.
  • default_lang_id가 반드시 language_ids에 포함되도록 유지하세요. Odoo는 변경 시 이를 검증합니다.
  • 서드파티 스크립트는 custom_code_head와 custom_code_footer에 넣고 코어 템플릿을 직접 수정하지 않는 것이 안전합니다.
  • API 연동을 구축할 때는 XML-RPC나 JSON-RPC를 사용하세요. 웹사이트 모델은 외부에서 완전히 접근 가능하며 콘텐츠 동기화 시 website_id 매핑을 정확히 처리해야 합니다.
  • 커스텀 필드는 향후 충돌을 피하기 위해 x_ 접두사나 모듈명 기반 접두사를 사용하는 것을 권장합니다.

자주 하는 실수


  • 도메인을 중복 생성하면 안 됩니다. domain 필드는 고유 제약이 있습니다.
  • API로 사이트를 만들 때 user_id를 설정하지 않으면 오류가 납니다. 이 필드는 필수입니다.
  • homepage_url을 슬래시 없이 설정하면 Odoo가 에러를 발생시킵니다. 경로는 반드시 '/'로 시작해야 합니다.
  • cdn_activated를 켜고 cdn_url을 올바르게 설정하지 않으면 자산 로드에 실패할 수 있습니다.
  • core 메서드를 오버라이드하면서 super()를 호출하지 않으면 다른 모듈과의 충돌이나 향후 업그레이드 문제를 야기할 수 있습니다.

마무리


웹사이트 모델은 Odoo에서 사이트 설정의 중심입니다. 도메인, 언어, 브랜딩, 동작을 이 모델이 저장하며 다른 모델들이 이를 참조해 사이트별 콘텐츠 범위를 관리합니다. 이 구조를 이해하면 사이트 구성, 커스터마이즈, 통합 작업을 더 안정적으로 수행할 수 있습니다.


기능 담당 컨설턴트가 멀티사이트 요건을 정리하든, 개발자가 맞춤 모듈을 설계하든 웹사이트 모델에 대한 탄탄한 이해는 시간 절약과 오류 예방으로 이어집니다.

Odoo 도입 지원이 필요하신가요?


Dasolo는 기업의 Odoo 도입, 커스터마이즈, 성능 최적화를 돕습니다. 특히 API 연동과 Odoo 개발에 전문성이 있으며, 웹사이트 같은 핵심 모델 설계 경험을 보유하고 있습니다.


Odoo 도입·멀티사이트 구성 또는 시스템 연동에 도움이 필요하면 도와드리겠습니다. 데모 신청하기 프로젝트 상담 일정을 잡으세요.

Odoo Website 모델 구조: 사이트 구성 아키텍처 완전 분석
Dasolo 2026년 3월 11일
이 게시물 공유하기
로그인 의견을 남기기