소개
게시글
질문&답변
2023.02.19
시간복잡도와 시간제한 질문입니다.
시간복잡도가 O(n^2)인 알고리즘이 1만번의 데이터를 처리할 때, 일반적으로 1초 이내에 처리할 수 있는 경우가 많습니다.그러나 이는 매우 상대적인 기준이며, 알고리즘의 구현 방법, 사용되는 컴퓨터의 성능, 입력 데이터의 특성 등에 따라 다를 수 있습니다.따라서, 알고리즘의 성능을 측정하고 시간제한을 예측하려면 해당 알고리즘을 실제로 실행해보는 것이 가장 확실한 방법입니다. 또한, 알고리즘의 성능을 높이기 위해 최적화 기법 등을 적용할 수도 있습니다.
- 0
- 2
- 415
질문&답변
2023.02.19
request
밑줄이 쳐지는 이유는 @RequestBody 어노테이션으로 인해 스프링이 해당 매개변수가 HTTP 요청의 본문(body)에 있는 JSON 또는 XML 데이터로부터 값을 바인딩해야 한다는 것을 나타내기 위해서입니다.따라서 해당 매개변수를 바꾸면 스프링이 HTTP 요청 본문으로부터 데이터를 바인딩하지 못하게 되므로 밑줄이 쳐지는 것입니다. 만약 매개변수 이름을 변경하고 싶다면, @JsonProperty 어노테이션을 사용하여 요청 본문의 필드 이름과 매핑할 수 있습니다. 예를 들어, UserUpdateRequest 클래스에서 name 필드를 userName으로 변경하려면 다음과 같이 @JsonProperty 어노테이션을 사용할 수 있습니다: codepublic class UserUpdateRequest { @JsonProperty("userName") private String name; // ... } 이제 userName 필드 이름을 사용하여 HTTP 요청 본문에서 데이터를 바인딩할 수 있습니다.
- 1
- 2
- 473
질문&답변
2023.02.18
Docker 2 - API 패키징 "/" 슬러시 생략가능 여부 질문
Dockerfile에서 마지막 슬래시 "/"는 생략 가능합니다. 이는 Dockerfile에서 명령어가 다음 줄로 이어질 때, 명령어와 구분하기 위해 사용하는 구분자로, 마지막 줄에는 사용하지 않아도 됩니다. 따라서, 아래와 같이 작성해도 동일하게 동작합니다.WORKDIR /myfolder COPY ./package.json /myfolder COPY ./yarn.lock /myfolder 결과적으로, 슬래시의 유무는 Dockerfile의 문법적인 요구사항이 아니며, 작성 스타일에 따라 다르게 작성할 수 있습니다.
- 0
- 1
- 272
질문&답변
2023.02.18
mysql 비밀번호 재설정
에러 메시지가 'Access denied for user 'root'@'localhost' (using password: YES)' 이라면 입력한 비밀번호가 틀렸다는 의미입니다. 아마도 비밀번호 초기화 과정에서 무언가 잘못 입력하거나 저장하지 않아서 발생한 문제일 수도 있습니다.비밀번호를 초기화할 때 다음과 같은 절차를 따르셨는지 확인해보세요.MySQL 서버를 정지합니다.다음 명령을 실행하여 MySQL을 권한 없이 실행합니다.sudo mysqld_safe --skip-grant-tables 다른 터미널 창을 열고 MySQL을 실행합니다.mysql -u root 다음 명령을 실행하여 MySQL에서 비밀번호를 재설정합니다. UPDATE mysql.user SET authentication_string=password('새로운비밀번호') WHERE user='root' AND Host = 'localhost'; FLUSH PRIVILEGES; MySQL 서버를 정상적으로 시작합니다.sudo systemctl start mysql 다시 로그인하여 새로운 비밀번호가 잘 적용되었는지 확인합니다. mysql -u root -p
- 1
- 2
- 13K
질문&답변
2023.02.18
싱글톤패턴에서 질문
init() 메소드는 인스턴스 생성 시 초기화를 담당하는 메소드로 보통 생성자(constructor)에서 수행합니다. 하지만, 싱글톤 패턴에서는 생성자를 private으로 선언하므로 초기화 코드를 다른 방식으로 처리해야 합니다.그래서 instance 프로퍼티의 getter 메소드에서 초기화 코드를 호출하는 것입니다. 만약 init()을 호출하지 않고, return s_instance;만 작성한다면, s_instance가 아직 초기화되지 않았을 때 null을 반환하기 때문에 오류가 발생할 수 있습니다.따라서 init() 메소드를 호출하여 s_instance를 초기화하고, 초기화된 s_instance를 반환하도록 작성하는 것이 좋습니다. 이렇게 하면 s_instance를 호출할 때마다 초기화 코드를 작성할 필요 없이, 항상 초기화된 인스턴스를 가져올 수 있습니다.
- 0
- 1
- 468