본문 바로가기

전체 글30

django exists() 코드를 작성하다가 보면 "지금 내가 짠 코드가 효율적일까?" 에 대한 고민을 하게 됩니다. Django는 기본적으로 ORM(Object-Relational Mapping)을 사용하는 framework입니다. 그래서 자신이 작성한 코드가 어떠한 query로 바뀌어 database에서 실행되는지 생각을 해야 더 좋은 코드를 짤 수 있습니다. 두개의 코드가 있습니다. if some_queryset.count() > 0: # some_queryset은 QuerySet에 대응합니다. ... if some_queryset.exists(): ... python의 함수 len()이 시간 복잡도가 O(1)이라는 것을 생각해 보면 이 둘의 시간 복잡도는 비슷해 보입니다. 하지만 공식 문서를 읽어보면 "참고: 적어도 하나의.. 2023. 8. 7.
[python] __init__ 파이썬을 공부한지 1년이 되가는데. 이제야 __init__의 용도를 알게되어서 부끄럽지만 부끄럽다고 정리를 안하면 앞으로도 안할것을 알기 때문에 정리를 합니다. 자바로 치면 생성자와 비슷한 역할을 합니다. 목차 클래스란 __init__란 self란 클래스란 클래스란 일종의 모형입니다. 이 모형에서 속성과 메서드를 담을 수 있습니다. 예를 들어 class MyClass: x = 5 위와 같은 클래스를 만들었다면 같은 모형을 계속 복사 할 수 있습니다. p1 = MyClass() p2 = MyClass() print(p1.x) # 5가 출력 print(p2.x) # 똑같이 5가 출력 아쉬운 점이 있다면 항상 x는 5라는 것입니다. 저는 x를 3 혹은 10으로 바꾸고 싶은데 말이죠. 이때 사용하는게 __ini.. 2023. 8. 5.
java 생성자 오늘도 역시 강의 따라 치다가 에러가 나서 개념을 정리해 봅니다. 참 자바는 정리할것들이 많네요. 생성자란 자바 클래스를 보다가 보면 클래스 이름과 메소드의 이름이 동일한 것을 볼 수 있습니다. public class Article { // 기본 생성자 public Article() { // 생성자의 내용을 필요에 맞게 초기화하거나 빈 상태로 둘 수 있습니다. } // 기타 멤버 변수와 메서드들... } 이게 생성자입니다. 특징 클래스명과 메서드명이 같다. 리턴 타입을 정의하지 않는다(void도 사용하지 않는다.). 인스턴스를 생성할때 new 클래스명 으로 만들잖아요. 이때 호출 되는 것이 생성자 입니다. Article article = new Article(); 초기화 객체 생성 후 객체의 초기화를 하.. 2023. 8. 4.
Failed to load ApplicationContext 에러 해결(오타) Failed to load ApplicationContext java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:98) .... Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource.. 2023. 8. 4.