Tip/Android2024. 10. 9. 12:45

Posted by chobocho
Tip/Android2024. 10. 9. 12:44

Posted by chobocho
My Life/version 6.12024. 9. 1. 21:06

코딩을 처음 배울 때, 문법만 배우면서 무엇을 해야 할지 막막 할 때가 많다.

이럴 때, 다음과 같은 프로그램을 만들어 보면 도움이 된다.

1. 텍스트 파일의 문자 개수, 단어 개수, 라인 수를 알려주는 프로그램

2. 텍스트 파일의 숫자의 개수를 히스토 그램을 그려주는 프로그램

3. Binary Search 

4. Bloom filter

5.테트리스

6. 소코반 게임

6. 유전 알고리즘으로 2차 방정식 풀기

7. 2인용 테트리스

8. 1:1 온라인 테트리스

9: 2:2 온라인 테트리스

10. 간단한 DNN 

Posted by chobocho
Coding/Java 삽질기2024. 6. 25. 01:02
 // 한번에 원하는 위치로 이동하기
 ebookListView.setSelection(loadCurrentPosition())
// 현재 보이는 첫 번째 줄 위치 가져오기
ebookListView.firstVisiblePosition

 

Posted by chobocho
Coding/Tip2024. 5. 11. 09:56

구글과 바이두에서 100 + 20% 를 계산하면 아래와 같이 차이가 발생한다.
이는 한국은 미국식을 따르고 중국은 중국식 계산을 따르기 때문이라고 한다.

이렇게 우리가 생각하지 못한 작은 부분에서도 나라별로 차이가 발생한다.



Posted by chobocho
Coding/Python 삽질기2024. 5. 11. 00:34

1. Tab : 자동 완성

2. Shift + Tab : 함수의 설명을 보여준다 (Docstring)

3. ESC (명령어 모드) 에서 Shfit + L : 줄번호를 보여준다

 

4. ESC (명령어 모드) 에서 D, D : 해당 셀을 삭제 한다

5. ESC (명령어 모드) 에서 A : 해당 셀 아래에 새로운 행을 추가한다

6. Ctrl + Enter : 해당 셀을 실행한다

7. Alt + Enter :  해당 셀을 실행하고 아래에 새로운 셀을 추가한다

8. Shift + Enter : 해당 셀을 실행하고 아래 셀로 이동한다. 만약 아래 셀이 없으면 새로운 셀을 추가한다.

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

[SQL] BEGIN TRANSACTION  (0) 2024.03.07
Cardioid 그리기  (0) 2024.02.17
[Python] PNG to ICO 변환 하기  (0) 2024.01.04
Posted by chobocho
My Life/Book Story2024. 3. 21. 00:20

https://www.yes24.com/Product/Goods/125448242

 

[전자책]컴퓨터 밑바닥의 비밀 - 예스24

