[Java] 달력 출력 프로그램 코드 비교 (날짜/시간 라이브러리 활용)
·
Language/Java
김영한님 자바 강의 중급1편 듣는 중. 자바에서 제공하는 날짜와 시간 관련 라이브러리를 공부하면서 사용자로부터 연, 월 정보를 입력 받아 달력을 출력하는 프로그램을 만들어 실습해보았다. 우선 문제만 보고 스스로 코드를 짜보았고, 이후에 내가 작성한 코드와 강사님이 작성한 코드를 비교해 보는 방식으로 공부를 했다. 달력을 출력하라는 과제목표는 달성했지만, 날짜 처리, 출력 형식, 반복문 사용 방식에서 차이가 있었다. 내가 작성한 코드package test;import java.time.DayOfWeek;import java.time.LocalDate;import java.time.temporal.TemporalAdjusters;import java.util.Scanner;public class TestCa..
블레이버스 MVP 개발 해커톤 회고
·
회고
지난 2월 나의 하이라이트라고 한다면 단언코 블레이버스 MVP 개발 해커톤에 참여했던 것. 결론적으로 우리 팀이 1등 상인 베스트 MVP 상을 수상했다. 해커톤 기간 동안 배우고 느낀 것들이 증발해버리기 전에 그 과정을 기록하고 회고를 통해 돌아보고자 한다. 왜 해커톤에 참가했을까실제 스타트업의 프로덕트를 만들고 싶어초기 창업 팀의 아이디어로 MVP를 구현해본다는 것에 흥미를 느꼈다. 내가 개발을 시작했던 이유도 언젠가 나만의 프로덕트를 만들어보고 싶다는 이유였고, 언젠가 창업을 해보고 싶다는 마음을 항상 가지고 있기 때문에 초기 스타트업의 MVP를 직접 만들어 실질적인 비즈니스 가치를 함께 창출할 수 있는 기회라면 꼭 해봐야겠다는 생각이 들었다. 단순 토이 프로젝트가 아닌 실전 아이템을 만들어야 한다는..
[Java] 김영한의 실전 자바 기본편 완강
·
Language/Java
자바 강의로 유명한 김영한님 강의로 자바에 입문했다. 입문편에 이어 기본편도 완강이다. 학습한 내용이번 강의를 통해 배운 내용은 아래와 같다:클래스와 데이터기본형과 참조형객체 지향 프로그래밍생성자패키지접근제어자자바 메모리 구조와 staticfinal상속다형성과 설계 배우고 느낀점지금까지 내가 익숙하게 사용해온 프로그래밍 언어는 파이썬과 자바스크립트 같은 고수준 언어였다. 그런데 강의를 통해 비교적 저수준 언어인 자바를 공부하면서 새로운 시각을 갖게 된다. 김영한 강사님께서 "좋은 프로그램은 무한한 자유가 있는 프로그램이 아니라 적절한 제약이 있는 프로그램"이라는 점을 거듭 강조하시는데, 지금껏 다뤄온 프로그래밍 언어에 비해 제약이 비교적 많은 자바를 다루다 보니 그 말이 확 와닿는다. 강한 타입 체크와 ..
[Flask] Flask-Caching을 사용해서 캐싱 구현하기
·
Backend/Flask
가장 빠른 풀스택을 위한 Flask & FaskAPI 예제 연습 기록 캐싱(caching)은 한번 받아온 데이터를 임시 저장 공간에 보관함으로써 동일한 요청이 왔을 때 빠르게 접근할 수 있도록 하는 기술이다. 캐싱을 활용하면 시스템의 성능을 향상시킬 수 있다. 반복적인 요청에 대한 응답 시간을 줄일 수 있고, 서버의 부하를 감소시킬 수 있다. 다만, 페이지가 동적으로 변경되어야 하는 상황에서 캐싱된 데이터는 최신 데이터가 아닐 수 있으므로, 데이터의 유효성을 주기적으로 확인하고 업데이트를 할 필요가 있다. flask-caching을 이용하면 캐싱을 쉽게 구현할 수 있다. 우선 flask-caching을 다음 명령어로 설치한다.pip install Flask-Caching==2.1.0 아래와 같이 코드를 ..
[Flask] Flask-Login을 사용해서 사용자 인증 구현하기
·
Backend/Flask
가장 빠른 풀스택을 위한 Flask & FaskAPI 예제 연습 기록 우선 전체 코드는 아래와 같다.from flask import Flask, request, redirect, url_forfrom flask_sqlalchemy import SQLAlchemyfrom flask_login import ( LoginManager, UserMixin, login_required, login_user, logout_user, current_user,)app = Flask(__name__)# 데이터베이스 설정app.config["SQLALCHEMY_DATABASE_URI"] = ( "mysql+pymysql://username:password@localhost:3306/d..
[Flask] SQLAlchemy를 사용하여 회원가입 폼 DB에 저장하기
·
Backend/Flask
HTML의 form 태그를 이용하여 간단한 회원가입 폼을 만들고, 사용자가 입력을 한 후 '가입하기' 버튼을 클릭하면 POST 요청을 보내고 SQLAlchemy를 사용해서 해당 내용을 DB에 저장할 수 있도록 구현했다.index.html 회원가입 아이디: 이름: 이메일: 비밀번호: 가입하기  위의 회원가입 폼에 대한 HTML 코드이다. app.pyfrom flask import Flask, render_template, requestfrom flask_sqlalchemy import SQLAlchemyapp = Flask(__name__, template_folder='templates')..
[Python] 넘파이를 활용한 다양한 통계 처리 함수 알아보기
·
Language/Python
파이썬 데이터 분석에서 넘파이(NumPy)는 필수적인 라이브러리이다. 특히 대규모 배열 연산과 빠른 수학적 처리를 제공하여 효율적인 데이터 분석을 가능하게 한다. 이번 글에서는 넘파이가 제공하는 통계 처리 함수 중 자주 사용되는 기능을 중심으로 살펴보겠다. 각각의 기능은 코드를 통해 간단히 설명하며, 데이터를 다룰 때 유용한 팁도 함께 제공한다. 합계, 평균, 표준편차 계산넘파이는 배열의 기본 통계량을 쉽게 계산할 수 있는 함수를 제공한다.합계(sum): 배열의 요소를 모두 더한다.평균(mean): 배열의 평균값을 계산한다.표준편차(std): 데이터의 분포가 평균에서 얼마나 퍼져있는지를 나타낸다.import numpy as npdata = np.array([1, 2, 3, 4, 5])print("합계:"..
[Python] numpy.random으로 무작위 데이터 생성하기
·
Language/Python
넘파이를 활용하면 무작위 데이터를 쉽게 생성할 수 있다. 무작위의 난수를 생성하는 건 넘파이의 numpy.random 모듈을 활용하면 되는데 이 도구를 사용해서 어떻게 난수를 생성할 수 있는지, 그리고 어떻게 활용할 수 있는지, 시드(seed)란 무엇이며 시드 설정은 어떻게 할 수 있는지 간단히 알아보도록 하자.  넘파이에서 난수 생성하기넘파이의 numpy.random 모듈은 다양한 난수 생성 기능을 제공한다. 대표적인 함수를 정리해 보았다.np.random.rand()0과 1 사이의 균등 분포에서 난수를 생성한다. 인자로 원하는 shape를 지정할 수 있다. import numpy as np# 0과 1 사이의 난수 1개 생성print(np.random.rand()) # 0.5488135039273248..