Skip to content

Commit b73155d

Browse files
authored
Merge pull request #257 from prgrms-web-devcourse-final-project/develop
메인 머지
2 parents 41b149b + 4ef0ab6 commit b73155d

File tree

1 file changed

+44
-60
lines changed

1 file changed

+44
-60
lines changed

back/src/main/java/com/back/global/initData/RoadmapInitData.java

Lines changed: 44 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -73,86 +73,70 @@ public void runInitData() {
7373
public void initJobData() {
7474

7575
// 백엔드 개발자
76-
Job job1 = jobRepository.findByName("백엔드 개발자")
77-
.orElseGet(() -> jobService.create("백엔드 개발자", "서버 사이드 로직을 구현하고, 데이터베이스 및 API를 설계·운영하는 개발자입니다."));
78-
jobService.createAlias(job1, "백엔드");
79-
jobService.createAlias(job1, "BE 개발자");
80-
jobService.createAlias(job1, "Backend 개발자");
81-
jobService.createAlias(job1, "서버 개발자");
82-
jobService.createAlias(job1, "API 개발자");
76+
if (jobRepository.findByName("백엔드 개발자").isEmpty()) {
77+
Job job1 = jobService.create("백엔드 개발자", "서버 사이드 로직을 구현하고, 데이터베이스 및 API를 설계·운영하는 개발자입니다.");
78+
jobService.createAlias(job1, "백엔드");
79+
jobService.createAlias(job1, "BE 개발자");
80+
jobService.createAlias(job1, "Backend 개발자");
81+
jobService.createAlias(job1, "서버 개발자");
82+
jobService.createAlias(job1, "API 개발자");
83+
}
8384

8485
// 프론트엔드 개발자
85-
Job job2 = jobRepository.findByName("프론트엔드 개발자")
86-
.orElseGet(() -> jobService.create("프론트엔드 개발자", "웹 또는 앱의 사용자 인터페이스(UI)와 사용자 경험(UX)을 담당하며, 사용자가 직접 보는 화면을 구현하는 개발자입니다."));
87-
jobService.createAlias(job2, "프론트엔드");
88-
jobService.createAlias(job2, "FE 개발자");
89-
jobService.createAlias(job2, "Frontend 개발자");
90-
jobService.createAlias(job2, "웹 퍼블리셔");
91-
jobService.createAlias(job2, "UI 개발자");
92-
jobService.createAlias(job2, "클라이언트 개발자");
86+
if (jobRepository.findByName("프론트엔드 개발자").isEmpty()) {
87+
Job job2 = jobService.create("프론트엔드 개발자", "웹 또는 앱의 사용자 인터페이스(UI)와 사용자 경험(UX)을 담당하며, 사용자가 직접 보는 화면을 구현하는 개발자입니다.");
88+
jobService.createAlias(job2, "프론트엔드");
89+
jobService.createAlias(job2, "FE 개발자");
90+
jobService.createAlias(job2, "Frontend 개발자");
91+
jobService.createAlias(job2, "웹 퍼블리셔");
92+
jobService.createAlias(job2, "UI 개발자");
93+
jobService.createAlias(job2, "클라이언트 개발자");
94+
}
9395

9496
// 모바일 앱 개발자
95-
Job job3 = jobRepository.findByName("모바일 앱 개발자")
96-
.orElseGet(() -> jobService.create(
97-
"모바일 앱 개발자",
98-
"스마트폰과 태블릿 환경에서 동작하는 iOS 또는 Android 애플리케이션을 개발하는 직군으로, 플랫폼별 네이티브 또는 크로스플랫폼 기술을 활용합니다."
99-
));
97+
if (jobRepository.findByName("모바일 앱 개발자").isEmpty()) {
98+
jobService.create("모바일 앱 개발자", "스마트폰과 태블릿 환경에서 동작하는 iOS 또는 Android 애플리케이션을 개발하는 직군으로, 플랫폼별 네이티브 또는 크로스플랫폼 기술을 활용합니다.");
99+
}
100100

101101
// 데이터 엔지니어
102-
Job job4 = jobRepository.findByName("데이터 엔지니어")
103-
.orElseGet(() -> jobService.create(
104-
"데이터 엔지니어",
105-
"데이터를 수집·저장·처리할 수 있는 파이프라인을 설계하고 구축하는 전문가로, 데이터 분석과 AI 모델링의 기반을 마련합니다."
106-
));
102+
if (jobRepository.findByName("데이터 엔지니어").isEmpty()) {
103+
jobService.create("데이터 엔지니어", "데이터를 수집·저장·처리할 수 있는 파이프라인을 설계하고 구축하는 전문가로, 데이터 분석과 AI 모델링의 기반을 마련합니다.");
104+
}
107105

108106
// 데이터 분석가
109-
Job job5 = jobRepository.findByName("데이터 분석가")
110-
.orElseGet(() -> jobService.create(
111-
"데이터 분석가",
112-
"데이터를 기반으로 비즈니스 인사이트를 도출하고, 통계 분석과 시각화를 통해 의사결정을 지원하는 직군입니다."
113-
));
107+
if (jobRepository.findByName("데이터 분석가").isEmpty()) {
108+
jobService.create("데이터 분석가", "데이터를 기반으로 비즈니스 인사이트를 도출하고, 통계 분석과 시각화를 통해 의사결정을 지원하는 직군입니다.");
109+
}
114110

115111
// AI / 머신러닝 엔지니어
116-
Job job6 = jobRepository.findByName("AI/ML 엔지니어")
117-
.orElseGet(() -> jobService.create(
118-
"AI/ML 엔지니어",
119-
"머신러닝과 딥러닝 알고리즘을 활용해 예측 모델과 인공지능 서비스를 개발하는 직군으로, 데이터 처리와 모델 학습에 대한 이해가 필요합니다."
120-
));
112+
if (jobRepository.findByName("AI/ML 엔지니어").isEmpty()) {
113+
jobService.create("AI/ML 엔지니어", "머신러닝과 딥러닝 알고리즘을 활용해 예측 모델과 인공지능 서비스를 개발하는 직군으로, 데이터 처리와 모델 학습에 대한 이해가 필요합니다.");
114+
}
121115

122116
// DevOps 엔지니어
123-
Job job7 = jobRepository.findByName("DevOps 엔지니어")
124-
.orElseGet(() -> jobService.create(
125-
"DevOps 엔지니어",
126-
"개발(Development)과 운영(Operations)을 연결하여 CI/CD 파이프라인, 인프라 자동화, 배포 환경을 최적화하는 엔지니어입니다."
127-
));
117+
if (jobRepository.findByName("DevOps 엔지니어").isEmpty()) {
118+
jobService.create("DevOps 엔지니어", "개발(Development)과 운영(Operations)을 연결하여 CI/CD 파이프라인, 인프라 자동화, 배포 환경을 최적화하는 엔지니어입니다.");
119+
}
128120

129121
// 클라우드 엔지니어
130-
Job job8 = jobRepository.findByName("클라우드 엔지니어")
131-
.orElseGet(() -> jobService.create(
132-
"클라우드 엔지니어",
133-
"AWS, GCP, Azure 등 클라우드 환경에서 인프라를 설계·배포·운영하며, 서비스의 안정성과 확장성을 책임지는 직군입니다."
134-
));
122+
if (jobRepository.findByName("클라우드 엔지니어").isEmpty()) {
123+
jobService.create("클라우드 엔지니어", "AWS, GCP, Azure 등 클라우드 환경에서 인프라를 설계·배포·운영하며, 서비스의 안정성과 확장성을 책임지는 직군입니다.");
124+
}
135125

136126
// 사이버 보안 전문가
137-
Job job9 = jobRepository.findByName("보안 엔지니어")
138-
.orElseGet(() -> jobService.create(
139-
"보안 엔지니어",
140-
"시스템과 네트워크의 보안 취약점을 점검하고, 공격 방어 및 보안 정책을 설계하는 역할을 수행합니다."
141-
));
127+
if (jobRepository.findByName("보안 엔지니어").isEmpty()) {
128+
jobService.create("보안 엔지니어", "시스템과 네트워크의 보안 취약점을 점검하고, 공격 방어 및 보안 정책을 설계하는 역할을 수행합니다.");
129+
}
142130

143131
// 게임 서버/클라이언트 개발자
144-
Job job10 = jobRepository.findByName("게임 개발자")
145-
.orElseGet(() -> jobService.create(
146-
"게임 개발자",
147-
"게임 클라이언트 또는 서버를 개발하는 직군으로, 그래픽·물리 엔진·네트워크 프로그래밍 등 다양한 기술을 다룹니다."
148-
));
132+
if (jobRepository.findByName("게임 개발자").isEmpty()) {
133+
jobService.create("게임 개발자", "게임 클라이언트 또는 서버를 개발하는 직군으로, 그래픽·물리 엔진·네트워크 프로그래밍 등 다양한 기술을 다룹니다.");
134+
}
149135

150136
// QA / 테스트 엔지니어
151-
Job job11 = jobRepository.findByName("QA 엔지니어")
152-
.orElseGet(() -> jobService.create(
153-
"QA 엔지니어",
154-
"소프트웨어 품질을 보증하기 위해 테스트를 설계·자동화·수행하는 직군으로, 버그 탐지와 품질 관리 프로세스를 담당합니다."
155-
));
137+
if (jobRepository.findByName("QA 엔지니어").isEmpty()) {
138+
jobService.create("QA 엔지니어", "소프트웨어 품질을 보증하기 위해 테스트를 설계·자동화·수행하는 직군으로, 버그 탐지와 품질 관리 프로세스를 담당합니다.");
139+
}
156140
}
157141

158142
// --- Task 초기화 (기존 + 기초 보강) ---

0 commit comments

Comments
 (0)