코드를 실행하면 컴퓨터 내부에서는 어떤 일이 벌어질까?운영 체제부터 CPU, 동기화, 입출력을 구현하는 원리까지, 내 코드를 바꿔줄 컴퓨터 밑바닥의 비밀을 들여다보자! `어? 이 코드가 왜 돌아

www.yes24.com

 

https://www.yes24.com/Product/Goods/59517143

 

[전자책]초고속성장의 조건, PDCA - 예스24

“우리는 업무를 위한 힘의 80%를 어디에 쏟는가계획인가, 실행인가?” ‘마시멜로 챌린지’라는 게임을 아는가? 네 명이 한 조가 되어 스파게티면 20가닥, 테이프 1개, 실 1타래, 마시멜로 1개를

www.yes24.com

 

https://www.yes24.com/Product/Goods/22701724

 

[전자책]소프트웨어 장인 - 예스24

더 나은 개발자가 되어, 더 좋은 코드를 전달하고 싶은 당신을 위하여...이 책에서 풀어낸 소프트웨어 장인정신의 프로페셔널리즘, 기술적 탁월함, 고객 만족은 애자일, 린(lean) 원칙들과 시너지

www.yes24.com

 

https://www.yes24.com/Product/Goods/102819659

 

육일약국 갑시다 - 예스24

“기사님요, 육일약국 좀 가주이소.”“야? 육일약국요? 거가 어딘데예?”사회에 첫발을 내딛던 시절 김성오 대표에게는 졸업장과 600만 원의 빚, 그리고 열정이 전부였다. 마산 변두리에 4.5평짜

www.yes24.com

 

https://www.yes24.com/Product/Goods/79633189

 

두려움 없는 조직 - 예스24

“침묵은 어떻게 조직의 성과를 갉아먹는가?”하버드 경영대학원이 25년 연구 끝에 밝혀낸 최강의 리더십 프로그램하버드 경영대학원 종신교수이자 세계적인 경영학 구루 에이미 에드먼슨이 25

www.yes24.com

 

https://www.yes24.com/Product/Goods/47245387

 

생산성 - 예스24

“생산성 높은 기업이 가장 창의적인 기업이다!”‘쥐어짜기’ 방식에서 ‘창의 중심’으로,개인과 기업의 ‘생산성 개선’에 관한 명쾌한 해법!- 공장의 낡은 개념 취급 받았던 ‘생산성’이

www.yes24.com

 

Posted by chobocho
Coding/Java 삽질기2024. 3. 8. 00:36

IntelliJ에 있는 유용한 기능 중 하나가 JShell 콘솔이다.

아래와 같이 입력 후, 실행을 하면

결과를 실행 창에서 볼 수 있다.

 

Posted by chobocho
Coding/Python 삽질기2024. 3. 7. 00:45

Python으로 작성한 SQL문에서 대량의 insert를 수행시 느려지는 문제가 있어서, 

DB전문가에게 문의를 하니, 간단히 답을 알려 주셨다.

해결책은 "BEGIN TRANSACTION"을 사용하면 되는 것이었다.

이 한줄을 넣고 나니, 10배 이상 속도가 빨라졌다;;

[기존코드]

    def insert(self, data):
        insert_memo_sql = '''INSERT INTO minim(title, memo) VALUES(?, ?);'''
        try:
            cur = self.db_conn.cursor()
            cur.execute(insert_memo_sql, (data[0], data[1]))
            self.db_conn.commit()
            print(cur.lastrowid)
            return cur.lastrowid
        except sqlite3.Error as e:
            print(e)
        return -1

[개선코드]

    def insert_bigdata(self, big_data):
        insert_memo_sql = '''INSERT INTO minim(title, memo) VALUES(?, ?);'''
        try:
            cur = self.db_conn.cursor()
            cur.execute("BEGIN TRANSACTION")
            for data in big_data:
                cur.execute(insert_memo_sql, (data[0], data[1]))
            self.db_conn.commit()
            print(cur.lastrowid)
            return cur.lastrowid
        except sqlite3.Error as e:
            print(e)
            self.db_conn.rollback()  # rollback the transaction if there's any error
        return -1

 

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

[Python] Jupyter notebook 팁  (0) 2024.05.11
Cardioid 그리기  (0) 2024.02.17
[Python] PNG to ICO 변환 하기  (0) 2024.01.04
Posted by chobocho
Coding/Python 삽질기2024. 2. 17. 19:16
import math
import pygame


def init_game():
    pygame.init()
    pygame.key.set_repeat(0)
    canvas = pygame.display.set_mode((800, 600))
    fps_clock = pygame.time.Clock()
    return canvas, fps_clock


def main():
    canvas, fps_clock = init_game()

    title = 'Cardioid'
    pygame.display.set_caption(title)
    max_dots = 300

    while True:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                return

        draw_cardioid(canvas, max_dots)
        pygame.display.update()
        fps_clock.tick(30)


def draw_cardioid(canvas, max_dots):

    canvas.fill((0, 0, 0))
    start_x = canvas.get_width() // 2
    start_y = canvas.get_height() // 2
    radius = 250

    for i in range(max_dots):
        radian = (math.pi / 180) * (360 / max_dots) * i
        sx = start_x + int(math.cos(radian) * radius)
        sy = start_y + int(math.sin(radian) * radius)

        ex = start_x + int(math.cos(radian * 2) * radius)
        ey = start_y + int(math.sin(radian * 2) * radius)

        pygame.draw.line(canvas, (0, 255, 0), (sx, sy), (ex, ey))


if __name__ == '__main__':
    main()

100개의 점을 사용한 경우
200개의 점을 사용한 경우
300개의 점을 사용한 경우

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

[SQL] BEGIN TRANSACTION  (0) 2024.03.07
[Python] PNG to ICO 변환 하기  (0) 2024.01.04
[Python] 프랙탈 나무 만들기  (0) 2023.09.15
Posted by chobocho