LYnLab 로고

블로그취미로그

Hello, world!

겨우 이틀의 삽질을 거쳐 이렇게 그럴듯한 블로그가 만들어졌다. Django 프레임워크의 간결한 MVC 구조와 문법, Python의 뛰어난 확장성, 그리고 강력한 애플리케이션 조합의 시너지로 일궈낸 결과물이리라.

2015-09-12#프로그래밍

💡 이 글은 작성된지 1년 이상 지났습니다. 정보글의 경우 최신 내용이 아닐 수 있음에 유의해주세요.

겨우 이틀의 삽질을 거쳐 이렇게 그럴듯한 블로그가 만들어졌다. Django 프레임워크의 간결한 구조와 문법, Python의 뛰어난 확장성, 그리고 강력한 애플리케이션 조합의 시너지로 일궈낸 결과물이리라.

node.js는 사이트 하나를 보여주기 위해 굉장히 많은 부가 애플리케이션들을 필요로 했다. 구조도 썩 직관적인 편이 아니었으며, 무엇보다도 복잡하고 귀찮았다. 다행히도 Django는 이러한 수 많은 문제점들을 한 번에 해결해줬다. 이대로 Python 신봉자가 되어버릴 것만 같다.

구현한 기능과 구현할 기능

구현한

  • 메인 화면에서 글 목록 띄우기
  • 카테고리 기능
  • 태그 기능
    • 새 글에 자동으로 새 글 태그 붙이기
  • 소스 코드에 고정폭 글꼴(Hack) 적용
  • 포스트에 마크다운 문법 적용
  • SNS로 공유하기
  • 댓글 기능

구현할

  • 태그별로 글 모아보기
  • 글 검색 기능
  • 방명록 기능

시행 착오

추후 같은 상황이 발생했을 때 또는 다른 사람이 사이트를 구축하며 문제를 겪게될 때, 나와 같은 삽질을 하지 않도록 여기에 기록을 남겨둔다. 만약 내용이 너무 많아서 길어지게 되면 포스트를 따로 분리할 생각.

Primary Key 초기화하기

블로그를 만들면서 테스트 글을 4개 정도 쓰고 지웠는데, 그 후 새로 작성한 글이 5번부터 시작했다. DB 구조상 당연하지만, 겉보기에는 썩 거슬렸기 때문에 이 글을 기준으로 1번부터 다시 넘버링 하도록 처리하려고 했다. 하지만 의외로 이러한 기능을 구현해놓은 것들을 찾기가 어려웠다.

결국 구글링 결과, 데이터베이스를 직접 뜯어고치지 않는 이상 어렵다는 판단이 들었다. SQLite를 사용하고 있다는 전제에 설명한다. Low-level에서 데이터베이스에 바로 접근하기 위해, 우선 다음과 같이 Shell을 실행시켜준다.

$ python manage.py shell

자기가 키를 초기화하고자 하는 테이블의 이름을 확인하기 위해 목록을 확인한다.

$ .table
table01  table02  ...

키를 초기화하려는 테이블을 골라 sqlite_sequnce를 초기화 시켜주면 간단히 끝!

delete from sqlite_sequence where name='table01';

관련된 글

Rails와 GitHub Actions에 커버리지 레포트를 달아보자

이 블로그의 CMS이기도 한 Shiori를 대폭 리팩토링하면서 테스트가 얼마나 잘 작성되어있는지 궁금해졌습니다.

Rails Global ID로 전역 객체 식별하기

Global ID는 Rails의 모든 객체를 식별할 수 있는 URI(Uniform Resource Identifier)입니다.

Ruby on WebAssembly: 살짝 맛보기

Ruby 3.2에 추가된 WebAssembly 지원을 간단하게 테스트해봅시다.

작성한 댓글은 giscus를 통해 GitHub Discussion에 저장됩니다.

크리에이티브 커먼즈 라이선스크리에이티브 커먼즈 저작자표시크리에이티브 커먼즈 동일조건변경허락

본 사이트의 저작물은 별도의 언급이 없는 한 크리에이티브 커먼즈 저작자표시-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다.

LYnLab, 2011 - 2024.