
Flutter의 프로젝트 폴더 구성 Spring 기반 백엔드만 사용하다가 처음으로 Flutter를 세팅해 보았습니다.하지만 프로젝트 구조가 너무 복잡하여 "도대체 어디에 코드를 작성해야 하지?" 라는 생각이 들었습니다.저뿐만이 아니라 처음 Flutter를 세팅해 본 다른 사람도 뭐가 뭔지 모르는 상황이 올 것 같아서 제가 공부한 폴더를 소개해주려고 합니다.[프로젝트 이름]/├─ android/├─ ios/├─ lib/│ └─ main.dart├─ test/├─ pubspec.yaml└─ 기타 파일들 (.gitignore, README.md 등)lib 폴더저희들이 주로 개발하게될 Flutter앱의 메인 코드 위치입니다.앱 UI / 기능 개발하는 메인 영역입니다.즉, Flutter 앱의 심장이며 Dart ..

설치 받아야 하는 것 IDE (XCode)IDE (Android Studio)Flutter SDKHomebrew XCode 설치 앱스토어에서 xcode를 검색하여 설치를 진행합니다.근데 25.06.28 기준으로는 MacOs 버전이 15이상이여야한다고 해서 운영체제 업그레이드를 해주었습니다. 설치를 받고 난 뒤에 실행을 하면 MacOS와 IOS를 선택하고 Built In을 클릭해주면 됩니다. Android Studio 설치하기 우선 VS Code 말고 이것을 선택한 이유는 인텔리제이 기반으로 만들어져있기 떄문에 선택하였습니다. 아래의 URL에서 자신의 개발환경에 맞는 것을 다운로드 받으시면 됩니다.https://developer.android.com/studio?hl=ko Android 스튜디..

개발 환경 MacOS sequoia 15.5Homebrew 4.5.8 이것을 정리하는 이유 자주 사용할 필요도 없고 외울 필요도 없습니다.하지만 관리하지않고 사용하게 되면 용량은 커질 뿐더러 느려질 수 있습니다.맥북에서도 자주 관리하며 사용하는 것을 추천합니다. 명령어 모음 전체 디스크 사용량확인설치된 패키지 목록과 각각 용량 확인캐시 용량 확인 및 캐시 정리패키지 제거패키지 재설치패키지 업데이트 Homebrew 전체 디스크 사용량 확인Apple Silicon(M1~4)은 기본적으로 /opt/homebrew에 설치됩니다.du -sh /opt/homebrew# 출력 예시355M /opt/homebrew 설치된 패키지 목록과 각각 용량 확인brew list --formula | while rea..

Dart가 뭘까? Google에서 만들었어요! 그래서 크롬과 안드로이드에서 잘 작동합니다!Flutter 프레임워크의 핵심 언어입니다! 0. 정말 기본주석// 코드를 컴퓨터이 인식하지 못하게 합니다.문자열 표시'안녕'프로그램 실행 및 글자 출력void main() { print('안녕, 친구들!');}// 화면 출력안녕, 친구들! 1. 변수 선언 변수 = 값을 담는 상자라고 생각해야 합니다.자료형void main() { int age = 30; // 나이 30 String name = 'zi존코딩맨'; // 이름 (글자) bool isDeveloper = true; // 참/거짓 // 값을 보여줄 땐 $ 표시를 써요. print('내 이름은 $name이고 나이는 $..

