본문 바로가기

전체 글

[Flutter] 채팅앱 만들기 #3 What to do? EncryptionService를 만들고, MessageService 코드 수정하기 메세지를 암호화하는 Service 코드를 작성하고, 기작성했던 message service, test 코드에 적용하기 Reference 라이브러리 설치 메세지 암호화를 위해 encyrpt 라이브러리 설치 Encryption Service 작성하기 service/encryption_service_interface.dart encrypt : 메세지 암호화 decrypt : 암호화 된 메세지 해독 abstract class IEncryptionService { String encrypt(String text); String decrypt(String encryptedText); } service/encry.. 더보기
[Flutter] 채팅앱 만들기 #2 What to do? MessageService를 만들고, Test 코드 작성하기 Reference Pubspec.yaml 로깅을 하기 위해 라이브러리 설치 dependencies: flutter: sdk: flutter ... logger: ^1.2.2 Message Model /model/message_model.dart from : 메세지를 보낸 유저의 id to : 메세지를 받는 유저의 id class Message { String get id => _id; String _id; /// from : sender id /// to : receiver id final String from; final String to; final DateTime timestamp; final String conten.. 더보기
[Flutter] 채팅앱 만들기 #1 What to do? UserService를 만들고, Test 코드 작성하기 Reference 아래 영상을 따라서 만들어보았다. 개발환경 세팅하기 지난번 포스팅으로 대체한다. [Flutter] 개발환경 세팅하기 Install Flutter flutter 홈페이지에서 flutter 다운로드 다운로드 받은 파일의 압축을 풀기 압축을 풀면 bin파일이 있는데, 이후 해당 파일 경로를 환경변수에 등록해야 함 시스템 환경변수 편집에 들어 sddkarma.tistory.com pubspec.yaml pubspec.yaml파일에서 아래 코드를 수정 null-safety 관련해서 문법 오류가 발생해서 sdk 버전을 수정 rethinkdb 라이브러리를 사용하기 위해 dependencies 코드 수정 environment.. 더보기
[Flutter] 개발환경 세팅하기 Install Flutter flutter 홈페이지에서 flutter 다운로드 다운로드 받은 파일의 압축을 풀기 압축을 풀면 bin파일이 있는데, 이후 해당 파일 경로를 환경변수에 등록해야 함 시스템 환경변수 편집에 들어가서 Path 환경변수 편집 bin폴더 경로를 추가 Flutter doctor powershell을 열고, 아래 명령어 입력 flutter doctor Create Project 안드로이드 스튜디오 다운받기 안드로이드 스튜디오 열기 flutter plugin 설치 New Flutter Project 클릭 좌측에 Flutter를 누르고, flutter 압축파일을 푼 경로 입력 gallery라는 이름으로 프로젝트 생성 프로젝트 생성 완료 Demo 프로젝트가 잘 실행되는걸 볼 수 있음 더보기
[Python] 코딩테스트 연습 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net from collections import deque N = int(input()) graph = [] for i in range(N): graph.append(list(map(int, input()))) dx, dy = [1,-1,0,0], [0,0,1,-1] def bfs(g, r, c): q = deque([(r, c)]) g[r][c] = 0 cnt = 1 while q: x, y = q.popleft() for i in range(4): nx = x + .. 더보기
[Python] 코딩테스트 연습 둘만의 암호 def solution(s, skip, index): possible_alphabets = [chr(i) for i in range(ord('a'), ord('z')+1) if chr(i) not in skip] num_alphabets = len(possible_alphabets) alphabet_dict = {} for i, a in enumerate(possible_alphabets): alphabet_dict[a] = i return ''.join([possible_alphabets[(alphabet_dict[_s]+index)%num_alphabets] for _s in s]) 숫자 변환하기 def solution(x, y, n): temp = set([x]) result = 0 w.. 더보기
[Python] Youtube Downloader #2 What to do? 유튜브 다운로더 프로젝트 발전시키기 이전에 flask(python 라이브러리)를 사용해 유튜브 다운로더를 만들어보았다. 이전에 만들었던 프르젝트를 조금 더 발전시켜보았다. [Python] Youtube Downloader #1 What to do? 유튜브 다운로더 만들기 구현 내용 Python 서버를 실행 terminal에 python app.py 입력 브라우져를 열고, localhost:5000 주소로 접속 주소를 입력하고 다운로드 버튼을 누름 다운로드 버튼disbaled 다 sddkarma.tistory.com Front-End 구현 Vanilla JavaScript와 Jinja Template을 사용 → React 적용 다운로드 목록 화면 이전에 다운로드한 목록들을 보여주고, .. 더보기
[Spring] 간단한 SNS 만들기 #10 What to do? 포스팅 수정/삭제 기능 뷰 작성하기 기존에 작성한 Back-End 코드를 일부 수정하고, Front-end(React)코드 작성 마이페이지에서 내가 작성한 포스팅들을 확인할 수 있고, 여기서 포스팅의 수정 및 삭제가 가능 오류수정 (Repository) 이전에 @Query에서 작성한 쿼리에서 오류가 발생해서 앱이 실행이 안되었다. navieQuery=True 옵션을 주면 앱을 실행시켰을 때 잘 되서 해결된 줄 알았는데, 실제로 뷰 삭제를 동작하는 과정에서 오류가 발생했다. 원인은 컬럼명의 대소문자 구분을 못해서 일어난 오류였다. 단순히 removed_at → removedAt 로 쿼리를 수정하는 것으로 문제를 해결했다. CommentRepository.java @Repository .. 더보기