Korea Adaptation Roadmap
Purpose
This roadmap is for a developer who already has practical experience with:
- Next.js
- TypeScript
- PostgreSQL
- Spring Boot + JPA
- Full-stack delivery
But now needs to adapt to the stack often seen in Korea:
- Spring MVC / Spring Boot
- MyBatis XML
- SQL-first backend development
- JSP + JSTL
- jQuery + AJAX
- Bootstrap / older CSS patterns
- Oracle-style SQL and legacy enterprise conventions
- eGovFrame-style structure and naming
The goal is not just to learn syntax. The goal is to become productive in a real Korean company with old and mixed stacks.
Your Starting Position
You are not starting from zero.
Your current strengths already help:
- You understand request-response flow
- You know frontend and backend integration
- You know database design and CRUD
- You know Spring service/controller architecture
- You know how production apps are built
What is different in Korea is mostly:
- more manual SQL
- more XML
- more server-side rendering
- more legacy naming conventions
- more enterprise process and maintenance work
So this is not a beginner-to-developer roadmap. This is a modern full-stack developer to Korean enterprise developer roadmap.
What You Must Understand First
Before going deep into tools, lock these fundamentals:
1. Java Core
You do not need advanced computer science first. You need strong working Java.
Main content:
- class, object, constructor
- interface and implementation
- inheritance
- exception handling
- collections:
List,Map,Set - stream and lambda basics
LocalDateTime- DTO vs VO vs entity/model
Minimum practice:
- create 3 DTO classes
- create service interface + implementation
- convert list data using stream
- write custom exception for not found case
2. SQL Fundamentals
In Korean enterprise, SQL strength matters more than ORM magic.
Main content:
SELECT,INSERT,UPDATE,DELETEWHERE,LIKE,IN,BETWEENORDER BY,LIMIT,OFFSETJOINGROUP BY,HAVING- aggregate functions
- subquery basics
- pagination thinking
Minimum practice:
- write 20 simple queries by hand
- write 5 join queries
- write pagination query for page 1, 2, 3
- write count query for dashboard cards
3. Spring Request Flow
You must clearly understand:
Browser -> Controller -> Service -> Mapper/DAO -> DB -> View or JSONMain content:
@Controllervs@RestController@GetMapping,@PostMapping@RequestParam,@PathVariable,@RequestBody- model binding
- redirect flow
- service responsibility
- transaction responsibility
Minimum practice:
- build one REST CRUD flow
- build one MVC page flow
- compare both side by side
Skill Gap: What Changes From Your Old Stack
| Your strong stack | Korea work stack | What you need to adapt |
|---|---|---|
| Next.js pages/components | JSP views | Server-rendered HTML thinking |
| TypeScript types | Java DTO/VO classes | More explicit class mapping |
| JPA repository | MyBatis XML mapper | Manual query writing |
| PostgreSQL only | PostgreSQL + Oracle style | SQL dialect awareness |
| Fetch / React state | jQuery AJAX + DOM update | Manual DOM control |
| Modern UI flow | Form post + .do style |
Old enterprise patterns |
The hardest change is usually not Java. It is changing from auto-generated data access to explicit SQL and XML-driven development.
Full Roadmap
Phase 0. Reset the Foundation
Target: stop feeling weak in fundamentals.
Study:
- Java syntax and OOP basics
- SQL CRUD basics
- HTTP request/response basics
- HTML form basics
Practice tasks:
- write a Java
Userclass with getters/setters - create a service interface and implementation
- write 10 SQL queries on
users - build a plain HTML form and submit flow
Exit criteria:
- you can explain MVC flow without guessing
- you can write CRUD SQL without looking up every line
- you can read Java class and mapper signatures comfortably
Recommended duration:
- 2 weeks
Phase 1. Spring MVC + SQL Thinking
Target: be comfortable with controller/service/mapper layering.
Study:
- Spring bean basics
- controller annotations
- service layer
- transaction basics
- response wrapper pattern
Practice tasks:
- create
UserController - create
UserServiceandUserServiceImpl - return one list endpoint and one detail endpoint
- add create/update/delete endpoints
- add validation checks manually
Exit criteria:
- you can build CRUD without JPA
- you know where business logic belongs
- you can explain why controller should stay thin
Recommended duration:
- 2 weeks
Phase 2. MyBatis Core
Target: replace JPA habits with SQL + XML confidence.
Study:
- mapper interface
- XML namespace and query id
resultTypevsresultMap- parameter binding with
#{}and${}difference - insert/update/delete/select flow
- logging generated SQL
Practice tasks:
- map
userstable withUserMapper.javaandUserMapper.xml - implement
selectAll,selectById,insert,update,delete - test mapper methods
- fix one mapping issue intentionally, then debug it
Exit criteria:
- you can connect Java object fields to SQL columns correctly
- you stop expecting ORM behavior automatically
- you can debug null or mapping mismatch issues
Recommended duration:
- 2 to 3 weeks
Phase 3. Dynamic SQL and Real Search
Target: handle realistic enterprise search and batch logic.
Study:
<if><where><set><choose><foreach>- reusable SQL fragments
Practice tasks:
- search by username, email, status
- sort by field and order
- filter by multiple IDs
- batch insert users
- batch update status
- dynamic partial update
Exit criteria:
- you can build search screens without string-concatenating SQL badly
- you understand how the final SQL is generated
- you can design request DTOs for search conditions
Recommended duration:
- 2 weeks
Phase 4. JSP + JSTL + Form Flow
Target: stop thinking only in React and become comfortable with JSP.
Study:
- JSP page structure
- JSTL core tags
c:forEach,c:if,c:choosec:out- form submit and redirect
- rendering model data
Practice tasks:
- build user list JSP
- build insert form JSP
- build detail page JSP
- render list with
c:forEach - render safe text with
c:out - submit form to controller and redirect to list
Exit criteria:
- you can read and modify JSP pages without frustration
- you understand how backend data reaches the view
- you know when page reload is normal
Recommended duration:
- 2 weeks
Phase 5. jQuery + AJAX + Bootstrap
Target: become fast in Korean SaaS maintenance work.
Study:
- jQuery selector basics
- event binding
$.ajax()- modal handling
- simple DOM update
- Bootstrap layout and form classes
Practice tasks:
- open modal for detail
- submit create form by AJAX
- update one row in table without full reload
- delete item with confirm dialog
- show success/error alert
Exit criteria:
- you can maintain old jQuery screens without overengineering
- you can mix server render + AJAX where needed
- you can debug UI behavior from browser devtools
Recommended duration:
- 1 to 2 weeks
Phase 6. Enterprise Patterns in Korea
Target: understand how Korean legacy projects are really structured.
Study:
.doURL style- VO / DefaultVO naming
- DAO naming conventions
- eGovFrame package structure
globals.properties- old XML config concepts
- Oracle pagination patterns
- soft delete patterns
Practice tasks:
- build board module with
.doendpoints - create
BoardVO,BoardService,BoardDAO - implement title search
- implement soft delete with
use_yn - implement list/detail/insert/update flow
Exit criteria:
- you can read Korean enterprise source structure and not get lost
- you understand naming and file layout expectations
- you can explain the difference between modern REST style and legacy MVC style
Recommended duration:
- 2 to 3 weeks
Phase 7. Database Reality: Oracle Mindset
Target: prepare for systems that are not clean PostgreSQL-only projects.
Study:
ROWNUMpagination- sequence usage
NVL,DECODE,CASE- join-heavy reporting queries
- date formatting functions
Practice tasks:
- rewrite 5 PostgreSQL queries into Oracle style
- build one paginated list query with Oracle
ROWNUM - write insert using sequence
- compare
COALESCEvsNVL
Exit criteria:
- you are not blocked when project SQL is Oracle-flavored
- you can read legacy SQL faster
Recommended duration:
- 1 week
Phase 8. Production Readiness
Target: be useful on a real team.
Study:
- logging
- error handling
- file upload basics
- Excel download basics
- deployment flow
- WAR packaging and Tomcat basics
- SVN basics if needed
Practice tasks:
- add global exception handling
- add file upload to board
- export list to Excel
- package application
- document run steps
Exit criteria:
- you can work beyond CRUD
- you can deliver features that appear in real internal business tools
Recommended duration:
- 2 weeks
Suggested 12-Week Plan
Weeks 1-2
- Java core
- SQL basics
- Spring MVC request flow
Weeks 3-4
- MyBatis CRUD
- mapper tests
- service/controller layering
Weeks 5-6
- Dynamic SQL
- search, filter, sort, pagination
Weeks 7-8
- JSP + JSTL
- form post flow
- jQuery + AJAX basics
Weeks 9-10
- board project in Korean enterprise style
.doendpoints- soft delete
- dashboard/list/detail flow
Weeks 11-12
- Oracle patterns
- deployment
- file upload / Excel
- project cleanup and documentation
Daily Study Structure
Keep the routine simple and repeatable.
Weekday Plan
1. Learn - 60 minutes
- read one concept
- summarize it in your own words
- write 3 small examples
2. Practice - 90 minutes
- build one small task
- run it
- break it
- fix it
3. Review - 30 minutes
- write what confused you
- write what you solved
- note one follow-up topic
Weekend Plan
- review the whole week
- rebuild one feature from scratch
- write one short note page
- clean up naming and folder structure
Main Content You Must Know
If you feel weak in fundamentals, use this as your non-negotiable list.
Backend Core
- Java class and interface
- exception handling
- collection usage
- DTO / VO / model separation
- controller, service, mapper responsibility
- transaction basics
SQL Core
- CRUD
- join
- grouping
- pagination
- search condition design
- count query
MyBatis Core
- mapper interface
- XML query mapping
resultMap- dynamic SQL tags
- logging and debugging
Web Core
- HTML form
- query string and path variable
- request body vs form submit
- JSP rendering
- JSTL loops and conditions
- jQuery AJAX flow
Enterprise Core
- old naming conventions
.doURLs- Oracle habits
- soft delete
- maintenance mindset
- reading legacy code safely
Small Task Plan You Can Follow
This is the most important part. Do not only study. Finish small visible tasks.
Track 1. Java and SQL Warm-up
- Create
User,UserRequest,UserResponse. - Write 10 SQL queries for
users. - Add 3 join queries with
orders. - Write one custom exception.
- Convert one list with stream.
Track 2. Spring MVC CRUD
- Create list endpoint.
- Create detail endpoint.
- Create insert endpoint.
- Create update endpoint.
- Create delete endpoint.
- Add response wrapper.
Track 3. MyBatis CRUD
- Create mapper interface.
- Create mapper XML.
- Map
selectAll. - Map
selectById. - Map
insert. - Map
update. - Map
delete. - Add mapper test.
Track 4. Dynamic SQL
- Add keyword search.
- Add status filter.
- Add date range filter.
- Add
INfilter. - Add dynamic sorting.
- Add pagination.
Track 5. JSP and jQuery
- Render list page.
- Render detail page.
- Add create form.
- Submit by form post.
- Submit by AJAX.
- Add modal view.
- Add delete confirm.
Track 6. Korea-style Board Project
- Create
BoardVO. - Create
BoardMapper.xml. - Create
BoardDAO. - Create
BoardService. - Create
BoardMvcController. - Add
/board/list.do. - Add
/board/detail.do. - Add
/board/insert.do. - Add
/board/update.do. - Add
/board/delete.do. - Add title search.
- Add soft delete.
Track 7. Production Practice
- Add logging.
- Add validation messages.
- Add exception handling.
- Add file upload.
- Add Excel export.
- Write run guide.
- Package app and run it.
How to Catch Up Efficiently
Rule 1
Do not jump between too many topics. Stay in one phase until you can build something small without copying.
Rule 2
Do not study only theory. Every topic must end with a working page, API, SQL file, or mapper.
Rule 3
Do not compare the old stack with modern stack in a negative way all the time. Treat it as a different operating environment.
Rule 4
When you see old code, first ask:
- what is the request flow?
- where is SQL defined?
- what object carries data?
- what is controller doing?
- what is service doing?
Rule 5
Measure progress by output:
- number of working queries
- number of working mapper methods
- number of working JSP pages
- number of completed small tasks
Best Practice Project Sequence
Build in this order:
- User CRUD REST
- User CRUD MVC
- Search + pagination
- Board module
- File upload
- Dashboard statistics
- Excel export
Why this order:
- first learn simple CRUD
- then learn MVC rendering
- then learn search and query complexity
- then learn real enterprise module shape
- then learn business utility features
Final Goal
After finishing this roadmap, you should be able to:
- read Korean enterprise Spring/MyBatis code comfortably
- write and debug MyBatis XML without fear
- maintain JSP + jQuery screens
- adapt to PostgreSQL or Oracle style SQL
- build typical internal SaaS modules in Korea
- communicate more confidently in Korean enterprise development environments
Last Updated
2026-03-11