Software Engineering 32

[Node.js] 노드.js 설치, Vite 설정 및 개발 서버 구동

1. Node.js 공식 홈페이지의 설명에 따라 설치 진행https://nodejs.org/en/download Node.js — Download Node.js®Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.nodejs.orgnode, fnm(Node.js 버전 관리 프로그램), npm(패키지 관리 프로그램) 등은 본인 계정의 홈 디렉터리/.local/share/fnm/ 아래에 설치된다.  2. Vite(개발환경용 웹 서버) 설치npm install vite  3. Vite 설정vite.config.jsimport { defineConfig } from 'vite'import react from '@vitejs/plugin..

Git 자주 쓰는 명령어 정리

0. 용어 정리working tree: 현재 상태의 Git 디렉터리staging area: git add를 통해 캡처된 파일들의 모임local branch: git commit을 통해 커밋된 파일들은 현재 선택된 브랜치에 반영된다. 1. git config --global user.email=""; git config --global user.name="" 사용자 이메일, 이름 설정(필수). 처음 한 번 설정하면 변경할 일이 없다. 2. git clone .git리포지터리를 로컬에 복사한다. 3. git pull원격 리포의 내용을 가져온다. 4. git add 선택한 파일이나 디렉터리를 staging area에 추가한다. 4.1. .gitignoregit add .을 하면 현재 디렉터리 내 모든 파일이 ..

파이썬/Django 사용자 생성, JWT 토큰 발급/검증 예시

목표: Django의 기본 User 모델을 활용해서 Django 사용자를 생성하는 REST API 만들기 1. venv 활성화source bin/activate 2. 필요 패키지 설치, 설정pip install djangorestframework djangorestframework-simplejwt파일: 프로젝트명/settings.py...INSTALLED_APPS = [ ... 'rest_framework', 'rest_framework_simplejwt',]...REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': [ 'rest_framework_simplejwt.authentication.JWTAuthentication', ..

파이썬/Django 개발환경 구축 (Ubuntu 24.04)

1. 필요한 패키지 식별 및 설치GitPIPapt updateapt install git python3-pip -y 2. 최상위 프로젝트 디렉터리 생성mkdir /mnt/sda1/project 3. 파이썬 가상 환경 (venv) 생성cd /mnt/sda1/projectpython -m venv 프로젝트명cd 프로젝트명(virtualenv등이 더 많은 기능을 제공하지만, venv로 충분하다고 판단) 4. venv 활성화source bin/activate 5. 필요 파이썬 모듈 설치pip install django 6. 장고 프로젝트 생성django-admin startproject 장고프로젝트명 7. 장고 서버 접속 테스트7.1. settings.py 수정파일: 장고프로젝트명/settings.py...AL..

[Eclipse] Solution to 「The default superclass, "jakarta.servlet.http.HttpServlet", according to the project's Dynamic Web Module facet version (5.0), was not found on the Java Build Path.」

이클립스 2023-06 버전에서 Dynamic Web Project를 생성하고 런타임으로 Tomcat 10.1을 사용하는 프로젝트에서 JSP 태그를 작성하면 제목과 같은 오류가 생기는데, 해결 방법을 적어둡니다. 다른 버전도 그런지는 모르겠습니다. 아마 톰캣 버전에 따라서 JSP 관련 클래스의 네임스페이스가 javax에서 jakarta로 바뀌어서 그런 걸로 보입니다. 프로젝트 속성(Properties)에서 Project Facets 화면에서 Dynamic Web Module 항목의 버전을 6.0으로 변경하고 Apply and Close 버튼을 누르면 해결됩니다. 재밌는건 이렇게 해서 오류 마커가 사라지면 모듈 버전을 5.0으로 되돌려도 오류가 다시 생기지 않습니다. 알다가도 모르겠네요

[JSP프로그래밍] 제4장 JSP 동작 원리

