If you can plan and write programs to solve problems, you're a developer. If you can fix bugs in programs, you're a developer.
To do this you would typically need to know the basic syntax and semantics of one or more programming languages. It's okay to make mistakes-- that's what compilers and testing are for. It's okay to not know every library function or obscure language feature-- that's what Google and StackOverflow (or the docs for whatever language you're using) are for.
If I could give you a problem like FizzBuzz, or a problem like "the software does X but it's supposed to do Y" and you could solve it, you're a developer.
I don't know the answers to the specific types of developer you mention, because I've been more of a generalist. But I'd say if you can convince someone to hire you as a front-end/back-end/full-stack developer, you're that kind of developer. What it takes to get hired is a whole other topic :)
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.