들어 가기 전 코드가 이해가 되지 않는다면 전체 코드는 GitHub에 있으니 참고하시면 됩니다.Web으로 개발을 해볼 것이며 Spring으로 진행하였습니다. 카카오 로그인 과정 이해하기 사용자가 카카오 로그인 버튼을 누릅니다.사용자는 카카오 로그인 정보를 입력합니다.사용자는 사용자 약관 동의를 설정하고 로그인 요청을 합니다.애플리케이션 서버에서 사용자 토큰을 가져옵니다.가져온 토큰으로 카카오에게 사용자 정보를 조회해 옵니다.로그인을 성공합니다. 인가 코드로 카카오 토큰 받기 인가코드 받은 것으로 KaKao 인증서버에 날려서 토큰을 받아야합니다. UserService.java@Slf4j@Service@RequiredArgsConstructorpublic class UserService { ..

들어 가기 전 코드가 이해가 되지 않는다면 전체 코드는 GitHub 에 있으니 참고하시면 됩니다!Web으로 개발을 해볼 것이며 간단한 React 코드와 Spring으로 진행하였습니다. 카카오 로그인 과정 이해하기 뻔하지만 카카오 로그인 인증 흐름을 설명하려고 합니다. 사용자가 카카오 로그인 버튼을 누릅니다.사용자는 카카오 로그인 정보를 입력합니다.사용자는 사용자 약관 동의를 설정하고 로그인 요청을 합니다.애플리케이션 서버에서 사용자 토큰을 가져옵니다.가져온 토큰으로 카카오에게 사용자 정보를 조회해 옵니다.로그인을 성공합니다. 기능 개발에 앞서서 카카오 디벨로퍼에서 값 세팅하기 1. 플랫폼 등록하기[내 어플리케이션] → [앱설정] → [플랫폼] 으로 진입합니다.Web으로 진행할 것이기 때문에 ..

들어가기 전 현재 작성된 코드들은 GitHub 에 저장되어 있습니다.이해가 안되는 부분이 있다면 번갈아 가며 확인해주시면 됩니다. 개발 환경 Spring Boot 3.4.5Java 17IntelliJMacOS 왜 멀티 모듈을 선택했나? 실무에서 진행하는 프로젝트는 멀티 모듈로 되어 있으며 개발을 진행 중입니다.하지만 세팅해본 적은 없으며 그냥 있으니까 얼레벌레 개발만하고 "원래 이랬으니까~" 라는 생각으로 살아 왔었습니다. 하지만 이렇게 가다간 도태 될 것같아서 크기가 큰 프로젝트라면 언젠간 마주 할 것 같아서 이번 기회에 공부해보려고 합니다.멀티 모듈은 아래와 같은 장점을 가지기 있으며 앞으로 협업을 진행하면 확실이 체감 할 것 같습니다.거의 대부분의 회사가 멀티 모듈로 진행 중이였네.. 도..

운영하는 프로젝트의 이슈를 대응 하려면 어떻게 해보는 것일까요? 누가 인입 했는지누가 어떤 이력을 남겼는지어디서 성능 저하가 발생하는 건지어떤 이유로 에러가 발생하는 건지어떻게 확인 할 수 있을 까요? 바로 로그를 까보는 것입니다.이슈 대응의 네비게이션이 바로 로그라는 것이죠 그래서 운영하면서 세팅하면 좋은 10가지를 소개해주려고 합니다. log_statement : 어떤 쿼리를 기록할 것인가log_min_duration_statement : 슬로우 쿼리 추척log_lock_waits : 락 대기 탐지log_temp_files : 디스크 임시 파일 기록log_min_messages : 로그 레벨 설정log_autovacuum_min_duration : autovacuum 추적 이것들은 PostgreSQ..

JWT가 등장하게 된 배경 초기의 웹 서비스에서는 사용자가 로그인하면 서버가 사용자 정보를 세션에 저장하고 클라이언트에게는 세션 ID를 쿠키에 담아 전달해 인증 상태를 유지했습니다. 하지만 최근 들어MSA 아키텍처의 도입프론트엔드와 백엔드 서버의 분리모바일 앱 및 다양한 디바이스의 등장으로 인해 API 서버가 여러 클라이언트의 요청을 받아야 하는 환경이 되었습니다. 결국 서버가 인증 상태를 관리하지 않고 매 요청마다 독립적으로 인증할 수 있는 Stateless한 방식이 필요해졌습니다.이 문제를 해결하기 위해 등장한 것이 바로 JWT(Json Web Token) 입니다. 세션(Session) 동작 원리 사용자가 로그인하면 서버는 세션 ID를 생성하고 세션 DB(또는 Redis)에 사용자 정보를 저장합..

서론 사용자가 많아져 서비스가 커질수록 다수의 트랜잭션이 동시에 실행되는 상황에서 컨트롤하는 건 쉽지 않아 질 것입니다.그럼 저희는 성능과 데이터 일관성 사이에서 끊임 없는 트레이드 오프를 하게 될 것입니다. 예를 들어,커머스 도메인에 상품 재고는 1개인데 2명의 사용자가 같은 상품을 주문하려고 하면 어떻게 될까요?상식적으로 생각하면 1명은 구매 성공, 1명은 구매 실패일 것입니다.하지만 재고는 -1개에다가 2명이 모두 주문이 되는 이상한 현상이 나타날 것입니다. 이 문제를 해결하기 위해 LOCK 에 대해 알아보려고 합니다. LOCK은 무엇인가? DB에서의 락(LOCK)은 여러 사용자가 동시에 같은 데이터에 접근할 때 데이터의 일관성과 무결성을 유지하는 즉, 동시성 제어를 위해 사용하는 필수적인 기술..
- Total
- Today
- Yesterday
- DBeaver
- 개발자
- 계단 오르기
- Fetch
- 프로세스
- 실시간 채팅
- Homebrew
- java
- 프론트
- 코딩테스트
- JavaScript
- Front
- 네트워크
- jvm
- 소셜로그인
- 깃허브 액션
- 데이터 베이스
- 카카오 로그인
- Flutter
- 개발환경
- 트랜잭션
- DART
- aws
- 디자인패턴
- Spring Security
- 템플릿
- 비동기
- Cors
- 개발블로그
- spring
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |