diff --git a/.gitignore b/.gitignore index 8724d89..88c83a7 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ build/ !**/src/main/**/build/ !**/src/test/**/build/ .env +.env-prod *.java~ ### STS ### diff --git a/build.gradle b/build.gradle index 0b13e17..d3a629f 100644 --- a/build.gradle +++ b/build.gradle @@ -51,7 +51,8 @@ dependencies { compileOnly 'org.projectlombok:lombok' developmentOnly 'org.springframework.boot:spring-boot-devtools' // runtimeOnly 'com.oracle.database.jdbc:ojdbc8:19.8.0.0' - runtimeOnly 'com.oracle.database.jdbc:ojdbc6:11.2.0.4' + //runtimeOnly 'com.oracle.database.jdbc:ojdbc6:11.2.0.4' + implementation 'mysql:mysql-connector-java:8.0.33' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' diff --git a/src/main/java/com/wooribound/domain/employment/Employment.java b/src/main/java/com/wooribound/domain/employment/Employment.java index a2555a7..d501894 100644 --- a/src/main/java/com/wooribound/domain/employment/Employment.java +++ b/src/main/java/com/wooribound/domain/employment/Employment.java @@ -26,17 +26,9 @@ @Table(name = "employment") @AllArgsConstructor @Entity -@SequenceGenerator( - name = "employment_seq_generator", - sequenceName = "employment_SEQ", - allocationSize = 1 -) public class Employment { @Id - @GeneratedValue( - strategy= GenerationType.AUTO, - generator = "employment_seq_generator" - ) + @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "emp_id") private Long empId; diff --git a/src/main/java/com/wooribound/domain/enterprise/Enterprise.java b/src/main/java/com/wooribound/domain/enterprise/Enterprise.java index 3d42c6e..cf7083c 100644 --- a/src/main/java/com/wooribound/domain/enterprise/Enterprise.java +++ b/src/main/java/com/wooribound/domain/enterprise/Enterprise.java @@ -67,7 +67,7 @@ public class Enterprise { private Date deleteRequestedAt; @Enumerated(EnumType.STRING) - @Column(name = "is_deleted", nullable = false, columnDefinition = "VARCHAR2(1) DEFAULT 'N'") // database default 설정 (jpql 사용에 대비) + @Column(name = "is_deleted", nullable = false, columnDefinition = "CHAR(1) DEFAULT 'N'") // database default 설정 (jpql 사용에 대비) private YNP isDeleted = YNP.N; // entity 필드 기본값 설정 (jpa 함수 사용을 통한 쿼리 생성 대비) @OneToMany(mappedBy = "enterprise", fetch = FetchType.LAZY) diff --git a/src/main/java/com/wooribound/domain/interestjob/InterestJob.java b/src/main/java/com/wooribound/domain/interestjob/InterestJob.java index 4e22092..6832545 100644 --- a/src/main/java/com/wooribound/domain/interestjob/InterestJob.java +++ b/src/main/java/com/wooribound/domain/interestjob/InterestJob.java @@ -21,17 +21,9 @@ @AllArgsConstructor @RequiredArgsConstructor @Table(name = "interest_job") -@SequenceGenerator( - name = "interest_job_seq_generator", - sequenceName = "interest_job_SEQ", - allocationSize = 1 -) public class InterestJob { @Id - @GeneratedValue( - strategy = GenerationType.AUTO, - generator = "interest_job_seq_generator" - ) + @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "interest_id") private Long interestId; diff --git a/src/main/java/com/wooribound/domain/interestjob/InterestJobRepository.java b/src/main/java/com/wooribound/domain/interestjob/InterestJobRepository.java index 00b98cc..cff60cc 100644 --- a/src/main/java/com/wooribound/domain/interestjob/InterestJobRepository.java +++ b/src/main/java/com/wooribound/domain/interestjob/InterestJobRepository.java @@ -16,12 +16,11 @@ public interface InterestJobRepository extends JpaRepository { @Modifying @Query(value = """ - INSERT INTO interest_job (interest_id, job_id, user_id) - VALUES ( - interest_job_SEQ.NEXTVAL, - (SELECT job_id FROM job WHERE CONVERT(job_name, 'UTF8') = CONVERT(:jobName, 'UTF8')), - :userId - )""", nativeQuery = true) + INSERT INTO interest_job (job_id, user_id) + VALUES ( + (SELECT job_id FROM job WHERE job_name = :jobName), + :userId + )""", nativeQuery = true) void saveInterestJob(@Param("userId") String userId, @Param("jobName") String jobName); @Query("SELECT ij.job.jobName FROM InterestJob ij WHERE ij.wbUser.userId = :userId") diff --git a/src/main/java/com/wooribound/domain/job/Job.java b/src/main/java/com/wooribound/domain/job/Job.java index 004f2f6..d6fa67e 100644 --- a/src/main/java/com/wooribound/domain/job/Job.java +++ b/src/main/java/com/wooribound/domain/job/Job.java @@ -16,17 +16,9 @@ @Table(name = "job") @AllArgsConstructor @Entity -@SequenceGenerator( - name = "job_seq_generator", - sequenceName = "job_SEQ", - allocationSize = 1 -) public class Job { @Id - @GeneratedValue( - strategy=GenerationType.AUTO, - generator = "job_seq_generator" - ) + @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "job_id") private Long jobId; diff --git a/src/main/java/com/wooribound/domain/jobposting/JobPosting.java b/src/main/java/com/wooribound/domain/jobposting/JobPosting.java index 3f297d9..6e41e74 100644 --- a/src/main/java/com/wooribound/domain/jobposting/JobPosting.java +++ b/src/main/java/com/wooribound/domain/jobposting/JobPosting.java @@ -17,13 +17,9 @@ @Table(name = "job_posting") @AllArgsConstructor @Entity -@SequenceGenerator( - name = "job_posting_seq_generator", - sequenceName = "job_posting_SEQ", - allocationSize = 1 -) public class JobPosting { @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "post_id") private Long postId; @@ -44,7 +40,7 @@ public class JobPosting { private Date endDate; @Enumerated(EnumType.STRING) - @Column(name = "is_deleted", nullable = false, columnDefinition = "VARCHAR2(1) DEFAULT 'N'") + @Column(name = "is_deleted", nullable = false, columnDefinition = "CHAR(1) DEFAULT 'N'") private YN isDeleted = YN.N; @ManyToOne(fetch = FetchType.LAZY) diff --git a/src/main/java/com/wooribound/domain/knowhow/Knowhow.java b/src/main/java/com/wooribound/domain/knowhow/Knowhow.java index ab39844..a3e2d9b 100644 --- a/src/main/java/com/wooribound/domain/knowhow/Knowhow.java +++ b/src/main/java/com/wooribound/domain/knowhow/Knowhow.java @@ -16,15 +16,10 @@ @Table(name = "knowhow") @AllArgsConstructor @Entity -@SequenceGenerator( - name = "knowhow_seq_generator", - sequenceName = "knowhow_SEQ", - allocationSize = 1 -) public class Knowhow { - @Id @Column(name = "knowhow_id") + @GeneratedValue(strategy = GenerationType.IDENTITY) private Long knowhowId; @Column(name = "knowhow_job", length = 30, nullable = false) diff --git a/src/main/java/com/wooribound/domain/knowhowreported/KnowhowReported.java b/src/main/java/com/wooribound/domain/knowhowreported/KnowhowReported.java index a99fa09..6770ec2 100644 --- a/src/main/java/com/wooribound/domain/knowhowreported/KnowhowReported.java +++ b/src/main/java/com/wooribound/domain/knowhowreported/KnowhowReported.java @@ -14,17 +14,9 @@ @Table(name = "knowhow_reported") @AllArgsConstructor @Entity -@SequenceGenerator( - name = "knowhow_reported_seq_generator", - sequenceName = "knowhow_reported_SEQ", - allocationSize = 1 -) public class KnowhowReported { @Id - @GeneratedValue( - strategy = GenerationType.AUTO, - generator = "knowhow_reported_seq_generator" - ) + @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "reported_id") private Long reportedId; diff --git a/src/main/java/com/wooribound/domain/notification/Notification.java b/src/main/java/com/wooribound/domain/notification/Notification.java index 1db4a03..e1b1b1b 100644 --- a/src/main/java/com/wooribound/domain/notification/Notification.java +++ b/src/main/java/com/wooribound/domain/notification/Notification.java @@ -21,17 +21,9 @@ @Table(name = "notification") @AllArgsConstructor @Entity -@SequenceGenerator( - name = "notification_seq_generator", - sequenceName = "notification_SEQ", - allocationSize = 1 -) public class Notification { @Id -// @GeneratedValue( -// strategy = GenerationType.AUTO, -// generator = "notification_seq_generator" -// ) + @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "noti_id") private Long notiId; @@ -42,7 +34,7 @@ public class Notification { @Column(name = "notice", nullable = false, length = 200) private String notice; - @Column(name = "is_confirmed", columnDefinition = "VARCHAR2(1) DEFAULT 'N'", nullable = false) + @Column(name = "is_confirmed", columnDefinition = "CHAR(1) DEFAULT 'N'", nullable = false) @Enumerated(value = EnumType.STRING) private YN isConfirmed; diff --git a/src/main/java/com/wooribound/domain/resume/Resume.java b/src/main/java/com/wooribound/domain/resume/Resume.java index 7500c0a..65db0d2 100644 --- a/src/main/java/com/wooribound/domain/resume/Resume.java +++ b/src/main/java/com/wooribound/domain/resume/Resume.java @@ -19,14 +19,10 @@ @Table(name = "resume") @AllArgsConstructor @Entity -@SequenceGenerator( - name = "resume_seq_generator", - sequenceName = "resume_SEQ", - allocationSize = 1 -) public class Resume { @Id @Column(name = "resume_id") + @GeneratedValue(strategy = GenerationType.IDENTITY) private Long resumeId; @OneToOne diff --git a/src/main/java/com/wooribound/domain/userapply/UserApply.java b/src/main/java/com/wooribound/domain/userapply/UserApply.java index 41d5f9a..868acc9 100644 --- a/src/main/java/com/wooribound/domain/userapply/UserApply.java +++ b/src/main/java/com/wooribound/domain/userapply/UserApply.java @@ -32,13 +32,9 @@ @Table(name = "user_apply") @AllArgsConstructor @Entity -@SequenceGenerator( - name = "user_apply_seq_generator", - sequenceName = "user_apply_SEQ", - allocationSize = 1 -) public class UserApply { @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "apply_id") private Long applyId; @@ -51,7 +47,7 @@ public class UserApply { private WbUser wbUser; @Enumerated(value = EnumType.STRING) - @Column(name = "result", nullable = false, length = 40 , columnDefinition = "VARCHAR2(20) DEFAULT 'PENDING'") + @Column(name = "result", nullable = false, length = 40 , columnDefinition = "VARCHAR(20) DEFAULT 'PENDING'") private ApplyResult result; @Column(name = "apply_date", nullable = false) diff --git a/src/main/java/com/wooribound/domain/wbuser/WbUser.java b/src/main/java/com/wooribound/domain/wbuser/WbUser.java index 6ae89d2..7180930 100644 --- a/src/main/java/com/wooribound/domain/wbuser/WbUser.java +++ b/src/main/java/com/wooribound/domain/wbuser/WbUser.java @@ -56,11 +56,11 @@ public class WbUser { @Enumerated(value = EnumType.STRING) private Gender gender; - @Column(name = "exjob_chk", columnDefinition = "VARCHAR2(1) DEFAULT 'N'") + @Column(name = "exjob_chk", columnDefinition = "CHAR(1) DEFAULT 'N'") @Enumerated(value = EnumType.STRING) private YN exjobChk = YN.N; - @Column(name = "interest_chk", columnDefinition = "VARCHAR2(1) DEFAULT 'N'", nullable = false) + @Column(name = "interest_chk", columnDefinition = "CHAR(1) DEFAULT 'N'", nullable = false) @Enumerated(value = EnumType.STRING) private YN interestChk = YN.N; @@ -70,11 +70,11 @@ public class WbUser { @Column(name = "addr_province", length = 20) private String addrProvince; - @Column(name = "job_point", nullable = false, columnDefinition = "NUMBER DEFAULT 0") + @Column(name = "job_point", nullable = false, columnDefinition = "INT DEFAULT 0") private int jobPoint = 0; @Enumerated(value = EnumType.STRING) - @Column(name = "job_interest", nullable = false, columnDefinition = "VARCHAR2(1) DEFAULT 'N'") + @Column(name = "job_interest", nullable = false, columnDefinition = "CHAR(1) DEFAULT 'N'") private YN jobInterest = YN.N; @Column(name = "created_at", nullable = false) // NOT NULL 제약 조건 @@ -84,15 +84,15 @@ public class WbUser { private Date updatedAt; @Enumerated(value = EnumType.STRING) - @Column(name = "is_deleted", nullable = false, columnDefinition = "VARCHAR2(1) DEFAULT 'N'", length = 10) // NOT NULL 제약 조건 + @Column(name = "is_deleted", nullable = false, columnDefinition = "CHAR(1) DEFAULT 'N'", length = 10) // NOT NULL 제약 조건 private YN isDeleted = YN.N; @Enumerated(value = EnumType.STRING) - @Column(name = "first_login", nullable = false, columnDefinition = "VARCHAR2(1) DEFAULT 'N'", length = 1) + @Column(name = "first_login", nullable = false, columnDefinition = "CHAR(1) DEFAULT 'N'", length = 1) private YN isInfoRegistered = YN.N; @Enumerated(value = EnumType.STRING) - @Column(name = "data_sharing_consent", nullable = false, columnDefinition = "VARCHAR2(1) DEFAULT 'N'", length = 1) + @Column(name = "data_sharing_consent", nullable = false, columnDefinition = "CHAR(1) DEFAULT 'N'", length = 1) private YN dataSharingConsent = YN.N; @OneToOne(mappedBy = "wbUser", fetch = FetchType.LAZY) diff --git a/src/main/java/com/wooribound/domain/workhistory/WorkHistory.java b/src/main/java/com/wooribound/domain/workhistory/WorkHistory.java index 46f4cf1..1686eb7 100644 --- a/src/main/java/com/wooribound/domain/workhistory/WorkHistory.java +++ b/src/main/java/com/wooribound/domain/workhistory/WorkHistory.java @@ -18,17 +18,9 @@ @AllArgsConstructor @Entity @Table(name = "work_history") -@SequenceGenerator( - name = "work_history_seq_generator", - sequenceName = "work_history_SEQ", - allocationSize = 1 -) public class WorkHistory { @Id - @GeneratedValue( - strategy=GenerationType.AUTO, - generator = "work_history_seq_generator" - ) + @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "exjob_id") private Long exjobId; diff --git a/src/main/java/com/wooribound/domain/workhistory/WorkHistoryRepository.java b/src/main/java/com/wooribound/domain/workhistory/WorkHistoryRepository.java index a77490d..194b46f 100644 --- a/src/main/java/com/wooribound/domain/workhistory/WorkHistoryRepository.java +++ b/src/main/java/com/wooribound/domain/workhistory/WorkHistoryRepository.java @@ -13,12 +13,11 @@ public interface WorkHistoryRepository extends JpaRepository { @Modifying @Query(value = """ - INSERT INTO work_history (exjob_id, job_id, user_id) - VALUES ( - work_history_SEQ.NEXTVAL, - (SELECT job_id FROM job WHERE CONVERT(job_name, 'UTF8') = CONVERT(:jobName, 'UTF8')), - :userId - )""", nativeQuery = true) + INSERT INTO work_history (job_id, user_id) + VALUES ( + (SELECT job_id FROM job WHERE job_name = :jobName), + :userId + )""", nativeQuery = true) void saveByJobName(@Param("userId") String userId, @Param("jobName") String jobName); @Query("SELECT wh FROM WorkHistory wh WHERE wh.wbUser.userId = :userId") diff --git a/src/main/resources/application-prod.properties b/src/main/resources/application-prod.properties new file mode 100644 index 0000000..5fee248 --- /dev/null +++ b/src/main/resources/application-prod.properties @@ -0,0 +1,59 @@ +server.port=8081 + +# .env ?? +spring.config.import=optional:file:.env-prod[.properties] + +targetIp = ${TARGET_IP} + +# Mysql +spring.datasource.url=jdbc:mysql://${MYSQL_IP}:${MYSQL_PORT}/${MYSQL_DATABASE_NAME}?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Seoul +spring.datasource.username=${MYSQL_USERNAME} +spring.datasource.password=${MYSQL_PASSWORD} + +# JPA ???? +spring.jpa.properties.hibernate.show_sql=true +spring.jpa.properties.hibernate.format_sql=true +spring.jpa.properties.hibernate.highlight_sql=true +spring.jpa.hibernate.ddl-auto=create +spring.jpa.properties.hibernate.jdbc.time_zone= Asia/Seoul +spring.jpa.database-platform=org.hibernate.dialect.MySQL8Dialect +spring.jpa.defer-datasource-initialization=true +spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl + +logging.level.org.hibernate.orm.jdbc.bind: trace + +# data.sql ?? ?? +spring.sql.init.mode=always + +# naver OAuth2 +spring.security.oauth2.client.registration.naver.client-id=${NAVER_CLIENT_ID} +spring.security.oauth2.client.registration.naver.client-secret=${NAVER_CLIENT_SECRET} +spring.security.oauth2.client.registration.naver.redirect-uri=${NAVER_CLIENT_REDIRECT_URL} +spring.security.oauth2.client.registration.naver.authorization-grant-type=authorization_code +spring.security.oauth2.client.registration.naver.scope=name +spring.security.oauth2.client.provider.naver.authorization-uri=https://nid.naver.com/oauth2.0/authorize +spring.security.oauth2.client.provider.naver.token-uri=https://nid.naver.com/oauth2.0/token +spring.security.oauth2.client.provider.naver.user-info-uri=https://openapi.naver.com/v1/nid/me +spring.security.oauth2.client.provider.naver.user-name-attribute=response + +# jwt +jwt.secret=${JWT_SECRET_KEY} +jwt.expiration=86400 + +# redis +spring.data.redis.host=${REDIS_HOST} +spring.data.redis.port=${REDIS_PORT} +spring.data.redis.password=${REDIS_PASSWORD} +spring.data.redis.timeout=5000ms + +# imgfile +spring.servlet.multipart.enabled=true +spring.servlet.multipart.max-file-size=10MB +spring.servlet.multipart.max-request-size=10MB + +# S3 +cloud.aws.credentials.accessKey=${AWS_ACCESS_KEY} +cloud.aws.credentials.secretKey=${AWS_SECRET_KEY} +cloud.aws.s3.bucketName=${AWS_BUCKET_NAME} +cloud.aws.region.static=${AWS_REGION} +cloud.aws.stack.auto-=false diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 7b704be..64f2230 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -6,10 +6,15 @@ spring.config.import=optional:file:.env[.properties] targetIp = ${TARGET_IP} # Oracle ?? ?? -spring.datasource.url=jdbc:oracle:thin:@${ORACLE_IP}:${ORACLE_PORT}:${DATABASE_NAME} -spring.datasource.username=${ORACLE_USERNAME} -spring.datasource.password=${ORACLE_PASSWORD} -spring.datasource.driver-class-name=oracle.jdbc.OracleDriver +#spring.datasource.url=jdbc:oracle:thin:@${ORACLE_IP}:${ORACLE_PORT}:${DATABASE_NAME} +#spring.datasource.username=${ORACLE_USERNAME} +#spring.datasource.password=${ORACLE_PASSWORD} +#spring.datasource.driver-class-name=oracle.jdbc.OracleDriver + +# Mysql +spring.datasource.url=jdbc:mysql://${MYSQL_IP}:${MYSQL_PORT}/${MYSQL_DATABASE_NAME}?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Seoul +spring.datasource.username=${MYSQL_USERNAME} +spring.datasource.password=${MYSQL_PASSWORD} # JPA ???? spring.jpa.properties.hibernate.show_sql=true @@ -17,7 +22,8 @@ spring.jpa.properties.hibernate.format_sql=true spring.jpa.properties.hibernate.highlight_sql=true spring.jpa.hibernate.ddl-auto=create spring.jpa.properties.hibernate.jdbc.time_zone= Asia/Seoul -spring.jpa.database-platform=org.hibernate.dialect.OracleDialect +#spring.jpa.database-platform=org.hibernate.dialect.OracleDialect +spring.jpa.database-platform=org.hibernate.dialect.MySQL8Dialect spring.jpa.defer-datasource-initialization=true spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql index 58152dd..30a2bc6 100644 --- a/src/main/resources/data.sql +++ b/src/main/resources/data.sql @@ -25,50 +25,69 @@ INSERT INTO job (job_id, job_name) VALUES (21, '공공-복지'); -- Enterprise 데이터 INSERT INTO enterprise (ent_id, ceo_name, ent_field, ent_size, reg_num, revenue, ent_name, ent_pwd, ent_addr1, ent_addr2, created_at, is_deleted) -VALUES ('ENT001', 'CEO Kim', 'IT', 'MEDIUM', '1234567890', '100000000', 'Tech Corp', 'password123', 'Seoul, Korea', 'IT Tower', SYSTIMESTAMP, 'N'); +VALUES ('ENT001', 'CEO Kim', 'IT', 'MEDIUM', '1234567890', '100000000', 'Tech Corp', 'password123', 'Seoul, Korea', 'IT Tower', NOW(), 'N'); INSERT INTO enterprise (ent_id, ceo_name, ent_field, ent_size, reg_num, revenue, ent_name, ent_pwd, ent_addr1, ent_addr2, created_at, is_deleted) -VALUES ('ENT002', 'CEO Lee', 'Finance', 'LARGE', '0987654321', '500000000', 'Finance Inc', 'securepwd', 'Busan, Korea', 'Blue Square',SYSTIMESTAMP, 'N'); +VALUES ('ENT002', 'CEO Lee', 'Finance', 'LARGE', '0987654321', '500000000', 'Finance Inc', 'securepwd', 'Busan, Korea', 'Blue Square',NOW(), 'N'); -- Wb_User 데이터 -INSERT INTO wb_user (user_id, gender, job_point, birth, created_at, addr_city, addr_province, name, phone, email, exjob_chk, interest_chk, job_interest, is_deleted) -VALUES ('USER001', 'M', 10, TO_TIMESTAMP('1985-05-20 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), SYSTIMESTAMP, 'Seoul', 'Seoul', 'John Doe', '010-1234-5678', 'johndoe@example.com', 'N', 'Y', 'N', 'N'); -INSERT INTO wb_user (user_id, gender, job_point, birth, created_at, addr_city, addr_province, name, phone, email, exjob_chk, interest_chk, job_interest, is_deleted) -VALUES ('USER002', 'F', 20, TO_TIMESTAMP('1990-08-15 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), SYSTIMESTAMP, 'Busan', 'Busan', 'Jane Doe', '010-8765-4321', 'janedoe@example.com', 'Y', 'N', 'Y', 'N'); - +INSERT INTO wb_user ( + user_id, gender, job_point, birth, created_at, + addr_city, addr_province, name, phone, email, + exjob_chk, interest_chk, job_interest, is_deleted +) VALUES ( + 'USER001', 'M', 10, + STR_TO_DATE('1985-05-20 00:00:00', '%Y-%m-%d %H:%i:%s'), + NOW(), + 'Seoul', 'Seoul', 'John Doe', '010-1234-5678', 'johndoe@example.com', + 'N', 'Y', 'N', 'N' + ); + +-- 먼저 USER002 데이터 삽입 +INSERT INTO wb_user ( + user_id, gender, job_point, birth, created_at, + addr_city, addr_province, name, phone, email, + exjob_chk, interest_chk, job_interest, is_deleted +) VALUES ( + 'USER002', 'F', 5, + STR_TO_DATE('1990-03-15 00:00:00', '%Y-%m-%d %H:%i:%s'), + NOW(), + 'Busan', 'Busan', 'Jane Doe', '010-9876-5432', 'janedoe@example.com', + 'N', 'Y', 'N', 'N' + ); -- Employment 데이터 (외래 키로 wb_user와 enterprise 필요) INSERT INTO employment (emp_id, hire_date, emp_recomm, emp_state, ent_id, user_id, job_id) -VALUES (1, SYSTIMESTAMP, 'Y', 'Y', 'ENT001', 'USER001', 1); +VALUES (1, NOW(), 'Y', 'Y', 'ENT001', 'USER001', 1); INSERT INTO employment (emp_id, hire_date, emp_recomm, emp_state, ent_id, user_id, job_id) -VALUES (2, SYSTIMESTAMP, 'N', 'N', 'ENT002', 'USER002', 2); +VALUES (2, NOW(), 'N', 'N', 'ENT002', 'USER002', 2); -- Job_Posting 데이터 (외래 키로 job과 enterprise 필요) INSERT INTO job_posting (post_id, start_date, end_date, job_id, post_title, ent_id, post_img) -VALUES (1, SYSTIMESTAMP, SYSTIMESTAMP + INTERVAL '30' DAY, 1, 'Backend Developer', 'ENT001', 'img/backend.jpg'); +VALUES (1, NOW(), NOW() + INTERVAL '30' DAY, 1, 'Backend Developer', 'ENT001', 'img/backend.jpg'); INSERT INTO job_posting (post_id, start_date, end_date, job_id, post_title, ent_id, post_img) -VALUES (2, SYSTIMESTAMP, SYSTIMESTAMP + INTERVAL '60' DAY, 2, 'UI/UX Designer', 'ENT002', 'img/designer.jpg'); +VALUES (2, NOW(), NOW() + INTERVAL '60' DAY, 2, 'UI/UX Designer', 'ENT002', 'img/designer.jpg'); -- 지원현황 INSERT INTO user_apply (apply_id, post_id, user_id, result, apply_date) -VALUES (1, '1', 'USER001', 'PENDING', TO_DATE('2024-11-01', 'YYYY-MM-DD')); +VALUES (1, '1', 'USER001', 'PENDING', STR_TO_DATE('2024-11-01', '%Y-%m-%d')); INSERT INTO user_apply (apply_id, post_id, user_id, result, apply_date) -VALUES (2, '2', 'USER002', 'PENDING', TO_DATE('2024-11-01', 'YYYY-MM-DD')); +VALUES (2, '2', 'USER002', 'PENDING', STR_TO_DATE('2024-11-01', '%Y-%m-%d')); -- 노하우 INSERT INTO knowhow (knowhow_id, knowhow_job, knowhow_title, knowhow_content, upload_date, user_id) -VALUES (1, 'Software Developer', 'Effective Debugging Techniques', 'Learn how to debug effectively to save time and increase productivity.', TO_DATE('2024-11-05', 'YYYY-MM-DD'), 'USER001'); +VALUES (1, 'Software Developer', 'Effective Debugging Techniques', 'Learn how to debug effectively to save time and increase productivity.', STR_TO_DATE('2024-11-05', '%Y-%m-%d'), 'USER001'); INSERT INTO knowhow (knowhow_id, knowhow_job, knowhow_title, knowhow_content, upload_date, user_id) -VALUES (2, 'Data Scientist', 'Building a Predictive Model', 'Step-by-step guide to building a predictive model using machine learning.', TO_DATE('2024-11-04', 'YYYY-MM-DD'), 'USER001'); +VALUES (2, 'Data Scientist', 'Building a Predictive Model', 'Step-by-step guide to building a predictive model using machine learning.', STR_TO_DATE('2024-11-04', '%Y-%m-%d'), 'USER001'); INSERT INTO knowhow (knowhow_id, knowhow_job, knowhow_title, knowhow_content, upload_date, user_id) -VALUES (3, 'Product Manager', 'Effective Communication with Stakeholders', 'Strategies for effective communication with project stakeholders.', TO_DATE('2024-11-03', 'YYYY-MM-DD'), 'USER001'); +VALUES (3, 'Product Manager', 'Effective Communication with Stakeholders', 'Strategies for effective communication with project stakeholders.', STR_TO_DATE('2024-11-03', '%Y-%m-%d'), 'USER001'); INSERT INTO knowhow (knowhow_id, knowhow_job, knowhow_title, knowhow_content, upload_date, user_id) -VALUES (4, 'UI/UX Designer', 'User-Centered Design Principles', 'Introduction to user-centered design principles for better user experiences.', TO_DATE('2024-11-02', 'YYYY-MM-DD'), 'USER002'); +VALUES (4, 'UI/UX Designer', 'User-Centered Design Principles', 'Introduction to user-centered design principles for better user experiences.', STR_TO_DATE('2024-11-02', '%Y-%m-%d'), 'USER002'); INSERT INTO knowhow (knowhow_id, knowhow_job, knowhow_title, knowhow_content, upload_date, user_id) -VALUES (5, 'Software Developer', 'Optimizing Server Performance', 'Tips and techniques for optimizing server performance and ensuring stability.', TO_DATE('2024-11-01', 'YYYY-MM-DD'), 'USER002'); +VALUES (5, 'Software Developer', 'Optimizing Server Performance', 'Tips and techniques for optimizing server performance and ensuring stability.', STR_TO_DATE('2024-11-01', '%Y-%m-%d'), 'USER002'); INSERT INTO resume (resume_id, user_id, user_img, resume_email, user_intro) VALUES (1, 'USER001', 'https://example.com/image1.jpg', 'user1@example.com', 'Experienced software developer with a strong background in Java and Spring.');