Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,14 @@ public class TechStackSeeder implements ApplicationRunner {
private final TechStackRepository techStackRepository;

// 쉼표로 구분된 기본 스택 목록을 yml에서 주입 (미설정 시 기본값 사용)
@Value("#{'${app.techstack.defaults:Spring Boot,Spring Data JPA,Spring Security,Java,Kotlin,Python,Node.js,Express,TypeScript,React,Next.js,Vue.js,Angular,MySQL,PostgreSQL,Redis,MongoDB,Docker,Kubernetes,AWS,GitHub Actions}'.split(',')}")
@Value("#{'${app.techstack.defaults}'.split(',')}")
private List<String> defaultStacks;

@Override
@Transactional
public void run(ApplicationArguments args) {
long count = techStackRepository.count();
if (count > 0) {
if (count > defaultStacks.size()) {
log.info("[TechStackSeeder] Skip seeding. Existing rows: {}", count);
return;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ public Page<ProfileSearchResponse> searchPlayers(String keyword, int page, int s
Pageable pageable = PageRequest.of(
page,
size,
Sort.by(Sort.Order.asc("nickname"), Sort.Order.asc("id"))
Sort.by(Sort.Order.asc("nickname"))
);
Specification<User> spec = Specification.where(null);

Expand Down
7 changes: 6 additions & 1 deletion src/main/resources/application-prod.yml
Original file line number Diff line number Diff line change
Expand Up @@ -110,4 +110,9 @@ ai:
clova:
streamUrl: https://clovastudio.stream.ntruss.com
model: HCX-005
studio-api-key: ${CLOVA_STUDIO_API_KEY}
studio-api-key: ${CLOVA_STUDIO_API_KEY}


app:
techstack:
defaults: Spring Boot, Spring Data JPA, Spring Security, Java, Kotlin, Python, Node.js, Express, JavaScript, TypeScript, React, Next.js, Vue.js, Angular, MySQL, PostgreSQL, Redis, MongoDB, Docker, Kubernetes, AWS, GitHub Actions, Go, Rust, C#, .NET, PHP, Ruby, Scala, Dart, C/C++, Spring WebFlux, Spring Cloud, Spring Batch, Hibernate, MyBatis, Micronaut, Quarkus, Vert.x, jOOQ, Maven, Gradle, NestJS, Fastify, Koa, Hapi, TypeORM, Prisma, Sequelize, Django, Flask, FastAPI, Celery, Svelte, SvelteKit, Nuxt.js, Remix, Astro, Tailwind CSS, SCSS, Vite, Webpack, Rollup, SWC, Babel, React Native, Flutter, SwiftUI, Jetpack Compose, Oracle, MariaDB, SQLite, Microsoft SQL Server, Cassandra, DynamoDB, Neo4j, ClickHouse, InfluxDB, TimescaleDB, OpenSearch, Meilisearch, Typesense, MinIO, Apache Kafka, RabbitMQ, NATS, Apache Pulsar, GraphQL, Apollo, gRPC, tRPC, NGINX, Traefik, Envoy, Kong, Prometheus, Grafana, Loki, ELK Stack, EFK Stack, OpenTelemetry, Jaeger, Zipkin, Sentry, Terraform, Ansible, Helm, Argo CD, Flux CD, Docker Compose, Jenkins, GitLab CI, CircleCI, GCP, Azure, Cloudflare, Vercel, Netlify, AWS Lambda, Cloud Run, Cloudflare Workers
2 changes: 1 addition & 1 deletion src/main/resources/application.properties
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ spring.data.redis.host=localhost
spring.data.redis.port=6379

app.techstack.seed-on-startup=true
app.techstack.defaults=Spring Boot, Spring Data JPA, Spring Security, Java, Kotlin, Python, Node.js, Express, TypeScript, React, Next.js, Vue.js, Angular, MySQL, PostgreSQL, Redis, MongoDB, Docker, Kubernetes, AWS, GitHub Actions
app.techstack.defaults=Spring Boot, Spring Data JPA, Spring Security, Java, Kotlin, Python, Node.js, Express, JavaScript, TypeScript, React, Next.js, Vue.js, Angular, MySQL, PostgreSQL, Redis, MongoDB, Docker, Kubernetes, AWS, GitHub Actions, Go, Rust, C#, .NET, PHP, Ruby, Scala, Dart, C/C++, Spring WebFlux, Spring Cloud, Spring Batch, Hibernate, MyBatis, Micronaut, Quarkus, Vert.x, jOOQ, Maven, Gradle, NestJS, Fastify, Koa, Hapi, TypeORM, Prisma, Sequelize, Django, Flask, FastAPI, Celery, Svelte, SvelteKit, Nuxt.js, Remix, Astro, Tailwind CSS, SCSS, Vite, Webpack, Rollup, SWC, Babel, React Native, Flutter, SwiftUI, Jetpack Compose, Oracle, MariaDB, SQLite, Microsoft SQL Server, Cassandra, DynamoDB, Neo4j, ClickHouse, InfluxDB, TimescaleDB, OpenSearch, Meilisearch, Typesense, MinIO, Apache Kafka, RabbitMQ, NATS, Apache Pulsar, GraphQL, Apollo, gRPC, tRPC, NGINX, Traefik, Envoy, Kong, Prometheus, Grafana, Loki, ELK Stack, EFK Stack, OpenTelemetry, Jaeger, Zipkin, Sentry, Terraform, Ansible, Helm, Argo CD, Flux CD, Docker Compose, Jenkins, GitLab CI, CircleCI, GCP, Azure, Cloudflare, Vercel, Netlify, AWS Lambda, Cloud Run, Cloudflare Workers

spring.batch.job.enabled=false
spring.batch.jdbc.initialize-schema=always
Expand Down
252 changes: 250 additions & 2 deletions start-dev.sh
Original file line number Diff line number Diff line change
Expand Up @@ -122,24 +122,148 @@ create_or_recreate_techstacks_index() {
"spring boot, springboot, 스프링부트, 스프링 부트",
"spring data jpa, springdatajpa, 스프링데이터 jpa, 스프링 데이터 jpa, 스프링데이터 제이피에이, 스프링 데이터 제이피에이, jpa, 제이피에이",
"spring security, 스프링시큐리티, 스프링 시큐리티",

"java, 자바",
"kotlin, 코틀린",
"python, 파이썬",

"javascript, java script, js, 자바스크립트",
"node, node js, nodejs, node.js, 노드, 노드제이에스",
"express, 익스프레스, 엑스프레스",

"typescript, ts, 타입스크립트",

"react, 리액트",
"next, next js, nextjs, next.js, 넥스트, 넥스트 js",
"vue, vue js, vuejs, vue.js, 뷰, 뷰 js",
"angular, 앵귤러",
"svelte, 스벨트",
"sveltekit, svelte kit, 스벨트킷",
"nuxt, nuxt js, nuxtjs, nuxt.js, 넉스트, 넉스트 js",
"remix, 리믹스",
"astro, 아스트로",
"tailwind css, tailwind, tailwindcss, 테일윈드, 테일윈드 css",
"scss, sass, 사스",
"vite, 비트",
"webpack, 웹팩",
"rollup, 롤업",
"swc, 에스더블유씨",
"babel, 바벨",

"react native, rn, 리액트 네이티브",
"flutter, 플러터",
"swiftui, swift ui, 스위프트ui",
"jetpack compose, compose, 제트팩 컴포즈, 젯팩 컴포즈",

"mysql, my sql, 마이에스큐엘",
"postgresql, postgres, psql, 포스트그레스, 포스트그레스큐엘",
"redis, 레디스",
"mongodb, mongo, 몽고디비, 몽고 db",
"oracle, 오라클, 오라클 db",
"mariadb, 마리아디비",
"sqlite, 스큐라이트, 에스큐엘라이트",
"microsoft sql server, sql server, ms sql, mssql, 마이크로소프트 sql 서버",
"cassandra, 카산드라",
"dynamodb, 다이나모디비",
"neo4j, neo 4j, 네오4j",
"clickhouse, 클릭하우스",
"influxdb, influx db, 인플럭스디비",
"timescaledb, timescale db, 타임스케일디비",
"opensearch, 오픈서치",
"meilisearch, meili search, 메일리서치, 멜리서치",
"typesense, 타입센스",
"minio, 미니오",

"docker, 도커",
"docker compose, docker-compose, 도커 컴포즈",
"kubernetes, k8s, 쿠버네티스",

"aws, 아마존웹서비스, 아마존 웹 서비스",
"github actions, gh actions, 깃허브액션, 깃허브 액션, 깃헙액션, 깃헙 액션"
"aws lambda, lambda, 람다",
"gcp, google cloud, google cloud platform, 구글 클라우드",
"azure, microsoft azure, ms azure, 애저",
"cloudflare, 클라우드플레어",
"cloud run, gcp cloud run, 클라우드 런",
"cloudflare workers, workers, 클라우드플레어 워커",

"github actions, gh actions, 깃허브액션, 깃허브 액션, 깃헙액션, 깃헙 액션",
"gitlab ci, gitlab-ci, gitlabci",
"circleci, circle ci",

"go, golang, 고, 고랭",
"rust, 러스트",
"c/c++, c, c언어, c language, c++, cpp, c plus plus",
"c#, c sharp, 씨샵, 씨샾, 씨샤프",
".net, dotnet, 닷넷",
"php, 피에이치피",
"ruby, 루비",
"scala, 스칼라",
"dart, 다트",
"swift, 스위프트",

"spring webflux, webflux, 웹플럭스",
"spring cloud, 스프링 클라우드",
"spring batch, 스프링 배치",
"hibernate, 하이버네이트",
"mybatis, 마이바티스",
"micronaut, 마이크로나ut, 미크로나ut",
"quarkus, 쿠아르쿠스, 콰르쿠스",
"vert.x, vertx, vert x, 버텍스",
"jooq, jOOQ",

"maven, 메이븐",
"gradle, 그레이들",

"nestjs, nest js, nest.js, 네스트",
"fastify, 패스티파이",
"koa, 코아",
"hapi, 하피",
"typeorm, 타입오알엠",
"prisma, 프리즈마",
"sequelize, 시퀄라이즈",

"django, 장고",
"flask, 플라스크",
"fastapi, 패스트api, 패스트 api",
"celery, 셀러리",

"apache kafka, kafka, 카프카",
"rabbitmq, 래빗mq, 래빗 엠큐",
"nats, 낫츠",
"apache pulsar, pulsar, 펄사",

"graphql, 그래프큐엘",
"apollo, apollo graphql, 아폴로",
"grpc, gRPC, 지알피씨",
"trpc, tRPC, 티알피씨",

"nginx, 엔진엑스",
"traefik, traefik proxy, 트래픽 프록시",
"envoy, envoy proxy, 엔보이",
"kong, kong gateway, 콩 게이트웨이",

"prometheus, 프로메테우스",
"grafana, 그라파나",
"loki, 로키",
"elk stack, elk, elastic stack, 엘라스틱 스택",
"efk stack, efk, 엘에프케이 스택",
"elasticsearch, 엘라스틱서치, 일래스틱서치",
"logstash, 로그스태시",
"kibana, 키바나",

"opentelemetry, open telemetry, otel, 오픈텔레메트리, 오텔",
"jaeger, 예거",
"zipkin, 집킨",
"sentry, 센트리",

"terraform, 테라폼",
"ansible, 앤서블",
"helm, 헬름",
"argo cd, argocd, 아르고 cd",
"flux cd, fluxcd, 플럭스 cd",

"vercel, 버셀",
"netlify, 넷리파이"
]
},

Expand All @@ -149,24 +273,148 @@ create_or_recreate_techstacks_index() {
"spring boot, springboot, 스프링부트, 스프링 부트",
"spring data jpa, springdatajpa, 스프링데이터 jpa, 스프링 데이터 jpa, 스프링데이터 제이피에이, 스프링 데이터 제이피에이, jpa, 제이피에이",
"spring security, 스프링시큐리티, 스프링 시큐리티",

"java, 자바",
"kotlin, 코틀린",
"python, 파이썬",

"javascript, java script, js, 자바스크립트",
"node, node js, nodejs, node.js, 노드, 노드제이에스",
"express, 익스프레스, 엑스프레스",

"typescript, ts, 타입스크립트",

"react, 리액트",
"next, next js, nextjs, next.js, 넥스트, 넥스트 js",
"vue, vue js, vuejs, vue.js, 뷰, 뷰 js",
"angular, 앵귤러",
"svelte, 스벨트",
"sveltekit, svelte kit, 스벨트킷",
"nuxt, nuxt js, nuxtjs, nuxt.js, 넉스트, 넉스트 js",
"remix, 리믹스",
"astro, 아스트로",
"tailwind css, tailwind, tailwindcss, 테일윈드, 테일윈드 css",
"scss, sass, 사스",
"vite, 비트",
"webpack, 웹팩",
"rollup, 롤업",
"swc, 에스더블유씨",
"babel, 바벨",

"react native, rn, 리액트 네이티브",
"flutter, 플러터",
"swiftui, swift ui, 스위프트ui",
"jetpack compose, compose, 제트팩 컴포즈, 젯팩 컴포즈",

"mysql, my sql, 마이에스큐엘",
"postgresql, postgres, psql, 포스트그레스, 포스트그레스큐엘",
"redis, 레디스",
"mongodb, mongo, 몽고디비, 몽고 db",
"oracle, 오라클, 오라클 db",
"mariadb, 마리아디비",
"sqlite, 스큐라이트, 에스큐엘라이트",
"microsoft sql server, sql server, ms sql, mssql, 마이크로소프트 sql 서버",
"cassandra, 카산드라",
"dynamodb, 다이나모디비",
"neo4j, neo 4j, 네오4j",
"clickhouse, 클릭하우스",
"influxdb, influx db, 인플럭스디비",
"timescaledb, timescale db, 타임스케일디비",
"opensearch, 오픈서치",
"meilisearch, meili search, 메일리서치, 멜리서치",
"typesense, 타입센스",
"minio, 미니오",

"docker, 도커",
"docker compose, docker-compose, 도커 컴포즈",
"kubernetes, k8s, 쿠버네티스",

"aws, 아마존웹서비스, 아마존 웹 서비스",
"github actions, gh actions, 깃허브액션, 깃허브 액션, 깃헙액션, 깃헙 액션"
"aws lambda, lambda, 람다",
"gcp, google cloud, google cloud platform, 구글 클라우드",
"azure, microsoft azure, ms azure, 애저",
"cloudflare, 클라우드플레어",
"cloud run, gcp cloud run, 클라우드 런",
"cloudflare workers, workers, 클라우드플레어 워커",

"github actions, gh actions, 깃허브액션, 깃허브 액션, 깃헙액션, 깃헙 액션",
"gitlab ci, gitlab-ci, gitlabci",
"circleci, circle ci",

"go, golang, 고, 고랭",
"rust, 러스트",
"c/c++, c, c언어, c language, c++, cpp, c plus plus",
"c#, c sharp, 씨샵, 씨샾, 씨샤프",
".net, dotnet, 닷넷",
"php, 피에이치피",
"ruby, 루비",
"scala, 스칼라",
"dart, 다트",
"swift, 스위프트",

"spring webflux, webflux, 웹플럭스",
"spring cloud, 스프링 클라우드",
"spring batch, 스프링 배치",
"hibernate, 하이버네이트",
"mybatis, 마이바티스",
"micronaut, 마이크로나ut, 미크로나ut",
"quarkus, 쿠아르쿠스, 콰르쿠스",
"vert.x, vertx, vert x, 버텍스",
"jooq, jOOQ",

"maven, 메이븐",
"gradle, 그레이들",

"nestjs, nest js, nest.js, 네스트",
"fastify, 패스티파이",
"koa, 코아",
"hapi, 하피",
"typeorm, 타입오알엠",
"prisma, 프리즈마",
"sequelize, 시퀄라이즈",

"django, 장고",
"flask, 플라스크",
"fastapi, 패스트api, 패스트 api",
"celery, 셀러리",

"apache kafka, kafka, 카프카",
"rabbitmq, 래빗mq, 래빗 엠큐",
"nats, 낫츠",
"apache pulsar, pulsar, 펄사",

"graphql, 그래프큐엘",
"apollo, apollo graphql, 아폴로",
"grpc, gRPC, 지알피씨",
"trpc, tRPC, 티알피씨",

"nginx, 엔진엑스",
"traefik, traefik proxy, 트래픽 프록시",
"envoy, envoy proxy, 엔보이",
"kong, kong gateway, 콩 게이트웨이",

"prometheus, 프로메테우스",
"grafana, 그라파나",
"loki, 로키",
"elk stack, elk, elastic stack, 엘라스틱 스택",
"efk stack, efk, 엘에프케이 스택",
"elasticsearch, 엘라스틱서치, 일래스틱서치",
"logstash, 로그스태시",
"kibana, 키바나",

"opentelemetry, open telemetry, otel, 오픈텔레메트리, 오텔",
"jaeger, 예거",
"zipkin, 집킨",
"sentry, 센트리",

"terraform, 테라폼",
"ansible, 앤서블",
"helm, 헬름",
"argo cd, argocd, 아르고 cd",
"flux cd, fluxcd, 플럭스 cd",

"vercel, 버셀",
"netlify, 넷리파이"
]
}
},
Expand Down