본문 바로가기

프로그래밍257

[Spring] 스프링이란? 스프링이란? 스프링은 스프링 기술들의 모임이다. 스프링 프레임워크, 스프링 부트, 스프링 데이터, 스프링 세션.. 등 스프링 프레임워크 핵심 기술: 스프링 DI 컨테이너, AOP, 이벤트, 기타 웹 기술: 스프링 MVC, 스프링 WebFlux 데이터 접근 기술: 트랜잭션, JDBC, ORM 지원, XML 지원 기술 통합: 캐시, 이메일, 원격접근, 스케줄링 테스트: 스프링 기반 테스트 지원 언어: 코틀린, 그루비 스프링부트 스프링을 편리하게 사용할 수 있도록 지원하는 기술, 최근에는 기본으로 사용된다. 1. Tomcat 같은 웹서버를 내장하여 별도의 웹서버를 설치하지 않아도 된다. 2. 손쉬운 빌드 구성을 위한 starter 종속성 제공 3. 3rd party 라이브러르 자동구성 4. 메트릭, 상태 확인.. 2023. 7. 12.
[Android] 사이닝 처리 하기 윈도우 기준 keytool -genkey -v -keystore jks파일을 만들 경로/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias 앨리어스키 주로 android 폴더 내에 app에다가 jks 파일을 만든다. alias파일과 비밀번호는 동일하게 설정한다. 1. jks파일을 만든 이후에 android프로젝트 폴더에 key.properties 파일을 만든다. storePassword=스토어 패스워드 keyPassword=패스워드 keyAlias=앨리어스 storeFile=jks파일이름.jks 2. app build.gradle 폴더에서 다음과 같이 처리한다. 전역으로 선언 // Create a variable called keystoreProperti.. 2022. 12. 9.
[Flutter] 스크롤뷰 하단부터 위젯 배치 CustomScrollView( slivers: [ SliverFillRemaining( hasScrollBody: false, child: Column( children: [ const Text('Header'), Expanded(child: Container(color: Colors.red)), const Text('Footer'), ], ), ), ], ) SingleChildScrollView를 사용하고 내부에 Expanded위젯을 사용하는 경우에는 스크롤뷰의 크기가 정해져 있어야 사용할 수 있다. 그래서 SizedBox위젯을 사용하여 사이즈 설정 후에 사용하는 경우도 있는데, 문제는 이러면 내부 영역이 고정되어 버린다. 이러한 경우에 CustomScrollView를 사용하여 스크롤뷰 내부에서도 .. 2022. 11. 4.
[Flutter] Visibility와 Opacity 차이 Visibility의 경우에는 해당 위젯이 눈에 보이는지 아예 보이지 않는지에 대한 처리를 한다. (영역을 차지하지 않는다.) Opacity의 경우에는 해당 위젯이 얼만큼 보이는지 opacity값을 조절한다. (영역을 차지한다.) Visibility(visible: true, child: Container()) Opacity(opacity: 1, child: Container()) Flutter로 개발함에 있어서 위의 내용만 이해를 한다면 클릭 이벤트에서 문제가 생길 여지가 있다. 특정 물체에 클릭 이벤트를 주고 싶은 경우에 GestureDetector를 이용하는데, Visibility로 감싼 위젯의 경우에는 false 상태에서 이벤트를 받지 않지만, Opacity로 감싼 위젯의 경우에는 opacity .. 2022. 11. 4.
[Flutter] Flavor 처리(New Version) Flutter Flavor 처리(Old version) https://kymworld.tistory.com/70 Flavor 처리를 적용하다 Flutter에서 Flavor 시스템을 구축하는 방법에 대해서 조사를 했고 실제로 Android에서는 Flavor, IOS에서는 scheme 정보를 추가하여 flutter의 --flavor 명령어를 사용하여 정상적으로 동작하는 것을 확인했습니다. 이러한 방식은 다음 블로그의 내용을 참고하여 작업을 했으며 BuildConfig에 대한 다트 코드 및 main문에 대한 분기 처리를 제외하고는 동일한 방식으로 개발이 되었습니다. Flavor를 통한 빌드 변형 — PART#1 (안드로이드 사이드) Flavor를 통한 빌드 변형 — PART#2 (iOS 사이드) Flavor를.. 2022. 6. 20.
[WebRTC] Real time communication with WebRTC 4 https://codelabs.developers.google.com/codelabs/webrtc-web/#6 7. Set up a signaling service to exchange messages In this step, you'll find out how to: Use npm to install project dependencies as specified in package.json Run a Node.js server and use node-static to serve static files. Set up a messaging service on Node.js using Socket.IO. Use that to create ‘rooms' and exchange messages. Node.js, .. 2022. 6. 19.
[Flutter] Provider 성능 최적화 Flutter의 provider라는 패키지를 사용하여 프로그램을 개발하고 있었는데, 어플 실행시 CPU점유율이 너무 높고 발열이 심한 이슈가 있어서 성능 최적화 작업을 진행하게 되었습니다. 개발과정에서도 어플이 느리긴 했는데 디버그 모드 생각해서 크게 이슈라고 생각하지 않았다가 릴리즈 모드에서 성능이 너무 안 좋아서.... ㅠ 개선 방향성 - 모든 화면에 대한 build함수 호출을 줄이는 방향 - rebuild가 필요하더라도 최소한의 리소스를 사용하는 방향(캐싱) Android Native 앱을 프로파일링 했을 때 CPU점유율이 어느 정도 되는지 비교하고 비슷한 수준으로 맞추거나 더 빠르게 만드는 것을 목표로 하고 개선 작업을 진행했습니다. 테스트 내역(Native 수준으로 빨라질 수 있는가?) 더보기 .. 2022. 6. 12.
[WebRTC] Real time communication with WebRTC 3 https://codelabs.developers.google.com/codelabs/webrtc-web/#5 6. Use RTCDataChannel to exchange data 대부분의 내용이 이전 섹션과 동일합니다. 결국에는 RTCPeerConnection을 만드는 과정에서 sendChannel과 receiveChannel에 대한 생성과 메시지를 받아서 뷰에 출력해주는 부분, 버튼 막는 처리 등의 전부입니다. start 버튼을 누르면 connection생성을 시작합니다. 로컬 커넥션에서 sendDataChannel을 만드는 부분이 추가가 되어 있습니다. 각 localConnection과 채널에 callback 처리를 해주고 있는데 채널에는 각 뷰에 대한 활성화처리, 로깅이 되어 있고 onicecan.. 2022. 6. 10.
[WebRTC] Real time communication with WebRTC 2 https://codelabs.developers.google.com/codelabs/webrtc-web 5. Stream video with RTCPeerConnection In this step you'll find out how to: Abstract away browser differences with the WebRTC shim, adapter.js. Use the RTCPeerConnection API to stream video. Control media capture and streaming. WebRTC Shim과 adapter.js를 사용하여 브라우저간 차이를 추상화 하는 방법 비디오를 스트림하기 위한 RTCPeerConecttion API를 사용하는 방법 미디어 캡처와 스트리밍 관리 .. 2022. 6. 8.
[WebRTC] Real time communication with WebRTC 1 https://codelabs.developers.google.com/codelabs/webrtc-web 1. 소개 WebRTC는 실시간 소통을 위한 오픈 소스 프로젝트로 Web과 Native App에서 사용할 수 있습니다. WebRTC는 다양한 JavaScript API를 가지고 있습니다. getUserMedia(): capture audio and video. // 오디오와 비디오를 캡처합니다. MediaRecorder: record audio and video. // 오디오와 비디오를 기록합니다. RTCPeerConnection: stream audio and video between users. // 유저간 오디오와 비디오를 전송합니다. RTCDataChannel: stream data betwe.. 2022. 6. 5.