Latest

ISACA 2024 학술대회 발표자료

ISACA 2024 학술대회 발표자료

ISACA_2024_공동_학술대회_발표자료ISACA_2024_공동_학술대회_발표자료.pdf125 MBdownload-circle[2024. 11. 20.] 연세대, 2024 바른ICT연구소 리서치 콘퍼런스 성료 | 연세대학교연세대학교 * 키워드 * 데이터 * 신뢰 * 윤리 * 보안 * 2024 노벨상 * 물리학상, 제프리 힌튼 (인공지능, 컴퓨터 과학자) * 화학상, 데미스 허사비스 (구글 딥마인드) * 라인 경영권 이슈 * 데이터 주권 확보에 대한 노력 (경영권 분쟁이 아님.

By Hyonsok
3회 Digital ESG Conference 세미나 자료, 누빅스, 2024/10/24

3회 Digital ESG Conference 세미나 자료, 누빅스, 2024/10/24

DEA 컨퍼런스 행사 프로그램 순서DEA 컨퍼런스 행사 프로그램 순서.pdf503 KBdownload-circle[공유용] DEA 컨퍼런스 오프닝 및 DEA 업데이트_강명구[공유용] DEA 컨퍼런스 오프닝 및 DEA 업데이트_강명구.pdf3 MBdownload-circle[공유용] 콜린스_케이에너지세이브 발표자료[공유용] 콜린스_케이에너지세이브 발표자료.pdf3 MBdownload-circle[공유용]Digital ESG Alliance Conference_김정연[공유용]Digital ESG Alliance Conference_

By Hyonsok

Datadog Live Seoul 2024 (발표자료)

3개월 차 DevOps팀의 Datadog 활용 - 이병호 박상욱 김경보 김태수, 뉴넥스 & 이성욱, Datadog3개월 차 DevOps팀의 Datadog 활용 - 이병호 박상욱 김경보 김태수, 뉴넥스 & 이성욱, Datadog.pdf2 MBdownload-circle12년차 스타트업의 아키텍처 리팩토링 돌아보기 - 이정민, 드라마앤컴퍼니12년차 스타트업의 아키텍처 리팩토링 돌아보기 - 이정민, 드라마앤컴퍼니.pdf3 MBdownload-circleAsset-HighlightsDatadogLiveSeoul2024Asset-HighlightsDatadogLiveSeoul2024.pdf3 MBdownload-cir

By Hyonsok
[Troubleshooting] Azure Function App with GitHub Actions

[Troubleshooting] Azure Function App with GitHub Actions

* 참고 문서: https://learn.microsoft.com/ko-kr/azure/azure-functions/functions-deployment-technologies?tabs=linux#remote-build 1. Azure Function App을 Azure에서 기본 제공하는 GitHub Actions Deployment Template으로 CI/CD를 구성하면 애플리케이션 배포 후 Function을 찾지 못하는 문제가 발생합니다. 2. 이유는 위 참고문서에서 나오듯 WEBSITE_RUN_FROM_PACKAGE 라는 환경변수가 자동으로 추가되기 때문입니다. 3.

By Hyonsok

Next.js v14.2.8 빌드 에러

Error occurred prerendering page "/dashboard". Read more: https://nextjs.org/docs/messages/prerender-error ReferenceError: window is not defined 얼마전 github actions에서 배포 중 에러가 발생했습니다 로컬에서 githook의 pre-push에서 빌드를 하기 때문에 빌드에러는 발생하지 않을 것이라 생각했지만 빌드 중 window is not defined 에러가 발생했습니다 의심되는 부분을 수정해봤지만 해결되지 않았고 로그를

By Taehwan Go

안드로이드 expo-notifications 잠금화면 알림 표시

최근 expo가 많이 개선되었다고 해서 expo로 모바일앱 개발을 하고 있습니다 이전에 react native cli로 개발했을 때 개발환경 설정이 피로하고 그 설정을 공유하는 것이 번거로워서 expo를 선택하였습니다 이슈 공식문서(https://docs.expo.dev/versions/latest/sdk/notifications/)의 예제 코드르 따라하면 쉽게 푸시메세지가 수신되는 것을 확인할 수 있습니다 하지만 안드로이드폰에서 잠금화면이거나

By Taehwan Go

Next.js 에서 bootstrap과 tailwind css 같이 사용하기(bootstrap에서 important 제거하기)

이슈 bootstrap과 tailwind 모두 기능 단위로 각 css를 유틸클래스(HTML class 속성)로 정의해놓고 조합해서 사용한다는 공통점이 있습니다

Hello world!
하지만 bootstrap과 tailwind는 클래스명이 같지만 그 안에 정의된 수치가 다른 경우가 있습니다 특히 shadcn-ui를 사용하는 경우 tailwind에서 정의된 클래스를 기반으로 구성이 되어있는데 이것이 bootstrap에 정의된 클래스라면 bootstrap의 유틸클래스는 !important가 붙어서

By Taehwan Go

Next-auth refresh token

이슈 * Refresh token으로 Access token을 재발급 받은 후 새로고침하면 로그인이 풀리는 현상 원인 1. 리프레시 토큰으로 토큰 재발급 후 만료시간을 설정 오류 2. 토큰을 설정하는 jwt 콜백이 비정상적으로 한번 더 실행 1. 리프레시 토큰으로 토큰을 재발급 받은 후 jwt 콜백이 호출되고 session 콜백이 호출돼서 값이 넘어가야하는데 마지막에 만료된 토큰데이터로 jwt

By Taehwan Go
Next.js 모바일과 PC를 구분해서 다른 경로로 이동 시키기(middleware 사용)

Next.js 모바일과 PC를 구분해서 다른 경로로 이동 시키기(middleware 사용)

이슈 * 모바일로 접속할 때와 PC로 접속할 때 다른 화면을 보여줘야한다 * 모바일로 접속 시 기존 앱 경로를 보여주고 * PC로 접속 시 v2 앱 경로를 보여준다 해결 * Next.js의 middleware를 사용하여 모바일로 접속했는지 PC로 접속했는지 확인 후 의도한 화면의 경로로 redirect 시켰습니다 function isMobileUserAgent(userAgent: string): boolean { const mobileRegex = /Android|iPhone|iPad|

By Taehwan Go
How to run scheduled Azure SQL Procedure

How to run scheduled Azure SQL Procedure

1.Problem Azure Managed SQL 에서는 설치형 MSSQL DB와 달리 스케줄 잡을 실행할 수 없습니다. 참고: https://learn.microsoft.com/en-us/azure/azure-sql/managed-instance/job-automation-managed-instance?view=azuresql 2.Solution Azure Automation Account에 PowerShell 로 DB Procedure 실행하는 Job을 등록해서 매일 특정시간에 동작하게 하면 됩니다. 이 외에도 Azure Function을 만들어 주기적으로

By Hyonsok

기술뉴스 모음, 2024-06-17

* Pinterest가 6명의 엔지니어로 1,100만 사용자까지 확장할 수 있었던 방법 (medium.com) * 1년 동안 LLM과 함께 구축하며 배운 점 (eugeneyan.com) * 실리콘 밸리의 숨겨진 비밀: 창업자 유동성(Founder Liquidity) (stefantheard.com) * 애플 인텔리전스 분석 완전판 (the-edit.co.kr) * 운송 관리 시스템(TMS)의 탄생부터 현장에서 사용하기까지 (우아테크) * 우리팀은 카프카를 어떻게

By Hyonsok
How to access FTP from client with firewall in Windows OS Explorer

How to access FTP from client with firewall in Windows OS Explorer

Problem (문제점) 윈도우즈 OS, File Explorer를 통해 FTP 접속을 하는 경우 아래와 같은 에러메시지를 보게 됩니다. (방화벽 네트워크 장비를 사용하는 회사에서 접속할 경우) Active Mode vs Passive Mode 원인은 FTP서버는 기본적으로 Passive Mode로 데이터 전송 포트를 별도로 사용하는데 비해 회사 방화벽에서는 Well Known (잘 알려진) 포트 외에는 기본적으로 허용하지 않기

By Hyonsok
Axios interceptors 를 활용한 Refresh token 만료 시 처리 구현

Axios interceptors 를 활용한 Refresh token 만료 시 처리 구현

이슈 JWT refresh token 만료 시 로그인 페이지로 이동하지 않는 현상 문제점 refresh 토큰이 만료된 경우를 구분이 어렵다 access 토큰은 만료되었으나 refresh 토큰은 만료되지 않은 경우에 첫 요청은 실패하지만 react-query에서 3번 더 요청을 하기 때문에 두 번째 요청을 보내기 전에 next auth에서 refresh 토큰을 발급받아서 두 번째 요청은 성공했다 해결

By Taehwan Go
Typescript 함수의 입력 타입과 출력타입 추출하기

Typescript 함수의 입력 타입과 출력타입 추출하기

라이브러리를 사용하다보면 제공하는 메서드의 대부분의 타입을 import 해서 사용할 수 있지만 그렇지 않은 경우도 있습니다 함수의 입력타입 추출하기 함수로 부터 입력 파라미터 타입을 추출할 수 있는 유틸타입(Parameters)을 사용하면 쉽게 타입을 정의해서 사용할 수 있습니다 * Parameters<함수타입> 과 같이 사용하면 함수의 파라미터타입을 배열로 받을 수 있습니다 function add(a:

By Taehwan Go
GitHub PR Approval to Slack

github

GitHub PR Approval to Slack

1.Slack의 GitHub 앱의 문제점 Slack GitHub App은 Pull Request 요청에 대한 알림은 보내지만 해당 PR이 승인되었다는 메시지는 보내지 않는 문제점을 가지고 있습니다. 이를 해결하기 위해 GitHub Actions 에서 WebHook을 호출하는 방법으로 문제를 해결하였습니다. 2.Slack WebHook 생성 3.GitHub Actions Yaml 적용 @ 참고자료 Sending messages using incoming webhooksCreate an

By Hyonsok
[Next.js] Dynamic Import 적용

[Next.js] Dynamic Import 적용

NextJS환경에서 리포팅 툴을 테스트하면서 dynamic import 라는 흥미로운 기능이 있어 공유 해 봅니다. 리포팅 툴이란 시스템에서 추출한 결과 값을 보고서 양식으로 출력해주는 개발툴입니다. 기존 프로젝트에 다른 개발자가 개발한 서비스를 적용하는 것은 생각보다 쉽지 않은 일입니다. 저는 Next.js 로 구성된 환경에 active report에서 제공하는 Report Viewer를 적용하는 과정에서 몇 차례

By Plato Jung
루트 도메인, Azure Front Door (CDN) 인증서 등록, 트러블 슈팅기

azure

루트 도메인, Azure Front Door (CDN) 인증서 등록, 트러블 슈팅기

1.요구사항 루트 도메인에 Azure Front Door(CDN)를 사용하도록 처리해야 하는 과제가 주어졌습니다. 기존에 서브도메인을 CDN 처리할때는 채 10분도 걸리지 않았었던터라 가볍게 생각하였는데 뜻밖의 난관을 여러번 겪게 되었습니다. 2.첫번째 난관 루트 도메인의 경우 @ 레코드를 변경해야 합니다. 하지만 이 DNS 레코드는 중요하기 때문에 기본적으로 사용자가 처리할 수 없게 막혀있습니다.

By Hyonsok
대량 엑셀 다운로드

대량 엑셀 다운로드

대량 엑셀 다운로드를 구현하기 위해 시도한 시행착오를 정리해보았습니다 😊 기존 엑셀 다운로드 구성 * Machine365의 '기록' 페이지를 렌더링 하기 위한 API 사용하여 데이터를 가져오고 가져온 데이터를 브라우저에서 엑셀파일로 구성해서 다운로드가 되는 방식이었습니다 기존 다운로드의 문제점 * 기존 모니터링 데이터를 가져오는 API는 페이지를 렌더링하기 위해 페이지네이션이 적용되어 있었습니다 * 따라서 엑셀로 구성하는 데이터 수에 비례해서

By Taehwan Go
[flutter] 비동기 병렬 처리(Future.wait) flutter 앱 적용기

[flutter] 비동기 병렬 처리(Future.wait) flutter 앱 적용기

들어가는 말 최근 진행했던 flutter 프로젝트에는 화면 당 초기에 2-3번 많게는 4-5번의 api 호출 을 하게 됩니다. 이처럼 여러 번의 api 호출 시 응답 속도를 개선한 경험이 있어 공유합니다. 이때 flutter의 비동기 처리 방식이 javascript와 유사한 부분이 많아 비교 참조 하였습니다. javascript의 비동기 처리 방식 어플리케이션에서 네트워크 요청, 파일 읽기/

By Plato Jung

기술뉴스 모음 2024-03-11

* 앤트로픽, 현존 최강 LMM '클로드 3' 출시..."GPT-4·제미나이 성능 능가" (aitimes.com) * LLM은 옛말...이미지까지 학습한 'LMM' 뜬다 (aitimes.com) * 머스크 “오픈AI를 오픈하라”…법정까지 가는 ‘인공지능의 철학’ (hani.co.kr) * 앞으로 모든 회사는 콘텐츠 회사가 될 겁니다! (blog.brunch.com) * AI시대에 필요한 개발자, Product Engineer (yozm.wishket.com) * (번역)

By Hoijoo
[Javascript] 기준 날짜를 내가 설정한 시간의 기준 날짜로 구하기

[Javascript] 기준 날짜를 내가 설정한 시간의 기준 날짜로 구하기

이슈 * 사용자 기준 시간이 내가 설정한 시간이 아닌 브라우저 시간을 기준으로 나오는 현상이 있었습니다 예시 * 한국(UTC+9) 2024년 3월 5일 아침 8시에 내가 설정한 시간대가 UTC-1이고 기준 날짜를 구하는 경우(UTC+9와 UTC-1은 10시간 차이가 납니다) * 한국 시간: 2024-03-05 08:00 -> 기준 날짜: 3월 5일 * 설정 시간: 2024-03-04

By Taehwan Go
아키텍처 결정 레코드(ADR)

아키텍처 결정 레코드(ADR)

아키텍처 결정을 가장 효과적으로 문서화하는 방법은 아키텍처 결정 레코드(Architecture Decision Reccord, ADR)을 작성하는 것 입니다 기본 구조 ADR의 기본 구조는 제목(Title), 상태(Status), 콘텍스트(Context), 결정(Decision), 결과(Consequences) 이렇게 5개 섹션으로 구성됩니다 여기에 컴플라이언스(Compliance)와 노트(Notes)라는 추가 섹션을 덧붙일 수 있습니다 제목 * 아키텍처

By Taehwan Go
What is startup traps?

startup

What is startup traps?

스타트업이 빠질 수 있는 함정에 대해 고민하며 웹서핑을 하다 아래 글이 가슴에 와 닿아서 공유합니다. (번역) 3View는 일당백하는 슈퍼개발자 필수인원을 채용하였고 Full Stack Engineer를 지향하며 업무를 교차하고 Datadog(SaaS)을 통해 SRE, QA를 실현하고 있습니다. 1. 숙련된 개발자를 찾는데 투자하라 2. 품질관리에 일찍 투자하라 3. 프레임웍과 기술 선택에 유의하라 4.

By Hyonsok

FastAPI + SQLModel Postgres DB연동

FastAPI + SQLModel Postgres DB연동 검색해도 잘 안나와서 포스팅 합니다.   다음 공식 사이트는 sqlite로 되어 있습니다. https://sqlmodel.tiangolo.com/  SQLModelSQLModel, SQL databases in Python, designed for simplicity, compatibility, and robustness.sqlmodel.tiangolo.com   postgres연동으로 교체한 후 실행 from typing import Optional from sqlmodel import Field, SQLModel, create_engine, Session, select

By Kyeongrok.kim
axios 를 이용해서 우아하게 파라미터 넘기기

axios 를 이용해서 우아하게 파라미터 넘기기

GET 메서드는 파라미터를 query string으로 넘깁니다 * 위 그림의 parameters는 query string 이라고도 부릅니다 데이터 조회 시 파라미터 넘기기 type FactoryParams = { size: number; page: number; companyId?: string; factoryName?: string; enabled?: boolean; sort?: string | string[]; } export async function getFactories({ companyId, factoryName, enabled, page, size, sort, }: FactoryParams) { const queryParams = []; if (companyId !== '') { queryParams.

By Taehwan Go
[앱개발] flutter에 함수형 예외처리  적용해보기.

3view

[앱개발] flutter에 함수형 예외처리 적용해보기.

들어가는 말 쓰리뷰에서는 몇 차례 flutter를 이용한 앱개발 프로젝트를 진행해 왔습니다. 프로젝트로 개발한 앱의 주요 기능이 Spring Boot로 구동되는 백엔드 서버와 API통신을 하면서 이루어졌기 때문에 좀 더 개선된 형태의 API 호출 구조를 만들고자 노력하였습니다. 이러한 노력의 일환으로 flutter 프로젝트에 함수형 예외처리 방식(Fuctional exception handling)을 도입하였습니다. 이번 글에서는 flutter

By Plato Jung