[Django] Admin 관리자 페이지 등록 / 커스터마이징 방법
·
Development & Projects
Django의 Admin은 개발자가 별도의 페이지를 구현하지 않아도 데이터베이스의 모델을 웹 UI로 쉽게 관리할 수 있게 해주는 기능입니다.관리자는 /admin/ URL로 접속하여 모델 데이터를 직접 추가·수정·삭제할 수 있습니다. 1. Admin 활성화하기1) settings.py 확인Django 프로젝트를 생성하면 이미 아래 앱이 기본적으로 들어있습니다.INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles..
[Django] 장고의 MVT 패턴 (Model-View-Template)
·
Development & Projects/Python
장고는 기본적으로 MVT 패턴에 따라 애플리케이션을 개발하도록 유도합니다. MVT 패턴 데이터(Model), 사용자 인터페이스(View), 데이터를 처리하는 로직(Controller)을 구분해서 한 요소가 다른 요소들에 영향을 주지 않도록 설계하는 방식을 의미합니다. 이런 방식으로 개발을 진행하면 UI 디자이너는 데이터 관리나 애플리케이션 로직에 신경 쓰지 않고도 화면 UI를 설계할 수 있고 로직이나 데이터를 설계하는 개발자도 화면 디자인은 디자이너에게 맡기고 자신의 설계 및 개발 업무에만 집중할 수 있습니다. 장고 프레임워크에서는 View를 Template, Controller를 View라고 표현하여 MVT 패턴이라고 합니다.각각의 역할은 다음과 같습니다.Model - 데이터베이스에 저장되는 데이..
[Spring] 스프링 빈이란? / Spring Bean / 등록 방법 / 빈 스코프 / LifeCycle
·
Development & Projects/Java
1. 빈(Bean)이라는 이름의 유래자바의 유래가 커피의 공급원인 자바 섬에서 나온 것과 같이 재사용이 가능한 자바 객체를 커피콩에 비유해서 자바빈이라고 지었는데, “Bean”은 원래 자바빈(JavaBean) 개념에서 차용된 이름입니다.스프링이 등장하면서 이 개념을 확장하여, “스프링 컨테이너가 관리하는 재사용 가능한 객체”를 스프링 빈(Spring Bean) 이라고 부르게 되었습니다. 2. 스프링 빈이란?스프링 빈이란 스프링 컨테이너(IoC 컨테이너)가 생성하고 관리하는 객체를 말합니다.일반 자바 객체는 개발자가 직접 new로 생성하고 관리합니다.반면 스프링 빈은 스프링 컨테이너가 객체의 생성, 의존성 주입, 소멸 등 전체 생명주기를 관리해 줍니다.객체 간의 의존도와 결합도를 낮추고 높은 캡슐화를 제공..
[Java] 비동기 처리와 스레드 관리
·
Development & Projects/Java
Thread + Runnable가장 기본적인 스레드 생성 방식으로 Runnable 인터페이스에 작업 내용을 정의하고 Thread 객체로 감싸 실행한다.Runnable task = () -> System.out.println("새 스레드에서 작업 실행!");Thread thread = new Thread(task);thread.start(); // 비동기 실행 시작하지만 이 방법은 작업이 필요할 때마다 스레드를 생성하고 파괴해야 한다.그림에 보이는 것처럼 다중 요청이 들어오면 동시에 처리하는게 아닌 요청 1을 처리하고 요청 2를 처리하기에 매우 비효율적이라고 볼 수 있다.ExecutorService매번 스레드를 만들고 없애는 비효율을 없애기 위해 Thread Pool 개념 도입하게 된다.스레드 미리 만들어..
[Java] JVM(Java Virtual Machine)
·
Development & Projects/Java
JVM(Java Virtual Machine)운영체제에 종속받지 않고 CPU가 Java 인식하고 실행할 수 있도록 해주는 가상 컴퓨터이다.→ 이 덕분에 자바는 운영체제에 독립적이라는 장점을 가지게 된다.자바 언어 자체는 CPU가 인식하지 못하기에 기계어로 컴파일을 해줘야 하는데 이때 Java는 byte코드로 변환된 후 JVM이 binary code로 변환된다.Java 작성한 소스파일은 JVM을 거쳐 운영체제와 상호작용 함JVM 덕분에 Java는 “운영체제로부터 독립적”라는 특징을 가짐 (Write Once, Run Anywhere)구조Class Loader클래스 파일(.class)을 로드하고 링크를 통해 배치하는 작업 수행한다. 런타임 시, 동적으로 클래스 로드하고 jar 파일 내 저장된 클래스들을 JV..
[Java] 상속 정리 / 다중 상속 / 다이아몬드 문제
·
Development & Projects/Java
1. super()와 생성자 호출 규칙자바에서 자식 클래스가 부모 클래스를 상속받으면, 자식 생성자에서 부모 생성자를 반드시 호출해야 합니다.이때 super()는 자동으로 삽입되며, 항상 생성자의 첫 줄에 위치해야 합니다.class Parent { private String name; // 기본 생성자가 없음 public Parent(String name) { this.name = name; }}class Child extends Parent { // 컴파일 에러 발생 public Child() { // super(); // 자동 호출되지만 Parent() 기본 생성자가 없어 에러 }} 부모 클래스에 기본 생성자가 존재하면 → super() ..
[Java] 추상 클래스와 인터페이스 정리
·
Development & Projects/Java
추상화란?추상화는 객체들의 공통적인 속성과 기능을 정의함으로써 코드 중복을 줄이고, 클래스 간 관계를 효과적으로 설정하며 유지/보수를 용이하게 하는 기법이다.자바에서는 추상 클래스(abstract class) 와 인터페이스(interface) 를 통해 추상화를 지원한다. 추상 클래스 (Abstract Class)추상 클래스는 클래스지만 직접 인스턴스를 생성할 수 없고, 하나 이상의 추상 메서드(abstract method) 를 포함할 수 있다.즉, 오직 상속을 통해 하위 클래스에서만 완성될 수 있다. abstract class Test { abstract void doSomething(); // 추상 메서드 void commonMethod() { // 일반 메서드 ..
Expo 앱 빌드부터 App Store 배포하기
·
Development & Projects
React Native + Expo로 만든 앱을 iOS App Store에 배포하려면 .ipa 파일을 생성하고, Apple의 심사를 통과해야 합니다. Expo EAS Build를 활용한 iOS 배포 절차입니다. 1. Expo 배포 준비① EAS CLI 설치npm install -g eas-cli② Expo 로그인eas login③ EAS 빌드 초기화eas build:configure 이후 eas.json 파일이 자동 생성됩니다. 2. Apple Developer 계정 연결① Apple Developer 계정 가입https://developer.apple.com/programs/ ② Apple Developer에서 Identifier 등록https://developer.apple.com/account/r..