At the part store they run a load test on the battery that mimics a big draw. If it holds up to a certain voltage it means the battery itself is not weakened yet. As the battery ages it will weaken as in not be able to supply a given amount of cold cranking amps. When its cold the oil thickens some thereby making the engine have to work harder to rotate. Hence the term "cold" cranking amps.
I'd say you should investigate why the check engine lamp is lighting up. It could be a sign of what is taking place to cause your car to struggle to crank over. The part store can often "read the code" and determine why the CEL is lighting. My gut tells me your voltage regulator in the alternator is hit and miss. A long time ago that was a little box on the fire wall or fender. These days they are inside of the alternator. It determines how much electricity goes to the engine to keep it running and to the battery to charge it. It only has to be off by a little to keep the engine running but not have extra to charge the battery.
Another issue could be a parasitic drain. An out of the ordinary draw on the battery when the car isn't running. In my 04 GS 300 for example the CD changer kept trying to change discs and the seat memory kept activating. Now I could not hear the disc changer nor was the seat memory moving the seat, but they were drawing on the system leading to a weak or dead battery if I didn't drive the car every day.
Yet another issue may be short trips don't allow the battery to charge enough. Example; start the car, drive to a store 10 minutes away, finish there, start car and drive 10 minutes to another store. Never giving the engine a good 30-45 minutes to charge the battery back up to the voltage used to start the car can also lead to the hard to crank or dead battery issue.
Hope you find it soon and it's a cheap and easy fix.