일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 큐
- 크래프톤 정글
- userprog
- 소켓
- 스택
- 모션비트
- TiL
- 백준
- JavaScript
- 시스템콜
- 코드트리
- 나만무
- defee
- 정보처리기사
- 자바
- pintos
- HTML
- Java
- Flutter
- 알고리즘
- 4기
- 크래프톤정글
- 사이드프로젝트
- corou
- 프로그래머스
- 핀토스
- CSS
- 리액트
- 자바스크립트
- Vue.js
- Today
- Total
목록TiL (158)
문미새 개발일지
SOLIDSOLID는 객체지향 프로그래밍(OOP)에서 유지보수성과 확장성을 높이기 위한 5가지 설계 원칙을 의미하며, 이 원칙들은 모듈화가 잘 되어 있고 재사용 가능성을 높이는 데 도움을 준다.Single Responsibility Principle (SRP) - 단일 책임 원칙정의: 한 클래스는 한 책임만을 가져야 하고, 그 역할과 관련된 변경만 반영해야 한다.목적: 각 클래스가 명확한 역할을 가지도록 설계하여 코드 변경 시 다른 부분에 영향을 최소화예시:// 잘못된 설계class UserManager { createUser() { /* 사용자 생성 */ } validateUser() { /* 사용자 검증 */ } sendEmail() { /* 이메일 전송 */ }}// 개선된 설계: ..
Typescript란?Typescript는 마이크로소프트에서 개발한 오픈 소스 프로그래밍 언어로, Javascript의 상위 집합이다.또한, 타입스크립트는 정적 타입을 지원하며, 자바스크립트 코드에 선택적으로 타입을 추가할 수 있게 해주고, 최종적으로 타입스크립트 코드는 자바스크립트로 변환되어 브라우저나 node.js 환경에서 실행된다. 자바스크립트는 대규모 애플리케이션을 개발할 때 동적 타입 언어의 특성상 버그를 찾기 어렵고 코드 유지보수가 힘들어지는 문제가 있었는데, 이를 해결하기 위해 타입스크립트를 개발하게 됐다.자바스크립트의 상위 집합이기 때문에 타입스크립트는 ES6+의 모든 기능을 지원하며, 기존 자바스크립트 라이브러리와도 완벽히 호환된다. 타입스크립트 주요 특징정적 타입변수, 함수 등에 타입을..

헤드라인 api 연동 해결재희님이 cors를 해결했다고 해서 테스트를 진행했다. 잠깐 디코하면서 코드를 실행했을 땐 코스에러가 없었는데, 재부팅 하고 재실행하니까 다시 발생했다. 이쯤되면 아마 앱 개발에서는 코스에러가 발생하지 않아서 적용이 안되는 걸수도 있을거라 결국 에뮬레이터 문제를 해결해서 사용해야되나 싶었는데, 세팅 수정으로 코스에러를 막을 수 있는 블로그를 발견했다.https://kjmhercules.tistory.com/8 [해결방법] Flutter CORS 에러 없애기플러터를 이용하여 Web을 개발하는 경우 REST API를 사용할때 CORS 이슈는 필연적으로 만나게 되는 문제점 중 하나이다. 급하게 개발하는 도중 시뻘건 에러를 만나게 되면 적잖히 당황하게 된다. 물kjmhercules.ti..
flutter의 API 연동 방식은 주로 두 가지로 나뉜다. http 패키지기본적인 HTTP 요청(REST API)을 처리하는 패키지이며, GET, POST, PUT, DELETE 등의 메소드를 지원한다.import 'package:http/http.dart' as http;import 'dart:convert';Future fetchPosts() async { final url = Uri.parse('https://jsonplaceholder.typicode.com/posts'); try { final response = await http.get(url); if (response.statusCode == 200) { final List data = json.decode(resp..

재희님이 배포 수정 중 화면에서 발생한 에러가 좀 있다고 해서 오랜만에 corou를 만지러 갔다.알려준 에러들을 레포 이슈에 등록했는데, 쭉 훑어보니 그 외에도 빠진 부분이 좀 보이더라.그리고 지금 보니까 UI가 너무 밋밋한 부분이 많아서 이후에 UI도 어느정도 수정을 하려고 이슈에 추가해놨다. 배송지 선택 에러 const handleAddressPage = () => { navigate("/mypage/setAddress"); };{!selectAddress ? ( 배송지가 설정되지 않았습니다. 마이페이지로 이동하시겠습니까? 이동 ) : ( ..
class A { int value; A(this.value);}void main() { print(A(1) == A(1)); print(A(1));} 결과:false Instance of 'A' Exited.dart언어는 참조 비교를 사용하기 때문에, 가변 객체인 A 인스턴스는 생성할 때마다 새로운 메모리에 할당되기 때문에 주소값이 다르다.A클래스의 인스턴스를 출력하게 되면, 클래스의 속성이 아닌 어떤 클래스의 인스턴스인지만 모호하게 알려준다.해당 클래스의 속성을 출력하려면 변수명에 $를 붙여($변수명) 출력해야 하며, 이는 리액트의 변수값을 가져오는 ${변수명}과 동일하다.class A { int value; A(this.value); @override String toString() ..

요청에 의해 헤더의 뒤로가기 버튼을 삭제했다. 뒤로가기가 있는 편이 괜찮을 것 같긴 한데, 일단 기획대로는 뒤로가기 버튼이 없기 때문에 삭제했다. 버튼이 없어도 휴대폰에선 뒤로가기 기능이 있고, 페이지 히스토리도 남아있기 때문에 크게 문제는 없을 것 같다.import 'package:flutter/material.dart';class Header extends StatelessWidget implements PreferredSizeWidget { const Header({super.key}); @override Widget build(BuildContext context) { final currentRoute = ModalRoute.of(context)?.settings.name; Str..

일주일 간 예비군에 가족여행 때문에 작업을 못했으니 다시 작업을 시작했다.기존에 만든 회원가입 UI가 애매한 부분이 있어 수정했고, 수정본대로 다시 바꿨다.회원가입 페이지로 접근하면 보이는 화면이며, 이메일을 입력하면 전송 버튼이 활성화된다. void _sendEmail() { final email = emailController.text; final emailRegExp = RegExp(r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'); if (email.isEmpty) { print("이메일을 입력해주세요."); return; } else if (!emailRegExp.hasMatch(email)) { ..