티스토리

^..^v
검색하기

블로그 홈

^..^v

myanjini.tistory.com/m

^..^v 님의 블로그입니다.

구독자
2
방명록 방문하기
728x90
반응형

주요 글 목록

  • 실습 : 행맨 인터넷에서 가져온 임의의 단어를 주어진 횟수내에 맞추는 행맨 게임을 만들어 보겠습니다.  먼저 requests 모듈을 사용해 랜덤 단어를 가져오는 함수를 정의합니다. import requestsimport randomdef get_random_word(): response = requests.get("https://random-word-api.herokuapp.com/word?number=1") if response.status_code == 200: return response.json()[0] else: return Noneget_random_word 함수는 랜덤 단어 API의 엔드포인트에 GET 요청을 보내어 단어를 가져옵니다. 요청이 성공하면 응답에서 단어.. 공감수 0 댓글수 0 2024. 8. 4.
  • 실습 : 가위, 바위, 보 게임 사용자와 컴퓨터가 가위바위보 게임을 3판 양승제로 진행하는 프로그램을 작성합니다. 프로그램은 사용자의 입력을 받아 컴퓨터의 선택과 비교하여 승패를 결정하고, 게임의 결과를 기록하여 최종 승자를 출력합니다.  로직 구현에 필요한 변수를 선언하고 초기화합니다. choices 리스트는 가위바위보 게임에서 사용될 선택지를 저장하며, results 리스트는 각 라우드의 결과를 저장합니다. 또한 사용자와 컴퓨터의 승리 회수를 기록하기 위해 user_wins와 comp_wins 변수를 0으로 초기화합니다. import randomchoices = ["가위", "바위", "보"]results = []user_wins = 0comp_wins = 0 사용자와 컴퓨터의 선택을 비교하여 승자를 판별하는 get_wins 함수를.. 공감수 1 댓글수 1 2024. 8. 4.
  • 실습 : 다양한 형태의 피라미드 출력 중첩 반복문을 이용해 다양한 형태의 피라미트를 출력하는 프로그램을 작성해 보겠습니다.  별로 이루어진 정방형 피라미드square_pyramid 함수는 별표를 사용해 피라미드 모양을 출력합니다. 피라미드의 높이는 함수의 인자로 전달된 n에 의해 결경되며, 첫번째 for 루프는 피라미드의 각 층을 나타내며, 두번째 for 루프는 각 층에서 별표를 출력하기 전에 공백을 출력하는 역할을 합니다. 공백의 개수는 피라미드의 모양을 맞추기 위해 n-1로 계산됩니다. 세번째 for 루프는 각 층에서 별표를 출력하는 역할을 합니다. 별표의 개수는 피라미드의 모양을 맞추기 위해 2 * i - 1로 계산됩니다. 각 층이 출력된 후 print() 함수를 이용해 줄바꿈해 다음 충이 새로운 줄에 출력되도록 합니다. def squ.. 공감수 0 댓글수 0 2024. 8. 4.
  • 실습 : 주민등록번호를 이용한 나이, 성별 추출 사용자의 이름과 주민등록번호를 입력받아 생년월일과 성별을 추출한 후, 현재 날짜를 기준으로 만 나이를 계산하여 출력하는 프로그램을 작성해 보겠습니다.  생년월일을 입력받아 현재 날짜를 기준으로 만 나이를 계산하는 calculate_age 함수를 정의합니다. from datetime import datetimedef calculate_age(birthday): today = datetime.today() age = today.year - birthday.year if today.month 이 함수는 먼저 datetime.today()를 사용해 현재 날짜를 가져옵니다. 기본 나이는 현재 연도에서 생년월일의 연도를 빼서 계산합니다. 하지만 만 나이를 계산할 때는 현재 월과 일을 생년월일의 월과.. 공감수 0 댓글수 0 2024. 8. 2.
  • 실습 : 주문 처리 함수 사용자가 주문할 항목을 선택하고, 배달 및 결제 옵션을 지정한 후 최종 주문서를 출력하는 기능을 구현해 보겠습니다. 최종 주문서에는 각 항목의 가격, 할인 적용 여부, 최종 결제 금액 등을 계산하고 출력합니다.  주문서를 출력하는 process_order 함수를 정의합니다. def process_order(items, total_amount, discount_amount, final_amount, discount_rate, **options): print("\n************************") print(" 주 문 서 ") print("************************") print("\n주문한 항목:") for item, pr.. 공감수 0 댓글수 0 2024. 8. 1.
  • 실습 : 구구단 출력 중첩 반복문을 이용해 구구단을 출력해 보겠습니다.  for num in range(1, 10):바깥쪽 for 루프는 곱해질 수를 의미하며, 1부터 9까지 반복됩니다. num 변수는 각 단의 곱해지는 숫자를 나타냅니다.  for dan in range(2, 10):안쪽 for 루프는 구구단의 단을 의미하며, 2부터 9까지 반복됩니다. dan 변수는 구구단의 단을 나타냅니다. print(f"{dan:2} * {num} = {dan*num:2}", end="\t")f 문자열을 사용해 포맷팅을 합니다. {dan:2}는 dan 변수 값을 2칸의 폭으로 맞춰서 출력하고, {dan*num:2}는 곱셈 결과를 2칸의 폭으로 맞춰서 출력합니다. end="\t"는 출력 후에 줄바꿈을 하지 않고 탭 문자를 추가해 다음 값을.. 공감수 0 댓글수 0 2024. 7. 31.
  • 실습 : ORM 기반 블로그 애플리케이션 사용자에게 블로그 게시글을 작성하고, 조회하고, 수정하고, 삭제할 수 있는 기능을 제공하는 ORM 기반의 애플리케이션을 구현해 보겠습니다.  먼저, models.py 파일을 생성합니다. 해당 파일은 데이터베이스 모델과 SQLAlchemy 세션을 정의하며, 데이터베이스 연결을 설정하고, ORM 모델을 정의하고, 데이터베이스 테이블을 생성하는 역할을 합니다. engine = create_engine('sqlite:///blog.db')SQLite 데이터베이스 파일을 생성하고 연결을 설정합니다. 실행 결과로 blog.db 파일이 생성됩니다.  Base = declarative_base()SQLAlchemy ORM 모델의 기초 클래스 역할을 하는 Base 객체를 생성합니다.  class Post(Base): .. 공감수 0 댓글수 0 2024. 7. 29.
  • 실습 : 도서관 관리 시스템 도서관 관리 시스템도서 대출, 반납, 조회 등의 기능을 제공하는 도서관 관리 시스템을 작성합니다. # 도서 목록books = [ {"title": "모비딕", "author": "허먼 멜빌", "isbn": "9781503280786", "available": True}, {"title": "1984", "author": "조지 오웰", "isbn": "9780451524935", "available": True}, {"title": "앵무새 죽이기", "author": "하퍼 리", "isbn": "9780061120084", "available": True}]# 사용자 목록users = { "홍길동": {"borrowed_books": set()}, "고길동": {"borr.. 공감수 0 댓글수 0 2024. 7. 27.
  • 실습 : 디렉토리 트리 출력 디렉토리 트리 출력 사용자가 입력한 디렉터리 아래에 포함된 파일과 디렉터리를 출력하는 함수를 작성해 보겠습니다.  import os디렉터리와 파일 경로를 다루기 위해 os 모듈을 임포트합니다.  def print_directory_contents(path, level=0): try: for entry in os.listdir(path): full_path = os.path.join(path, entry) print(' ' * level + '|-- ' + entry) if os.path.isdir(full_path): print_directory_contents(full_path, level + .. 공감수 0 댓글수 0 2024. 7. 27.
  • 실습 : 리스트 모든 요소 합을 반환하는 재귀함수 리스트 모든 요소 합을 반환하는 재귀함수매개 변수로 전달 받은 리스트의 모든 요소의 합을 계산해서 반환하는 함수를 작성합니다. def sum_list(numbers): if len(numbers) == 0: return 0 else: return numbers[0] + sum_list(numbers[1:])# 예제 호출numbers = [ 1, 2, 3, 4, 5, 6 ]sum = sum_list(numbers)print(sum) # 15sum_list 함수는 숫자들로 이루어진 리스트 변수 nubmers를 입력으로 받습니다.  기본 사례를 정의합니다.리스트 numbers의 길이가 0인 경우, 즉 빈 리스트인 경우에는 0을 반환합니다.  이 부분은 재귀 호출의 .. 공감수 0 댓글수 0 2024. 7. 27.
  • 실습 : 문자열을 역순으로 반환하는 재귀함수 문자열을 역순으로 반환하는 재귀함수매개 변수로 전달 받은 문자열을 역순으로 만들어 반환하는 함수를 재귀함수로 구현해 보겠습니다.  def reverse_string(s): if len(s) == 0: return s else: return s[-1] + reverse_string(s[:-1])org = "Hello Python!!!"rvs = reverse_string(org)print(org) # Hello Python!!!print(rvs) # !!!nohtyP olleH reverse_string이라는 함수를 정의합니다. 이 함수는 문자열 s를 입력으로 받으며, 기본 사례와 재귀 사례를 구현합니다.  기본 사례(base case)문자열 s의 길이.. 공감수 0 댓글수 0 2024. 7. 27.
  • 실습 : 중복 제거 후 정렬 중복 제거 후 정렬학생 명단이 주어졌을 때, 중복된 이름을 제거하고 알파벳 순으로 정렬해서 반환하는 unique_sorted_students 함수를 작성해 보겠습니다.  students_list = ["John", "Jane", "Charles", "John", "Alice", "Bob", "Alice"]students_list라는 리스트 변수를 정의합니다. 이 리스트에는 여러 명의 학생 이름이 포함되어 있으며, 중복된 이름들도 있습니다.  uss = unique_sorted_students(students_list)print(uss) # ['Alice', 'Bob', 'Charles', 'Jane', 'John']unique_sorted_students 함수를 호출하여 students_list.. 공감수 0 댓글수 0 2024. 7. 27.
  • 실습 : 두 개의 리스트에서 공통 요소 찾기 두 개의 리스트에서 공통 요소 찾기두 개의 리스트에서 같은 값을 가지는 요소만 추출해서 리스트로 반환하는 common_elements 함수를 작성합니다.  list1 = [1, 2, 3, 4, 5, 6]list2 = [4, 5, 6, 7, 8, 9]list1과 list2라는 두 개의 리스트를 정의합니다. 각 리스트에는 여러 개의 정수가 포함되어 있습니다.  common = common_elements(list1, list2)print(common) # [4, 5, 6]common_elements 함수를 호출하면 list1과 list2의 공통 요소를 찾아내어 그 결과를 common 변수에 저장합니다. print(common) 을 통해 common 변수에 저장된 공통 요소들([4, 5, 6])을 .. 공감수 0 댓글수 0 2024. 7. 27.
  • 실습 : 중복 문자 제거 중복 문자 제거사용자가 입력한 문자열에서 중복된 문자를 제거하고 반환하는 remove_duplicate_chars 함수를 작성합니다.  실행 예문자열을 입력하세요 : Welcome to Python World !!!원문: [Welcome to Python World !!!] >>> 27글자중복제거: [ rdtlnmy!oWPhce] >>> 15글자 def remove_duplicate_chars(s): return ''.join(set(s))remove_duplicate_chars라는 함수를 정의합니다. 이 함수는 문자열 s를 입력으로 받아서 중복된 문자를 제거한 후, 중복이 제거된 문자열을 반환합니다. 함수 내부에서는 set(s)를 사용하여 문자열 s를 집합으로 변환합니다. 집합은 중복된 요소를 허.. 공감수 0 댓글수 0 2024. 7. 27.
  • 파이썬 설치 윈도우 환경에서 파이썬 설치웹 브라우저를 열고 파이썬 공식 웹 사이트(https://www.python.org/)로 이동합니다. 웹 사이트 상단 메뉴에서 Downloads 메뉴를 클릭한 후, 운영체제 자동 감지를 통해 제공되는 Downloaded for Windows 버튼을 클릭해 최신 버전의 파이썬 설치 파일을 다운로드 받습니다. 다운로드한 파이썬 설치 파일을 실행합니다. 설치 마법사가 열리면 Add pyhton.exe to PATH를 선택합니다. 해당 옵션은 파이썬을 명령줄에서 쉽게 접근, 사용할 수 있도록 경로 환경 변수를 설정하는 옵션입니다. Install Now를 클릭해 설치를 진행합니다. (만약, "Customize installation"을 선택한 경우, 필요한 옵션을 선택합니다. 기본적으로.. 공감수 1 댓글수 1 2024. 7. 27.
  • 20230830 실습내용 8월 30일 실습 내용입니다. 예외처리 RESTful 게시판 개발 게시판 REST API 개발 및 테스트 REST API 문서화 용도에 맞도록 DTO 세분화 및 ModelMapper 활용 React 앱을 이용한 REST API 연동 설치 방법은 아래 문서를 참고하세요. https://myanjini.tistory.com/entry/20230828-%EC%8B%A4%EC%8A%B5%EB%82%B4%EC%9A%A9 공감수 0 댓글수 0 2023. 8. 30.
  • 20230829 실습내용 8월 29일 실습 내용입니다. 스프링 MVC 기반의 게시판 CRUD 기능 구현 logback 설정 log4jdbc-log4j2 설정 요청이 들어오고, 응답이 나가는 것을 로그로 남기는 인터셉터를 구현 요청 처리에 사용되는 컴포넌트(컨트롤러, 서비스, 맵퍼)의 메서드 정보를 로그로 출력 AOP를 이용한 트랜잭션 처리 설치 방법은 아래 문서를 참고하세요. https://myanjini.tistory.com/entry/20230828-%EC%8B%A4%EC%8A%B5%EB%82%B4%EC%9A%A9 공감수 0 댓글수 0 2023. 8. 29.
  • 20230828 실습내용 8월 28일 실습한 내용입니다. 참고하세요. 실습환경 구축 JDK Eclipse, STS, Lombok MySQL Server & Workbench 스프링 프레임워크 IoC DI AOP 스프링 MVC 기반 프로젝트 생성 데이터베이스 연동 MyBatis 연동 게시판 테이블 생성 설치 방법 #1 zip 파일을 다운로드 후 압축을 해제합니다. #2 이클립스에 이름이 같은 프로젝트가 존재할 경우 프로젝트를 추가할 수 없으므로 pom.xml 파일을 열어서 항목의 값을 변경합니다. (예: artifactId를 board에서 board_20230823로 변경) 4.0.0 org.springframework.boot spring-boot-starter-parent 3.1.3 com.spring board_2023082.. 공감수 0 댓글수 0 2023. 8. 28.
  • 20230825 실습내용 my-app_20230825.zip 파일, todo-app.zip 파일, router-app.zip 파일은 리액트 실습내용이고, board_20230825.zip 파일은 스프링부트 실습내용입니다. 설치 및 실행 방법은 아래 문서를 참고하세요. https://myanjini.tistory.com/entry/test 리액트 실습내용 useRef를 이용한 컴포넌트 지역변수 사용 예제 일정관리 앱 개발 (todo-app) 리액트 라우터 개요 스프링부트 실습내용 RESTful 형식의 게시판 제작 REST API 개발 및 테스트 Swagger를 이용한 API 문서화 공감수 0 댓글수 0 2023. 8. 25.
  • 20230824 실습내용 my-app_*.zip 파일은 리액트 실습내용이고, board_*.zip 파일은 스프링부트 실습내용입니다. 설치 및 실행 방법은 아래 문서를 참고하세요. https://myanjini.tistory.com/entry/test 리액트 실습내용 폼(form) 요소 처리 상태(state) 내리기/올리기 ref useState, useEffect, useRef 훅(hooks) 스프링부트 실습내용 파일 업로드 기능 추가(완료) 파일 다운로드 기능 추가 REST 공감수 0 댓글수 0 2023. 8. 24.
  • 20230823 실습내용 my-app_*.zip 파일은 리액트 실습내용이고, board_*.zip 파일은 스프링부트 실습내용입니다. 설치 및 실행 방법은 아래 문서를 참고하세요. https://myanjini.tistory.com/entry/test 리액트 실습내용 이벤트 핸들링 자식 컴포넌트에서 발생한 이벤트를 부모 컴포넌트로 전달하는 방법 여러 입력창의 이벤트를 하나의 이벤트 핸들러 함수로 처리하는 방법 리스트 형태의 데이터 처리 스프링부트 실습내용 인터셉터 인터셉터를 활용한 로그 출력 APO를 활용한 로그 출력 트랜잭션 파일 업로드 기능 추가 공감수 0 댓글수 0 2023. 8. 23.
  • 20230822 실습내용 my-app_20230822.zip 파일은 리액트 실습내용이고, board_20230822.zip 파일은 스프링부트 실습내용입니다. 설치 및 실행 방법은 아래 문서를 참고하세요. https://myanjini.tistory.com/entry/test 리액트 실습내용 클래스형 컴포넌트에 상태변수 추가 및 변경 setState() 메서드 함수형 컴포넌트에서 useState 훅을 이용한 상태변수 정의 및 사용 리액트 컴포넌트 생명주기 및 생명주기 함수 사용법 스프링부트 실습내용 게시물 상세 조회, 수정, 삭제 기능 구현 포토 충돌 시 대응법 Logback, log4jdbc 적용 공감수 0 댓글수 0 2023. 8. 22.
  • 20230821 실습내용 my-app.zip 파일은 리액트 실습내용이고, board.zip 파일은 스프링부트 실습내용입니다. 설치 및 실행 방법은 아래 문서를 참고하세요. 리액트 https://myanjini.tistory.com/entry/20230818-%EC%8B%A4%EC%8A%B5%EB%82%B4%EC%9A%A9-react 스프링부트 #1 다운로드 받은 파일을 압축해제합니다. #2 이클립스에 동일한 프로젝트가 등록되어 있는 경우 임포트할 수 없으므로 메모장으로 settings.gradle 파일을 열어 rootProject.name을 수정합니다. rootProject.name = 'board-20230821' #3 압축해제한 폴더를 지정해 Gradle Project를 임포트합니다. #4 application.propert.. 공감수 0 댓글수 0 2023. 8. 21.
  • 20230818 실습내용 - react 오늘까지 실습한 내용입니다. 참고하세요. #1 파일 다운로드 후 압축해제 합니다. #2 명령 프롬프트(cmd.exe)를 실행합니다. #3 #1에서 압축해제한 폴더로 이동해서 npm install 명령으로 의존모듈을 설치합니다. C:\Windows\System32> cd c:\temp\my-app c:\Temp\my-app> npm install #4 VSCode와 개발 서버를 실행합니다. c:\Temp\my-app> code . c:\Temp\my-app> npm start #5 실행을 확인합니다. 공감수 0 댓글수 0 2023. 8. 18.
  • 20230816 실습내용 8월 16일까지 실습한 내용입니다. 참고하세요. 프로젝트 추가 방법은 아래 문서를 참고하세요. https://myanjini.tistory.com/entry/20230815-%EC%8B%A4%EC%8A%B5%EB%82%B4%EC%9A%A9 공감수 0 댓글수 0 2023. 8. 17.
  • 20230815 실습내용 8월 15일까지 실습한 내용입니다. 참고하세요. #1 zip 파일을 다운로드 후 압축을 해제합니다. #2 이클립스에 이름이 같은 프로젝트가 존재할 경우 추가할 수 없으므로 pom.xml 파일을 열어서 를 변경합니다. (artifactId를 ex03에서 ex03new로 변경) 4.0.0 spring5 ex03new 0.0.1-SNAPSHOT ...(생략)... #3 이클립스에 메이븐 프로젝트를 추가해 사용합니다. 만약, 빌드가 되지 않는 경우에는 메이븐 프로젝트를 업데이트합니다. 공감수 0 댓글수 0 2023. 8. 16.
  • board 소스코드 2023년 3월 13일 MySQL, React, SpringBoot로 구현된 게시판 서비스를 컨테이너 기반으로 변경하는 실습에서 사용할 소스 코드입니다. 공감수 0 댓글수 0 2023. 3. 13.
  • todo-app 2023년 3월 8일 React App을 컨테이너를 이용해서 배포하는 실습에 사용할 소스 코드입니다. 공감수 0 댓글수 0 2023. 3. 8.
  • 20230203 실습내용 컴포넌트 간 이벤트 및 데이터 처리 자식 컴포넌트에서 발생한 이벤트를 부모 컴포넌트로 전달 practice02/Parent.js paratice02/Child.js 형제 컴포넌트와 부모 컴포넌트에서 발생한 이벤트를 처리 practice03/Parent.js paratice03/Child.js 폼 폼 요소 처리 FormSample.js 여러 개의 입력 다루기 Reservation.js state 내리기 Sample.js 화씨, 섭씨 변환 및 물 끓음 표시 앱 Calculator.js Temperature.js BoillingVerdict.js ref 패스워드 검증 컴포넌트 ValidatePassword.js 스크롤 박스 구현 ScrollBox.js 실행결과 프로젝트 생성 방법은 아래 글 참조 https:/.. 공감수 0 댓글수 0 2023. 2. 3.
  • 20230202 실습내용 이벤트 핸들링 예제 EventPractice.js EventPracticeFunction.js 조건부 렌더링 Greeting.js Counter.js MailBox.js Warning.js 리스트 형태의 데이터 처리 IterationSample.js 실행결과 프로젝트 생성 방법은 아래 글 참조 https://myanjini.tistory.com/entry/20230131-%EC%8B%A4%EC%8A%B5%EB%82%B4%EC%9A%A9 공감수 0 댓글수 0 2023. 2. 3.
    728x90
    반응형
    문의안내
    • 티스토리
    • 로그인
    • 고객센터

    티스토리는 카카오에서 사랑을 담아 만듭니다.

    © Kakao Corp.