Coding/Tip2023. 3. 2. 10:03

요즘 핫 한 ChatGPT를 유료 결제 하고, 이것 저것 질문을 해보았습니다.

Q: 자료 정리 방법

A: 자료 정리는 일상생활에서부터 업무에서까지 중요한 스킬입니다. 아래는 자료 정리 방법 몇 가지입니다.

  1. 분류: 자료를 분류하여 보관하는 것이 가장 기본적인 정리 방법입니다. 분류 방법은 자료의 특성과 용도에 따라 다양하게 결정할 수 있습니다.
  2. 라벨링: 자료를 분류할 때는 라벨링을 통해 자료의 내용과 용도를 쉽게 파악할 수 있도록 해야 합니다.
  3. 인덱싱: 대량의 자료를 보관하다보면 어떤 자료가 어디에 있는지 찾기 어렵습니다. 이럴 때는 인덱싱을 통해 보관한 자료의 목록을 만들어 두고, 필요한 자료를 쉽게 찾을 수 있도록 합니다.
  4. 디지털 저장소: 최근에는 종이 자료뿐 아니라 디지털 자료도 많아졌습니다. 디지털 저장소에 자료를 보관하면, 용량 절약과 검색 효율성이 높아집니다.
  5. 백업: 자료 정리를 마친 후에는 반드시 백업을 해야 합니다. 갑작스런 장치 오작동이나 데이터 유실로부터 보호하기 위해, 자료를 복사하여 보관하는 것이 좋습니다.
  6. 주기적인 정리: 자료 정리는 일회성 작업이 아니라, 주기적으로 반복하는 것이 좋습니다. 적절한 주기를 정해 자료를 정리하면, 계속해서 쌓이는 자료들을 쉽게 처리할 수 있습니다.

자료 정리는 보관하고자 하는 자료의 양과 용도, 사용자의 습관 등에 따라 다양한 방법으로 이루어질 수 있습니다. 적절한 방법을 선택하여 자료 정리를 하면, 자료 검색 및 활용에 큰 도움이 됩니다.

Posted by chobocho
Coding/Tip2023. 3. 2. 09:56

요즘 핫 한 ChatGPT를 유료 결제 하고, 이것 저것 질문을 해보았습니다.

Q: 코딩 잘 하는 법

A: 코딩을 잘 하기 위해서는 다음과 같은 방법들이 도움이 될 수 있습니다.

  1. 기본기 탄탄하게 다지기: 코딩을 잘 하기 위해서는 프로그래밍 언어의 기본 문법과 알고리즘, 자료구조 등의 기본 개념을 잘 이해하고 있어야 합니다. 이를 위해서는 기초적인 학습과 지속적인 실습이 필요합니다.
  2. 문제 해결 능력 향상: 좋은 프로그래머는 문제 해결 능력이 뛰어납니다. 프로그램 개발 과정에서 생기는 문제들을 차분히 분석하고 해결하는 능력이 필요합니다. 이를 위해 문제를 여러 각도에서 바라보고, 참조 자료와 예제들을 활용하여 문제 해결 능력을 향상시키세요.
  3. 지속적인 학습과 성장: 코딩은 끊임없는 학습과 성장이 필요한 분야입니다. 새로운 기술과 프로그래밍 언어에 대한 지식을 학습하며, 개발 프로세스를 개선하고 최신 트렌드를 따라가도록 노력해야 합니다.
  4. 협업 능력 강화: 대부분의 프로그래밍 프로젝트는 팀으로 수행됩니다. 따라서 협업 능력이 중요합니다. 다른 사람들의 코드를 이해하고, 이를 기반으로 자신의 코드를 작성하는 능력이 필요합니다.
  5. 자료와 도구 활용: 코딩을 잘 하기 위해서는 자료와 도구를 적극적으로 활용해야 합니다. 각 언어나 기술에 적합한 자료와 도구들을 찾아서 활용하는 것이 중요합니다. 여기에는 다양한 에디터, IDE, 디버깅 도구, 라이브러리 등이 포함됩니다.
  6. 문서화 작성: 프로그램 개발 과정에서는 많은 코드가 작성됩니다. 그 중에서도 문서화 작성은 매우 중요한 작업 중 하나입니다. 코드의 가독성과 유지 보수성을 높이기 위해, 주석 작성 및 문서화를 통해 코드를 설명하는 것이 좋습니다.
  7. 문제 해결 경험 쌓기: 코딩을 잘 하려면 많은 문제를 해결하는 경험이 필요합니다. 여러 가지 프로젝트를 진행하거나 온라인 코딩 대회 등을

-> 한글의 경우, 너무 길면 결과가 짤립니다.

 

A: 영문 버전

