본문 바로가기

분류 전체보기

Github Actions을 통한 Docker이미지 자동 배포 안녕하세요. 유저인사이트 이현준입니다. 이번 시간에는 Github의 Actions기능을 사용하여 프로젝트의 Docker이미지를 자동으로 생성하고 배포하는 작업을 해보려고 합니다. 목차 1. Github Actions란? 2. Workflow란? 3. Workflow 정의 4. Workflow 동작 확인 1. Github Actions란? Github Actions은 Github에서 제공하는 CI/CD서비스 입니다. CI (Continuous Integration, 지속 통합)란 소프트웨어 개발 단계의 병합을 자동화 하는 것을 말하며, CD(Continuous Deployment, 지속 배포)는 개발한 소프트웨어를 자동으로 배포하는 것을 말합니다. Github Actions을 사용하면 Github에 등록된..
Svelte로 웹 개발을 간소화하기 안녕하세요 유저인사이트 박준호입니다. 이번에는 Svelte를 주제로 선정했는데요. 이전부터 Svelte에 대해 조금 관심을 가지고 있었던 차에 SvelteKit 1.0.0 버전이 출시되어 이참에 공부하고, 사용해 보고자 이렇게 준비하게 되었습니다. 그리고 본문에 앞서 Svelte는 따지고 보면 프레임워크가 아닌 컴파일러라고 합니다. 이에 대한 내용은 밑에 서술하겠지만, 이 글에서는 프레임워크라고 지칭하겠습니다. Svelte의 장단점 장점 1. 처리 속도가 뛰어나다. Svelte의 가장 큰 장점으로 꼽히는 부분입니다. Svelte 공식 사이트에서 말하듯이 Vanilla JS를 기반으로 하고 있어 속도는 JS 급이고, 리액트와 여타 프레임워크들과는 달리 가상 DOM을 사용하지 않아 확연한 속도 차이를 보여줍..
실무에서 사용하는 Spring Security Configuration 안녕하세요. 유저인사이트 박태양입니다. 저희는 신규 프로젝트를 시작할때, SecurityConfig라는 클래스 안에 여러가지 보안 관련 코드를 구현합니다. 초기에 잘 작성된 코드이기에 특별한 수정 없이 사용하였지만, 간혹 해당 프로젝트에는 필요없는 코드도 섞여들어가는 경우도 있었습니다. Spring Security 버전이 변경되면서, 이번 기회에 보안 관련 코드를 정리하는 시간을 가져보았습니다. 목차 WebSecurityConfigureAdapter (deprecated) WebSecurity vs HttpSecurity HttpSecurity의 다양한 옵션들 1. WebSecurityConfigureAdapter (deprecated) 기존에는 WebSecurityConfigureAdapter를 상속받..
GPS 데이터와 좌표계에 대한 문제 해결 과정 안녕하세요 유저인사이트 박준호 선임입니다. 저는 이번에 GPS 데이터와 관련된 개발을 진행했는데, 개발하며 겪었던 문제들과 해결 과정들을 공유하고자 주제를 선정하였습니다. GPS 표현 방식 먼저 GPS 데이터를 표현하는 방법에는 3가지가 있습니다. 1. GPS Data (3547.1282, 12707.2816) 2. 10진수 (35.35821, 127.58165) 3. 도분초 (35º21'14.34'' 127º26'17.97'') 3번 도분초는 개발 과정에서 사용하지 않으므로 따로 언급하지 않고 넘어가도록 하겠습니다. GPS 기기로 데이터를 측정을 하게되면 첫 번째 형태의 데이터를 얻게 됩니다. 실제로는 NMEA 형식 데이터로 측정되는데 NMEA 형식은 밑에서 자세히 다루도록 하겠습니다. 두번째 10진수..
Spring Boot 프로젝트에 Swagger 적용하기 (+인증) 안녕하세요. 유저인사이트 박태양입니다. 이번 시간에는 Spring Boot 프로젝트에 Swagger를 적용하는 방법을 알아보겠습니다. Swagger는 API 개발 및 문서화를 도와주는 오픈소스 프레임워크입니다. 여러분이 생성한 API를 자동으로 문서화 해주고, 웹 페이지를 통해 편리하게 호출할 수 있습니다. 실습 버전 정보는 아래와 같습니다. Spring Boot : 2.7.9 Java : 11 (JDK 11.0.2) Swagger : 3.0.0 Swagger 사용을 위해 pom.xml에 아래 디펜던시를 추가해줍니다. SpringFox는 Spring 기반으로 개발된 API를 자동으로 문서화 해주는 역할을 합니다. io.springfox springfox-boot-starter 3.0.0 Swagger 관..
ChatGPT 체험 후기 안녕하세요 유저인사이트 박준호 선임입니다. 저는 이번에 많이 언급되는 ChatGPT에 대해 간략히 알아보고 실습해 보았습니다. ChatGPT 선정 이유 이번 세미나의 주제로 ChatGPT를 선정한 데에는 단순히 신기하고 재미있겠다는 이유뿐만 아니라, ChatGPT를 잘 사용하면 도움을 받을 수도 있고 언젠가는 개발자가 인공지능에 밀리는 날이 올 수도 있겠다는 생각을 했기 때문입니다. 그리고 https://openai.com/api/ 에서 ChatGPT를 개발하는데 이용한 GPT-3, GPT-3.5를 간접적으로 이용할 수 있는 api를 제공중 이어서 개발에 이용할 수 있을 것 같습니다. 추후에는 ChatGPT의 api도 제공될 예정이라고 합니다. OpenAI API OpenAI is an AI resear..
Maven 프로젝트 Gradle로 변환하기 안녕하세요. 유저인사이트 박태양입니다. 저희는 프로젝트 빌드 도구로 Maven을 사용하고 있습니다. 학습비용이 없다는 점이 가장 큰 이유였는데요, Gradle이 성능 및 가독성 면에서 Maven 보다 뛰어난것 같아 이번 기회에 도입해보려고 합니다. 주로 사용하게 되는 clean compile 기능에서 큰 성능차이를 보여줍니다. 점유율은 아직 Maven이 더 높은 것 같습니다. (관련 저작권이 없어 링크로 대체합니다.) 실습을 통해 Gradle 설치 및 적용방법을 알아보도록 하겠습니다. Gradle 홈페이지에서 Gradle 설치파일을 받아, C:\Gradle 경로에 압축을 풀고, 시스템 환경 변수에서 Path를 추가하여 설치를 완료합니다. (C:\Gradle\gradle-7.6\bin) 정상적으로 설치되었..
Redux와 Mobx 비교 체험기 안녕하세요. 유저인사이트 이현준입니다. 이 글의 주제 React에서 사용하는 상태 관리 라이브러리중 Redux와 Mobx의 개념을 이해하고 두 라이브러리의 비교해 보려고 합니다. 또한 Redux와 Mobx를 각각 사용해 본 경험을 토대로 느낀점을 말씀드리려고 합니다. 목차 State(상태) 란? 상태 관리 라이브러리가 필요한 이유 Flux 디자인 패턴 Redux기초 Mobx기초 Redux와 Mobx 비교 및 느낀점 1. State(상태) 란? State는 컴포넌트의 렌더링 결과에 영향을 주는 데이터를 관리하는 객체입니다. State는 컴포넌트 별로 관리되며 State가 변경되면 컴포넌트가 리렌더링 됩니다. 2. 상태 관리 라이브러리가 필요한 이유 프로젝트 규모가 커지면서 컴포넌트 내부의 데이터(state..