본문 바로가기

📌 Back End24

[Spring] 소프트웨어 배포 생명 주기 (software release life cycle) Software release life cyclehttps://en.wikipedia.org/wiki/Software_release_life_cycle기본적인 소프트웨어 생명주기다. spring과는 동일하지 않지만(milestone) 이 기반으로 생명주기가 돌아간다.SNAPSHOT: 아직 릴리즈 되지 않은 데일리 빌드 버전, 안정화 되어 있지 않다.M(Milestone): 새 기능이 개발되어 주기적으로 배포하는 버전, 릴리즈되어 있지만 버그 수정하고 있는 버전RC(Release candidate): M을 더 정리를 해서 배포된 버전GA(General Availability): 정식 릴리즈 버전Snapshot아직은 안정화 되지 않은 데일리 빌드버전을 뜻합니다. 따라서 최신 버전일 수도 있지요. M (Mil.. 2023. 7. 19.
[Flask] Python ORM - SQLAlchemy 대량 데이터 한 번에 삽입 bulk_insert_mappings() 다량의 데이터를 추가/갱신할 때 레거시 코드처럼 Session.add() 메소드는 적절하지 못해보여서 벌크 작업으로 알아보았습니다.이 상황에서 사용할 수 있는 메소드는 add_all, bulk_save_objects, bulk_insert_mappings / bulk_update_mappings 정도로 나열할 수 있습니다.또한 SQLAlchemy Core도 포함할 수 있습니다.아래 코드는 for문을 사용해 각 행마다 인스턴스 객체를 생성하고 있습니다. cls()이 방식은 각 행의 데이터를 데이터베이스에 저장하기 위해 해당 클래스의 인스턴스로 변환하기 위한 것  @classmethod def store_data(cls, df) : # ▶ 데이터 프레임을 받아 데이터베이스에 저장 .. 2023. 4. 24.
[Python] Xlwings로 DRM걸린 엑셀파일 자동화 openpyxl가 아닌,  xlwings을 설치하면 된다.import openpyxlwb = openpyxl.load_workbook('파일명') #sheet 열기sheet = wb['sheet1'] #workbook 생성wb = openpyxl.Workbook() # 기본 시트 생성됨 sheet1sheet2 = wb.create_sheet('sheet2') #마지막에 추가sheet3 = wb.create_sheet('sheet3', 1) #sheet1 자리에 삽입 하여 추가 #시트 이름 변경sheet2.title = '업무자동화' #저장wb.save('./new_test_file.xlsx')wb.close()penpyxl 같은 경우 시트별로 불러와서 작업이 가능하지만, 애초에 회사 사내망 때문에 보안.. 2023. 4. 23.
[Python] Xlwings - 파이썬으로 excel 파일 다루기 python xlwings 라이브러리를 이용해서 엑셀에 데이터를 읽고 쓸 때 기본적인 세팅은 엑셀 창이 열리도록 되어있습니다. 하지만 종종 이 창을 띄우지 않고서 작업을 하고 싶은 마음이 들 때가 있습니다. 예를 들어 간단히 엑셀 파일에서 데이터만 읽어오면 되는 상황이 그렇습니다. 오늘은 엑셀 창 없이 xlwings 라이브러리를 이용해서 데이터를 판다스 데이터프레임 형태로 읽어오는 방법을 알아보겠습니다. 창 없이 xlwings를 사용하는 코드 패턴xlwlings의 객체는 크게 다음과 같은 네 가지 유형이 있습니다. 객체의 계층 구조 순서대로 나열하면 App(엑셀 인스턴스), Book, Sheet, Range와 같습니다. 보통의 경우 xw.Book(파일명)를 바로 사용하여 엑셀 파일을 읽어왔지만, 창 없이.. 2023. 4. 23.
[Python] Pandas Dataframe - 데이터프레임(엑셀 데이터) HTML 테이블 태그로 변환하기 (Flask DataFrame to html table) * 파싱할 엑셀파일flask와 pd.DataFrame 연동하기저는 데이터는 일단 엑셀 파일로 들어온다고 가정합니다. 따라서 pandas를 이용해서 엑셀을 dataframe로 변환해서 처리하는 것이 반드시 필요하죠.flask에서 dataframe를 연동하는 것에 문제가 없는지 확인해봅니다.make and read excel file아래 코드를 이용해서 url 요청이 오면 엑셀 파일을 만들고 엑셀 파일을 html로 변환해주는 형식으로 처리했습니다.python run.py를 수행하면 알아서 엑셀 파일이 만들어지고 해당 엑셀 파일을 읽고 html로 변환하여 화면에 뿌려줍니다.아래 코드만으로 수행하면, 어쨌든 웹 브라우저에서 dataframe의 내용이 그대로 뜹니다. 일단 이정도로만 해도 뭐 일단 보기는 문제가 .. 2023. 4. 23.
[Flask] 플라스크 MVT 패턴(Model-View-Template) 《 Flask에서의 MVT 패턴 (Model - View - Template) 》 ● Model : 데이터베이스와 상호작용하며, 데이터의 CRUD 작업을 수행하는 모델을 정의 (models.py) ● View(Controller) : 사용자의 액션을 받아서 Model에 데이터를 전달하고, 그 결과를 Template에게 전달하는 뷰 함수를 정의 (routes.py) ● Template(View) : 뷰에서 받은 데이터를 템플릿 엔진을 통해 렌더링하여 사용자에게 보여주는 역할을 합니다 (login.html) 전통적인 MVC 패턴 ● Model : 데이터와 비즈니스 로직을 처리 ● View : 사용자 인터페이스를 처리 ● Controller : Model과 View 사이의 상호작용을 조정 《 파일의 역할 》 .. 2023. 4. 19.
[Flask] 파이썬 플라스크(Flask) 서버 실행하기 python run.py 2023. 4. 19.
[Spring Boot] 스프링부트 Whitelabel Error Page 에러 해결 방법 🎯 Goal스프링부트 Whitelabel Error Page 에러 해결할 수 있다.⚠️ 문제 현상프로젝트 서버를 실행 한 후 localhost:8080 으로 접속을 해보면 Whitelabel Error Page 에러가 발생 했다.Whitelabel Error PageThis application has no explicit mapping for /error, so you are seeing this as a fallback.🔑 에러 원인에러가 발생하는 원인은 2가지 입니다.localhost:8080 으로 연결 시 기본값인 index.html이 없다.없는 파일을 경로로 지정💊 해결 방법1) localhost:8080 으로 연결 시 기본값인 index.html이 없는 경우스프링 구동 시 처음에는 무조건.. 2023. 3. 16.
[Spring] Thymeleaf(타임리프)란? (+기본적인 사용법) 타임리프(Thymeleaf) 란?타임리프는 컨트롤러가 전달하는 데이터를 이용해 동적으로 화면을 만들어주는 역할을 하는 뷰 템플릿 엔진이다. 타임리프가 갖는 대표적인  특징은 다음과 같다. 서버상에서 동작하지 않아도 HTML 파일의 내용을 바로 확인이 가능하다.순수 HTML 구조를 유지한다.타임리프(Thymeleaf) 사용1) 라이브러리 추가 Gradle - build.gradleimplementation 'org.springframework.boot:spring-boot-starter-thymeleaf' Maven - pom.xml org.springframework.boot spring-boot-starter-thymeleaf 2) 기본 경로타임리프는 다음과 같이 기본 뷰 템플릿 경로로 다음과.. 2023. 3. 16.
728x90
반응형