To become good at coding, here are some ways you can improve:

  1. Build a strong foundation: To become good at coding, it's important to have a strong foundation in programming languages, algorithms, and data structures. This can be achieved through basic learning and continuous practice.
  2. Improve problem-solving skills: Good programmers have excellent problem-solving skills. To develop these skills, you need to analyze problems carefully and develop logical approaches to solve them. Practice by trying to solve coding challenges and puzzles.
  3. Continuous learning and growth: Coding is a constantly evolving field, and to stay on top of it, you need to keep learning and growing. Stay up to date with the latest trends and technologies, and learn new programming languages.
  4. Develop teamwork skills: Most coding projects are done in teams, so it's essential to have teamwork skills. Be open to feedback, communicate effectively with others, and learn to work collaboratively.
  5. Use resources and tools: To become good at coding, you need to use resources and tools effectively. Find the right tools and resources for the programming language and technology you're working with.
  6. Write documentation: When you're coding, it's important to write documentation to make your code readable and understandable for others. Commenting your code and writing documentation will help you and others maintain and understand the code in the future.
  7. Gain experience in problem-solving: To become good at coding, it's important to gain experience in solving a variety of problems. You can do this by working on multiple projects, participating in online coding challenges, and learning from experienced developers.

Overall, becoming good at coding takes time and practice, but it's possible with dedication and hard work.

 

 

 

'Coding > Tip' 카테고리의 다른 글

[ChatGPT에게 묻다] 자료 정리 방법  (0) 2023.03.02
[ChatGPT에게 묻다] 문서화 잘 하는 방법  (0) 2023.03.02
[DOSBOX] 창 크기 조절 방법  (0) 2023.01.27
Posted by chobocho
Coding/Tip2023. 3. 2. 09:53

요즘 핫 한 ChatGPT를 유료 결제 하고, 이것 저것 질문을 해보았습니다.

Q: 문서화 잘 하는 방법

A: 

코드 문서화는 코드를 이해하고 유지보수하는 데 매우 중요합니다. 이를 위해 문서화는 자세하게 작성하는 것이 좋습니다. 다음은 코드 문서화를 잘하는 방법입니다.

주석 사용: 코드의 각 섹션마다 주석을 사용해 설명을 추가하세요. 주석은 코드를 이해하는 데 큰 도움이 됩니다. 변수의 용도, 코드의 목적, 함수의 입력과 출력 등을 설명하세요.

함수 및 클래스 문서화: 함수나 클래스는 문서화가 특히 중요합니다. 함수나 클래스의 기능, 인수, 반환 값 등을 자세하게 문서화하세요. 이를 위해서는 함수 또는 클래스 정의 바로 아래에 docstring을 작성하는 것이 좋습니다.

코드의 가독성 높이기: 코드의 가독성을 높이는 것이 문서화를 하는 데 중요합니다. 변수, 함수, 클래스의 이름은 의미가 명확하도록 짓고, 들여쓰기와 줄 간격을 일관성 있게 유지하세요.

라이브러리 문서 참조: 라이브러리에서 제공하는 문서를 참조하여 코드를 작성하세요. 라이브러리의 기능과 사용 방법을 잘 이해하면, 코드를 더 쉽게 문서화할 수 있습니다.

예제 코드 추가: 코드 문서화에 예제 코드를 추가하면, 사용자가 코드를 이해하는 데 더 도움이 됩니다. 예제 코드를 통해 코드의 사용법과 기능을 쉽게 이해할 수 있습니다.

문서화 도구 사용: 문서화 도구를 사용하면 자동으로 문서화를 생성할 수 있습니다. 대표적인 도구로는 Sphinx, Doxygen, Javadoc 등이 있습니다. 이러한 도구를 사용하면 문서화의 일관성과 완성도를 높일 수 있습니다.

코드를 작성하면서 함께 문서화를 작성하는 것이 좋습니다. 문서화를 작성할 때는, 코드를 작성하는 것만큼이나 신중하고, 자세하게 작성하는 것이 좋습니다.

'Coding > Tip' 카테고리의 다른 글

[ChatGPT에게 묻다] 코딩 잘 하는 법  (0) 2023.03.02
[DOSBOX] 창 크기 조절 방법  (0) 2023.01.27
[Sheet] 구글 스프레드 시트 단축키  (0) 2021.10.16
Posted by chobocho
Coding/CPP 삽질기2023. 2. 26. 20:08

요즘 핫 한 ChatGPT를 유료 결제 하고, 이것 저것 질문을 해보았습니다.

Q) please explain about the John Carmack's q_sqrt function as Korean

A) 존 카맥의 q_sqrt 함수는 양의 부동 소수점 수에 대한 빠른 제곱근 근사치 함수입니다. 이 함수는 제한된 범위의 입력에 대해 빠르고 정확하게 작동하도록 설계되었습니다.

다음은 q_sqrt 함수의 C 코드입니다:

float q_sqrt(float x) {
    int i = *(int *)&x;
    i = 0x1fbd1df5 + (i >> 1);
    return *(float *)&i;
}

q_sqrt 함수는 x라는 하나의 인자를 취합니다. 이 인자는 우리가 제곱근을 계산하려는 양의 부동 소수점 수입니다. 함수는 x의 근삿값인 제곱근을 반환합니다.

함수는 먼저 포인터 캐스트를 사용하여 float 인자를 int로 변환합니다. 그런 다음 부동 소수점 수의 정수 표현은 하나의 비트만큼 오른쪽으로 시프트됩니다.

