Points I Experienced While Working on a Greenfield Project
Hello, in this post, I’d like to share some of the key experiences I had while working on a greenfield project.
As a front-end developer, I created a React Native app.
Schema is Everything
The schema I'm referring to here is the schema that comes through the HTTP REST API.
I’ve shortened the title a bit, but if I were to be more detailed, the subtitle could easily be "The Database Schema According to the Domain is Everything."
In my experience with big tech companies, and in highly divided organizations where everyone mainly focuses on their own field, decisions regarding the schema are typically made in advance, and we don’t need to discuss them with the server team. As a result, I was mostly limited to focusing on the area I was assigned to, and I never experienced the decision-making process that happens behind the scenes.
However, in this project, I collaborated with the server team to discuss the HTTP schema from the start.
We didn’t directly discuss the DB tables based on the domain, but we did set up common agreements between the server and the client by abstracting the schema.
This made me realize something very important: ultimately, the product that users interact with and use is a representation of the movements of relational DB tables happening in the background.
Therefore, the schema based on the domain is extremely important, as it forms the backbone and foundation of the product.
Ah, Now I Can Do Something!
The second thought I had came when I was about to finish everything as I was preparing to deploy the app.
The biggest challenge I faced during my side projects was figuring out, "Where should I start and how should I build my foundation?"
Starting my career as a client-side developer, I wasn’t sure where to focus when I switched to full-stack development or where to begin building from. This confusion led to a loss of interest, and I ended up abandoning many side projects.
So now, I am diligently working on those abandoned side projects with ideas that I’ve had for a while.
I’m creating various services based on subdomains at a quick pace, and since Yarn Workspaces have become popular recently, I’ve been modularizing common utilities and managing them as a single package.
Also, using AWS-based load balancers and Route 53, I’ve been deploying and managing servers with subdomains attached to each service. On the front-end side, I’m deploying and managing the clients using Vercel and Next.js.
This is a translation of your post into English. Let me know if you'd like any further adjustments!