소프트웨어 개발 과정에서 자주 사용되는 다양한 용어와 개념을 정리합니다. 이 문서는 주로 프로그래밍, 데이터베이스 관리, 보안 및 네트워킹 등과 관련된 내용을 포함합니다.
- 버전 관리
- Git Stash: 작업 중인 변경 사항을 임시 저장소에 보관하는 명령어입니다.
// 예제: Git stash 활용
git stash push -m "작업 중간 저장"
git stash pop // 저장된 변경사항 복원
- JSON 데이터 구조
- JSON 배열은 대괄호([])로 묶이며, 각 요소는 쌍따옴표(") 없이 작성됩니다.
{
"userList": [
{"username":"ZhangSan","password":"123456"},
{"username":"Lisi","password":"asdfgh"}
]
}
- 데이터베이스
- SQL Order By CS: CS는 Case Sensitive를 의미하며, 대소문자를 구분하여 정렬합니다.
- CLOB/NCLOB: 대용량 텍스트 데이터를 저장하기 위한 데이터 타입입니다.
-- CLOB 예제
CREATE TABLE example (
id NUMBER,
content CLOB
);
- 보안
- Information Leakage: 중요한 정보가 외부로 유출되는 것을 방지해야 합니다.
- Veracode: 소프트웨어 취약점을 분석하는 도구입니다.
// 예제: Veracode 권장 사항
String userInput = request.getParameter("input");
if (userInput != null && !userInput.isEmpty()) {
process(userInput);
}
- Java 프로그래밍
- Static Block: 클래스 로드 시점에 실행됩니다.
class Example {
static {
System.out.println("클래스 초기화");
}
}
- ThreadGroup: 여러 스레드를 그룹화하여 관리할 수 있습니다.
ThreadGroup group = new ThreadGroup("GroupA");
Thread t1 = new Thread(group, () -> System.out.println("스레드 A"));
t1.start();
- Spring Framework
- @Import: 다른 구성 클래스를 현재 구성 클래스에 추가합니다.
@Configuration
@Import({ConfigA.class, ConfigB.class})
public class AppConfig {}
- MessageSource: 국제화(i18n)을 지원하는 인터페이스입니다.
- 네트워크
- NCSA Log Format: 웹 서버 활동 기록 형식입니다.
127.0.0.1 - - [01/Jan/2022:12:00:00 -0500] "GET /index.html HTTP/1.1" 200 1234
- 다른 용어
- RetentionPolicy.RUNTIME: 어노테이션이 런타임까지 유지되도록 설정합니다.
- Volatile: 멀티스레드 환경에서 변수의 값을 항상 메인 메모리에서 읽습니다.
volatile boolean flag = true;
- 수학 및 알고리즘
- 소수 판별: 주어진 숫자가 소수인지 확인합니다.
public boolean isPrime(int num) {
if (num <= 1) return false;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) return false;
}
return true;
}
- 데이터 처리
- Stream Reduce: 컬렉션 데이터를 단일 값으로 변환합니다.
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
int sum = numbers.stream().reduce(0, Integer::sum);
위 내용들은 소프트웨어 개발자들이 업무 중 자주 접하는 용어와 코드 예제들로 구성되었습니다.