1. 단원 요약 JSP 기술은 서블릿 기술에 기반하며, JSP page는 요청 시 서블릿으로 변환→컴파일→실행된다. JSP page를 수정하면 그에 해당하는 서블릿 또한 수정된다. 지시어의 속성 autoFlush: 기본 true, 버퍼가 차면 내용물을 전송하고 다음 작업 수행(false인 경우 버퍼가 차면 exception 발생) buffer: 기본 8kb, 실행 중에 버퍼의 내용물을 수정할 수 있음, 특히 헤더를 수정할 수 있음 동일 기능을 하는 서블릿과 JSP page의 비교 ##### Servlet application ##### import javax.servlet.*; import javax.servlet.http.*; import java.io.*; public class Example ext..

[JSP프로그래밍] 제3장 JSP 개요

1. 단원 요약 액션(action): 요청을 처리할 때 특정 기능을 수행하는 것 JSP page: 지시어/스크립트/액션태그 등의 JSP 요소를 포함하는 HTML 파일 템플릿 데이터: 고정된 데이터(XML/HTML 요소) JSP 요소: 내부에 작성하는 동적인 요소 JSP: Java EE의 하위 기술 중 하나(JSR245)로, 서블릿 기술에 기반하여 동적인 웹 페이지를 생성하는 기술 지시어: JSP page에 대한 설정 정보를 정의하는 요소 스크립트 요소: JSP page 내에서 로 표현되는 요소 Scriptlet: 내부에 자바 코드를 작성한다. 표현식: 변수나 수식의 값을 템플릿 데이터 중간에 표현 선언: Scriptlet이나 표현식에 사용할 메서드나 멤버 변수(필드)를 선언 주석: 액션태그: JSP pa..

Java EE(Jakarta EE) vs. Spring 프레임워크

Spring은 Java EE를 대체하기 위해 나온 기술입니다. Java EE에는 JSP, JSTL, Servlet, EJB, JavaMail, JTA, JMS, JPA 등의 하위 기술들이 포함되어 있는데, 각각이 Spring Framework와 어떻게 대응되는지 궁금해져서 오랜만에 글을 쓰게 되었습니다. 추가로 Java EE와 Spring의 특징과 차이점도 함께 정리하겠습니다. Slideshare에서 좋은 자료를 발견해서 원본 주소를 남기고 가져와 보았습니다. 2011년 자료이지만 기술의 발달 과정을 이해하는 데는 옛날 자료도 도움이 많이 된다고 생각합니다. 1. 특징 비교 의존성 주입 JSR(Java Specification Requests) CDI(Contexts and Dependency Injec..

[Java] 비트 연산자(Bitwise Operators) 정리

1. 논리곱(AND) & 입력 비트가 모두 1인 경우 출력이 1인 연산 byte a = 10; // 1010 byte b = a & 2; // 00001010 // 00000010 // 00000010 System.out.println(b); // 2 2. 논리합(OR) | 입력 비트 중 한 개 이상이 1인 경우 출력이 1인 연산 byte a = 10; // 1010 byte b = a | 2; // 00001010 // 00000010 // 00001010 System.out.println(b); // 10 3. 배타적 논리합(eXclusive OR) ^ 두 입력이 서로 다른 경우 출력이 1인 연산 byte a = 10; // 1010 byte b = a ^ 2; // 00001010 // 000000..

[소프트웨어공학] 제11장 액티비티 다이어그램

1. 단원 요약 액티비티, 액션, 제어흐름 액티비티: 일련의 액션들과 그 제어흐름으로 구성된 작업 단위, 모서리가 둥근 사각형 액션: 액티비티 수행에 필요한 더 이상 분해 불가한 단일 작업, 모서리가 둥근 사각형 제어흐름: 각 액션에 대한 입력흐름과 출력흐름, 화살표 제어노드 시작/종료: 액티비티의 시작과 종료를 표현 액티비티 시작 노드: ⬤ 액티비티 종료 노드: ⦿ 흐름 종료: 액티비티가 아닌 특정 흐름의 종료를 표현 흐름 종료 노드: ⊗ 조건 노드: 조건문과 같은 의미이며, 마름모로 표시 병합 노드: 조건에 따른 흐름들이 합쳐지는 부분이며, 마름모로 표시 포크/조인 노드: 병렬 처리를 표현하며, 굵은 막대로 표시 객체, 객체흐름 객체란 액션의 입/출력 데이터로, 간혹 물리적인 객체이기도 함 객체 노드..