분류 전체보기
🐣 신입 개발자가 알고 있으면 좋을 7가지
🚀 1. 소중한 자산인 시간을 효율적으로 활용하자 시간은 유한하므로 목표를 설정하고 그에 맞는 학습을 진행하자. 자신에 대한 인식을 바탕으로 불필요한 학습을 최소화하자. 🚀 2. 자기 자신을 인식하는 중요성 자기 자신을 인식함으로써 시간을 절약하고 목표에 집중할 수 있다. 🚀 3. 선택할 프로그래밍 언어와 관련 분야 Javascript와 관련 분야: 시각적이고 인터랙티브한 웹 사이트, 앱, 비디오 게임 개발에 관심이 있는 경우 추천. Python과 관련 분야: AI, 자동화, 데이터마이닝에 관심이 있는 경우 추천. 🚀 4. 언어 선택 후 집중적인 학습 선택한 언어에 대해 깊이 있는 학습을 진행하는 것이 좋다. 책, 모범사례, 커뮤니티, 컴퍼런스 등을 활용하여 전문성을 향상시키자. 한 언어를 마스터한 후 ..
알고리즘, 데이터 구조 공부해야 할까?
🤖 왜 공부해야 할까? 공부하는 이유는 다양합니다. 먼저, 취업을 위해 원하는 회사의 면접에 잘 대비하기 위해서입니다. 많은 기업들은 알고리즘과 데이터 구조에 대한 이해를 중요하게 여기고 면접에서도 해당 지식을 평가하는 경우가 많습니다. 뿐만 아니라, 코드를 최적화하고 효율적으로 문제를 해결하기 위해서도 알고리즘과 데이터 구조를 공부하는 것이 중요합니다. 알고리즘은 다양한 문제를 해결하는데 사용되는 효율적인 방법을 제공해주며, 데이터 구조는 데이터를 조직화하고 관리하는 방법을 제시합니다. 이를 통해 프로그램의 성능을 향상시키고 최적화하는 데 도움을 줍니다. ⚙️ 공부 우선순위 개발을 막 입문한 사람은 우선 코드가 정상 동작하도록 만드는 것이 가장 중요합니다. 기술은 결국 문제를 해결하기 위해 탄생했으며,..
[Laravel] .env 파일 설정으로 개발용, 서비스용 URL 나누기
🤔 작성 계기 이번에 회사에서 앱을 리뉴얼하게 되어 해당 앱의 전반적인 API 작업을 맡게 되었다. 그리고 바로 어제 앱이 무사히 서비스되어 오늘은 위 프로젝트의 개발 서버를 세팅하였는데 3개월 전의 무지한 내가 이미지 링크를 전부 하드 코딩으로 써 부린 게 아닌가! 덕분에 개발용으로 API를 던지면 이미지를 불러오지 못하는 현상이 발생해 부랴부랴 코드를 개선하고, 남은 시간에 이 글의 작성하게 되었다. 📖 .env 파일에 정의된 환경 변수를 컨트롤러에서 사용하는 방법 .env 파일에서 APP_URL 값을 확인합니다. 일반적으로 .env 파일은 프로젝트 루트 디렉터리에 위치합니다. 컨트롤러에서 config() 헬퍼 함수를 사용하여 .env 파일에 정의된 변수에 접근할 수 있습니다. config() 함수는..
[Flutter] 단일 박스(Container) 위젯 작성
📚 Container, SizedBox, Center 1. Center child 를 가운데 배치합니다. const Center( child: Text('Flutter My Home Page'); ) 2. Containsar child 레이아웃의 위젯 class MyHomePage extends StatelessWidget { const MyHomePage({ Key? key, }) : super(key: key); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Center(child: const Text('Flutter My App Bar')), ), body: Container( color: ..
[Fltutter] MaterialApp, Text, Scaffold, Appbar
📚 화면 레이아웃 구성 위젯 1. MaterialApp 안드로이드 native setting 빌드 시에 필요한 파일들과 코드들이 생성됩니다. 2. Text 텍스트를 출력해주는 위젯 3. Scaffold 머터리얼 스타일 디자인의 레이아웃 구조물 4. Appbar 상단 네비게이션바를 출력해주는 위젯 📢 모든 화면을 이루는 요소를 위젯(Widget)이라고 표현합니다! Text, Scaffold, AppBar ...등 모든 화면의 구성요소를 위젯 이라고 부릅니다. 📍 예제 void main() { runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({Key? key}) : super(key: key); @override Widge..
[Flutter] 플러터 프로젝트 구조 이해하기
📚 폴더 구조 프로젝트를 만들면 이 안에 프로젝트 파일들이 자동으로 생성됩니다. 샘플 앱이 함께 생성 되기 때문에 코드 작업을 하지 않아도 하나의 앱이 만들어집니다. 📍 /android : 안드로이드 native setting 빌드 시에 필요한 파일들과 코드들이 생성됩니다. 📍 /ios : ios native setting iOS 빌드 시에 필요한 파일들과 코드들이 생성됩니다. 📍 /lib : 대부분의 코드가 작성되는 위치로 어플리케이션에 대한 UI 와 서비스 로직을 담는 폴더입니다. 📍 pubspec.yaml : 플러터 프로젝트의 중심 같은 파일로, 앱 이름, 버전, 빌드, 의존성 (dependencies), 리소스 (이미지, 폰트 파일 등) 등이 모두 등록되어 있는 파일입니다.
[Dart] 상속과 Super, Override
📚 상속 📍 개념 부모의 상태(field)와 행위(function)을 물려 받는 것을 의미합니다. • 부모 클래스와 자식 클래스가 있습니다. • 상속은 부모 클래스에서 진행됩니다. 부모 클래스가 갖고 있는 변수와 함수는 자식이 사용할 수 있습니다. 하지만 자식 클래스가 가지고 있는 변수와 함수는 부모가 가질 수 없습니다. 📍 예제 1 사람 클래스가 있습니다. class Person { } 이 사람 클래스는 이름을 가졌고 말을 하며 걸을 수 있습니다. class Person { Person({ required this.name, }); final String name; void speak() { print('안녕하세요 저는 $name입니다.'); } void walk() { print(..
[Dart] Getter, Setter, 접근 제한자
🌟 접근 제한자 1. 정의 함수나 필드(변수) 접근을 제한할 수 있습니다. • 기본적으로 다른 파일에서 import만 받으면 public 하게 접근이 가능합니다. • private 로 접근을 제한 했을 경우, 파일 내부에서만 접근이 가능합니다. 2. private 선언 방법 필드와 함수 모두 이름 앞에 _ 을 입력해주면 됩니다. class Student { String? _name; } 🌟 Getter 1. 선언 방법 타입 get 게터명 { return 게터 반환 값 } 단순히 반환값만 작성할 경우 아래와 같이 람다식 함수로 표현할 수 있습니다. 타입 get 게터명 => 게터반환값 2. 예제 class Student { String? name; int? _age = 0; int? get age => _a..
[Dart] 클래스 생성자(Class Constructor)
🔎 생성자(Constructor) 📍 정의 클래스(Class)는 객체 지향 프로그래밍(OOP)에서 객체(object)를 생성하기 위해 정의하는 일종의 틀입니다. void main() { print('class 공부'); // 인스턴스(instance) : 객체(object) 생성 // Student 타입의 firlStudent 변수 생성 // Student girlStudent = Student('오냥', 10); Student girlStudent = Student(name: '오냥', age: 10); girlStudent.printTinfo(); // 생성자는 생성을 할 때만 적용 // 생성 시 입력 받은 '오냥'은 '학생'이 ..
[Dart] 클래스(Class) 선언과 인스턴스(Instance)
🔎 클래스(Class) 📍 정의 클래스(Class)는 객체 지향 프로그래밍(OOP)에서 객체(object)를 생성하기 위해 정의하는 일종의 틀입니다. class 는 변수와 함수를 정의할 수 있습니다. 비슷한 성격을 가진 연관있는 변수와 함수들을 한 class에 정의합니다. 📍 작성방법 클래스명의 앞글자는 대문자로 시작해야 합니다. // class 클래스명 {} class Student { String name = 'ohmyo'; // 초기값 할당 int? age; // null을 허용 void printTinfo() { print('----------------'); print('name: $name'); print('age: $age'); pri..