Burak, the $4 Kit is worth its money, but for designing you should use at least a CY8CKIT-043.
The main difference is that this kit allows for debugging and does not need a bootloader. When your project is ready, you can program it (after a few changes) into the -049 kit.
In the mean time: Read the -049 manual thoroughly regarding the switch to press when inserting the board into USB. On Creator start page you'll find examples for bootloadable projects.
I think, I have misunderstanded because of my confusing.
I am trying to communicate with Esp8266 wifi module and Psoc. I am sending data from Psoc to Esp8266 with Uart after that I send these datas with Esp8266 to network.
To do it, I am programming Psoc, after that I am programming Esp8266.
My purpose is program only one of them. For example program Esp8266 with ttl converter and program Psoc with Esp8266 (via I2C or UART) or program Psoc and program Esp8266 with Psoc (it gives me disadvantage beacuse ESP8266 has more flash than Psoc.)
I want to learn is it possible because I really no idea how can I do this.
I think I should use jtag or swd protocol for that am I right ?
Please refer this appnote AN84858 (http://www.cypress.com/documentation/application-notes/an84858-psoc-4-programming-using-external-microcontroller-hssp). This contains how to program PSOC4 using external micro-controller over SWD interface. You may have to port the code according to your ESP8266 controller.Let me know if this helps.