그 다음 0x1fbd1df5라는 정수 값이 오른쪽으로 시프트된 정수 값에 더해집니다. 이 값은 제곱근 함수의 근사치를 제한된 범위의 입력에 대해 얻기 위해 선택된 매직 상수입니다. 덧셈의 결과는 포인터 캐스트를 사용하여 다시 float로 변환되고 반환됩니다.

q_sqrt 함수는 [0, 2^30] 범위의 입력에 대해 빠르고 정확합니다. 그러나 입력이 커질수록 정확도가 낮아집니다. 이 함수는 표준 라이브러리의 sqrt 함수보다 정확도가 떨어지지만 더 빠르며 근사 오차는 여전히 많은 응용 프로그램에 충분히 작습니다.


  ChatGPT 가 알려준 코드는 매우 잘 돌아가는데, 코드가 이해가 가지 않아서, 이리 저리 구글링을 해보았다.

 먼저 그 유명한, 존 카맥의 고속 역 제곱근을 코드를 보고,  

https://ko.wikipedia.org/wiki/%EA%B3%A0%EC%86%8D_%EC%97%AD_%EC%A0%9C%EA%B3%B1%EA%B7%BC

 

고속 역 제곱근 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 고속 역 제곱근(高速逆-根, fast inverse square root)은 때때로 Fast InvSqrt()나 16진수 0x5f3759df라고도 하는, IEEE 754 부동소수점 체계의 32비트 실수에 대한 제곱근의 역

ko.wikipedia.org

아래와 같은 방식으로  sqrt(x)를 구할 수 있다는 것을 알 수 있다.

그래서 아래와 같은 코드가 나오게 됩니다.

 i = 0x1fbd1df5 + (i >> 1);

그럼 이 코드를 실행 보면,

#include <iostream>

float q_sqrt(float x) {
    int i = *(int *)&x;
    i = 0x1fbd1df5 + (i >> 1);
    return *(float *)&i;
}

float q_sqrt_new_magic_number(float x) {
    int i = *(int *)&x;
    i = 0x1fbd3ee7 + (i >> 1);
    return *(float *)&i;
}


int main(int argc, char **argv) {
    std::cout << q_sqrt(9) << std::endl;
    std::cout << q_sqrt_new_magic_number(9) << std::endl;
    return 0;
}

존 카맥 형님의 매직 넘버를 사용한게 오차률이 낮습니다. ㅠㅜ

결론:   ChatGPT가 똑똑 합니다.


 

 

'Coding > CPP 삽질기' 카테고리의 다른 글

프로그래머스 사이트 기초 문제 풀기  (0) 2023.06.07
별 그리기  (0) 2021.06.08
Stack과 Heap  (0) 2021.02.25
Posted by chobocho
Coding/Python 삽질기2023. 2. 4. 01:33

1.  f-string 예제

def f_string_test():
    rate = int(100_000_000 * 0.05 / 12)
    print(f'[{rate}]')
    # 3자리 마다 , 표시
    print(f'[{rate:,}]')
    # < : 좌측 정렬
    print(f'[{rate:<11}]')
    # < : 좌측 정렬, 빈칸은 _로 채우기
    print(f'[{rate:_<11,}]')
    # ^ : 가운데 정렬, 빈칸은 _로 채우기, 3자리 마다 , 표시
    print(f'[{rate:_^11,}]')
    # > : 우측 정렬, 빈칸은 _로 채우기, 3자리 마다 , 표시
    print(f'[{rate:_>11,}]')


if __name__ == '__main__':
    f_string_test()

2. ... 

def f_string_test():
    ...


if __name__ == '__main__':
    f_string_test()

'Coding > Python 삽질기' 카테고리의 다른 글

[Python] Cycloid 곡선 그리기  (0) 2023.03.09
[Design Pattern] Singleton pattern  (0) 2022.07.12
About Pyscript  (0) 2022.06.10
Posted by chobocho
Coding/Tip2023. 1. 27. 02:16

dosbox-0.74.conf 에서 아래와 같이 수정 하면 된다.

windowresolution=1600x800
output=ddraw

 

'Coding > Tip' 카테고리의 다른 글

[ChatGPT에게 묻다] 문서화 잘 하는 방법  (0) 2023.03.02
[Sheet] 구글 스프레드 시트 단축키  (0) 2021.10.16
[Android studio] 사용 팁  (0) 2020.04.13
Posted by chobocho
Coding/Java 삽질기2022. 11. 23. 01:38

Classic Minesweeper for Android 는 어떠한 개인 정보도 수집하지 않습니다.

Classic Minesweeper for Android does not collect any personal information.

Posted by chobocho
Coding/Java 삽질기2022. 11. 16. 02:00

ImageMatch 는 어떠한 개인 정보도 수집하지 않습니다.

ImageMatch does not collect any personal information.

 

Posted by chobocho
Coding/JavsScript 삽질기2022. 9. 19. 00:58
Posted by chobocho
Coding/JavsScript 삽질기2022. 8. 25. 00:03

Javascript로 만든 계산기 입니다.

Chobocho's Simple Calculator
View
MR M+ M- MC

 

Posted by chobocho