ํ์ฌ ๋ค๋๊ณ ์๋ ํ์ฌ์ ๊ณ์ฝ์ด ์ฌ 3์ ๋ง์ ์ข ๋ฃ๋๋ค. ๋งจ ์ฒ์ ์ ์ฌํ ๋๊ฐ ์๊ทธ์ ๊ฐ์๋ฐ ๋ฒ์จ ํด์ฌ๋ผ๋. ๊ณ์ฝ์ง์ผ๋ก ์ ์ฌ๋ฅผ ํด์ ์ด์ง ์ค๋น๋ฅผ ํด์ผ๋๋ค๊ณ ์๊ฐ์ ํ์ง๋ง ์ด๋ ค์ด๊ฑด ์๋ ์ ์ผ ๋ง์ง๋ง์ ํ๋ ๋ฒ. ์ต๋ํ ๋ฏธ๋ฃจ๊ณ ๋ฏธ๋ฃจ๋ค๊ฐ ใ ใ ์ด์ ์์ผ ์ค๋นํ๋ ค๊ณ ํ๋ค. ๋๋ฌ์ ์๋ ๋๋ฆ ์ด์ฌํ ์ทจ์ ์ค๋น ํ๋ค๊ณ ์ง์ํด์ 3๊ตฐ๋ฐ์ ๋ฉด์ ์ ๋ดค์ง๋ง ๊ฒฐ๊ณผ๋ ๋ชจ๋ ๋ถํฉ๊ฒฉ... ์๋ฅ ๋ถํฉ๊ฒฉํ๋๊ฑด ๋น์ฐํ๊ณ ๋ฉด์ ๋จ์ด์ง๋ ๊ฒ๋ ์ต์ํด์ ธ์ ์ ๊ฒฝ์ฐ์ง ์๊ณ ๊ณ์ ์ง์ํด์ผ ๋๋๋ฐ ๊ทธ๊ฒ ์ ์๋๋ค. ์ง์ํ๋ ค๋ฉด ๋๋ฌด ๋ด๊ฐ ๋ถ์กฑํ๊ฑฐ ๊ฐ๊ณ ํ๊ณ๋ ๊ฑด ์ ์ด๋ ๊ฒ ๋ง์์ง... ์ฝํ ๋ ์ค๋นํด์ผ๋๊ณ behavioral questions๋ star ํ์์ผ๋ก ์ ๋ฆฌํด์ผ๋๊ณ ๊ธฐ์ ์ง๋ฌธ๋ ํฌํธํด๋ฆฌ์ค๋ ๊ทธ๋ ๊ณ . ๋๋ง ๊ทธ๋ฐ๊ฐ???
์๋๋ ๊ณต๋ฐฑ๊ธฐ๊ฐ ์์ด ์ทจ์ ํ๋ ค๊ณ ํ๋๋ฐ ์ ์ ํด์ฌ์ผ์ด ๋ค๊ฐ์ค๋๊น ๊ทธ๋ฅ ์ค์ ๊ธ์ฌ ๋ฐ์ผ๋ฉด์ ์ฒ์ฒํ ์ค๋นํ ๊น ์ถ๊ธฐ๋ ํ๊ณ ใ ใ ใ ์ด๋๋ก ๋ํผํ๊ณ ์ถ๋ค. ํด.. ํด๋ก๋์์ ๊ณ์ ์ด๊ฑฐ ๋ด๊ฐ ์ง์ํด๋ ๋ ๊น? ๊ฒฝ์๋ฅ ๋๋ฌด ๋์๊ฑฐ ์๋? ์ด๋ฐ์์ผ๋ก ๋ฌผ์ด๋ดค๋๋ ์๊พธ ํ๊ณ๋์ง ๋ง๊ณ ๊ทธ๋ฅ ์ง์ํ๋ผ๊ณ ใ ใ ใ ใ
๋์ ๋ฉํ ใ ใ AI๊ฐ ์ถ์ฒํด์ค ๋ด ํ๋ฃจ ๋ฃจํด. ๊ธฐ๊ณ์ ์ผ๋ก ๊ทธ๋ฅ ์ง์ํด๋ด์ผ์ง.
The Daily Protocol (Monday – Friday)
- 6:00 AM - 7:30 AM (The Grind): Wake up. Do not look at social media. Spend 45 minutes on one LeetCode problem (Easy/Medium on Arrays or HashMaps) and 45 minutes reviewing core Java and Spring Boot concepts (e.g., Bean lifecycles, transactional boundaries, dependency injection).
- 9:00 AM - 6:00 PM (The Day Job): Do exactly what is required to fulfill your contract and hand over your work cleanly.
- 7:30 PM - 10:00 PM (The Compromise): Attend your online classes. Do the absolute bare minimum required to pass. Do not aim for perfection here; aim for survival. Your priority is getting a job, not a flawless grade.
- 10:00 PM - 11:30 PM (The Canadian Window): This is your most critical block. 10:00 PM in Seoul is 9:00 AM in Toronto (EDT). Submit 3 highly targeted applications to backend roles. Send 3 cold, direct LinkedIn messages to Canadian recruiters. Log off and go to sleep.
The Weekend Protocol (Saturday & Sunday)
Your weekends are no longer yours. You will dedicate 10 hours each day to the job hunt.
- Morning Block (4 Hours): Technical articulation. Practice explaining your 3 years of Java experience out loud in English. Talk through the architecture of your Azure-deployed Pomodoro application. If an interviewer asks why you chose specific technologies or how you handled database scaling, you need an immediate, smooth answer.
- Afternoon Block (4 Hours): Sourcing. Build a spreadsheet of 30 to 40 companies hiring backend developers in Canada. Find the technical recruiters for those companies on LinkedIn. Prepare your cold outreach messages for the upcoming week.
- Evening Block (2 Hours): Tailoring. Adjust your resume to ensure your Spring Boot skills match the specific job descriptions you will apply to next week.
Week 1: Java Core Mechanics (March 9 – 13)
You must prove you understand the language under the hood, not just how to use it.
- Monday: HashMap Internals. This is the most common Java interview question. Understand exactly how HashMap works. What is the initial capacity? What is the load factor? What happens during a collision? How does it degrade into a Red-Black tree in Java 8?
- Tuesday: Concurrency & Multithreading. Review the java.util.concurrent package. Understand the difference between Runnable and Callable. Be able to explain CompletableFuture, Thread Pools (ExecutorService), and thread safety mechanisms (synchronized blocks, volatile keyword, ConcurrentHashMap).
- Wednesday: Garbage Collection & Memory. Understand the JVM memory model (Heap vs. Stack, Metaspace). Know the difference between Minor GC and Major GC. Be prepared to explain how you would diagnose a OutOfMemoryError or a memory leak in a production environment.
- Thursday: Streams and Lambdas. Be able to write complex data transformations using the Stream API on a whiteboard. Understand intermediate vs. terminal operations and the performance implications of parallel streams.
- Friday: Exception Handling & SOLID. Review how to implement global exception handling in a REST API. Be able to define all five SOLID principles and provide a concrete example of how you applied each in a previous codebase.
Week 2: Spring Boot Internals (March 16 – 20)
"Magic" is unacceptable at your level. You must explain how Spring Boot auto-configures applications.
- Monday: Inversion of Control (IoC) & Dependency Injection. Explain the ApplicationContext. What are the different ways to inject dependencies (constructor vs. field vs. setter), and why is constructor injection the industry standard?
- Tuesday: Bean Lifecycle and Scopes. Know the exact lifecycle of a Spring Bean from instantiation to destruction. What is the difference between Singleton and Prototype scopes? When would you use @PostConstruct?
- Wednesday: Transaction Management (@Transactional). This is critical. Understand propagation levels (e.g., REQUIRED vs. REQUIRES_NEW) and isolation levels (e.g., READ_COMMITTED vs. SERIALIZABLE). What happens if a checked exception is thrown inside a transactional method? (Hint: It doesn't roll back by default).
- Thursday: Aspect-Oriented Programming (AOP). Understand how Spring uses JDK dynamic proxies or CGLIB to implement cross-cutting concerns like logging, security, and transactions.
- Friday: Spring Security Filter Chain. Be able to draw out the authentication and authorization flow. Understand how to implement JWT (JSON Web Tokens) and stateless authentication for REST APIs.
Week 3: Data Access & JPA/Hibernate (March 23 – 27)
Bad database queries take down applications. You must prove you write efficient data access layers.
- Monday: The N+1 Query Problem. If you do not know this, you will fail the technical screen. Understand what it is, why Hibernate causes it, and how to fix it using JOIN FETCH or EntityGraphs.
- Tuesday: Fetch Strategies. Know the exact difference between FetchType.LAZY and FetchType.EAGER. When should you use which, and what are the performance risks of EAGER loading?
- Wednesday: Database Indexing. Explain how B-tree indexes work. When should you create a composite index? What is the difference between a clustered and non-clustered index?
- Thursday: Connection Pooling. Understand the role of HikariCP (Spring Boot's default). Why is connection pooling necessary for application performance?
- Friday: Caching Strategies. Review how to implement caching to reduce database load. Understand Redis basics, cache eviction policies (LRU), and the problem of stale data.
Week 4: System Design & Defense (March 30 – April 3)
This week is about proving you can architect and defend a complete system.
- Monday: REST API Maturity. What makes an API truly RESTful? Understand Richardson's Maturity Model, idempotent methods (PUT vs. POST), and proper HTTP status code usage.
- Tuesday: Microservices vs. Monoliths. Be prepared to discuss the trade-offs. What is API Gateway? How do microservices communicate (synchronous REST vs. asynchronous message queues like Kafka/RabbitMQ)?
- Wednesday: Defending the Architecture. You will be grilled on the Todo and Pomodoro tracker deployed to Azure. Be ready to explain the complete data flow from the client request to the Azure database. How did you handle CORS? How is the database secured in the cloud?
- Thursday: Scalability Scenarios. What happens if 10,000 users start a Pomodoro timer at the exact same millisecond? How do you scale the backend to handle the load? Be ready to discuss horizontal scaling and load balancers.
- Friday: CI/CD & Deployment. Explain your deployment pipeline. Understand Docker containerization, GitHub Actions, and environment variable management in production.
๋๊ธ