<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Esandi Linara</title>
    <description>The latest articles on DEV Community by Esandi Linara (@linara07).</description>
    <link>https://dev.to/linara07</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4131181%2F4acc20d8-dcea-4e98-87a8-2e9057394ac5.jpg</url>
      <title>DEV Community: Esandi Linara</title>
      <link>https://dev.to/linara07</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/linara07"/>
    <language>en</language>
    <item>
      <title>Introduction to SPRINGBOOT</title>
      <dc:creator>Esandi Linara</dc:creator>
      <pubDate>Tue, 22 Sep 2026 06:42:08 +0000</pubDate>
      <link>https://dev.to/linara07/introduction-to-springboot-3699</link>
      <guid>https://dev.to/linara07/introduction-to-springboot-3699</guid>
      <description>&lt;p&gt;&lt;strong&gt;1. What is Spring Boot?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Spring Boot is a Java framework that makes it easier and faster to develop applications. It reduces the amount of code developers need to write by providing ready-made configurations and built-in servers. It is commonly used to create web applications, REST APIs, and microservices. It also helps developers build applications that are ready to run in real-world environments and can be deployed to the cloud.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. What is the advantage of Spring Boot over Spring?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Spring and Spring Boot re popular frameworks in the Java ecosystem that simplify the development of enterprise and micro-services based applications.It reduces boilerplate code and improve productivity while building robust systems.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Similarities&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Enables development of scalable and production-ready applications.&lt;/li&gt;
&lt;li&gt;Reduces complexity through simplified configuration and auto-setup.&lt;/li&gt;
&lt;li&gt;Promotes modular design using reusable components.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  SPRING
&lt;/h2&gt;

&lt;p&gt;Spring is a Java framework that helps developers build strong, reliable, and scalable applications. It makes application development easier by providing useful features such as Dependency Injection (DI), which helps create and manage objects while reducing the dependency between classes. This makes the application easier to maintain, modify, and test.&lt;/p&gt;

&lt;p&gt;Spring also has a modular structure, which means developers can choose the modules they need, such as Spring MVC for web applications, Spring Security for security, and Spring Data for working with databases. It supports different ways of configuring applications, including XML, annotations, and Java-based configuration, giving developers flexibility in how they set up their projects.&lt;/p&gt;

&lt;h2&gt;
  
  
  SPRING BOOT
&lt;/h2&gt;

&lt;p&gt;Spring Boot is a framework built on top of Spring that makes it easier and faster to develop Java applications. It reduces the amount of extra code developers need to write and simplifies the initial setup of a project. It provides auto-configuration, which automatically configures the application based on the dependencies added, and includes embedded servers such as Tomcat, allowing applications to run without setting up a separate server.&lt;/p&gt;

&lt;p&gt;Spring Boot also provides starter dependencies, which are ready-made collections of dependencies that make it easier to add the required features to a project. In addition, it includes useful features that help developers build applications that are ready for real-world use. These features make Spring Boot suitable for developing web applications, REST APIs, and micro services.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbhptmlbjgc6k6xexoc7a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbhptmlbjgc6k6xexoc7a.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. What is the purpose of Optionals?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The Optional class was introduced in Java 8 to help developers handle null values safely. It is a container that may either contain a value or be empty. Using Optional helps reduce the chances of getting a NullPointerException when working with values that might be null. It also makes the code easier to read and understand.&lt;/p&gt;

&lt;p&gt;Before Optional was introduced, developers often used null to represent missing values, which could cause errors when trying to access or use them. The Optional class provides useful methods, such as isPresent(), to check whether a value exists before using it. This allows developers to handle missing values more safely and prevent the program from crashing unexpectedly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. What are the main HTTP status code?&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;HTTP status codes are numbers sent by a server to tell the client what happened when a request was made. They help developers understand whether a request was successful, needs further action, or encountered an error.&lt;/p&gt;

&lt;p&gt;HTTP status codes are divided into five main groups.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;1. 1xx – Informational Responses&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;100 Continue: The client can continue sending the request.&lt;/li&gt;
&lt;li&gt;101 Switching Protocols: The server agrees to switch protocols.&lt;/li&gt;
&lt;li&gt;102 Processing: The server is still processing the request.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;2. 2xx – Success Responses&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;200 OK: The request was successful.&lt;/li&gt;
&lt;li&gt;201 Created: A new resource was created.&lt;/li&gt;
&lt;li&gt;202 Accepted: The request was accepted for processing.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;3. 3xx – Redirection Responses&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;301 Moved Permanently: The resource has permanently moved.&lt;/li&gt;
&lt;li&gt;302 Found: The resource is temporarily available elsewhere.&lt;/li&gt;
&lt;li&gt;304 Not Modified: The cached resource can be used.&lt;/li&gt;
&lt;li&gt;307 Temporary Redirect: The request is temporarily redirected, keeping the same method.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;4. 4xx – Client Error Responses&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;400 Bad Request: The request contains invalid information.&lt;/li&gt;
&lt;li&gt;401 Unauthorized: Authentication is required or invalid.&lt;/li&gt;
&lt;li&gt;403 Forbidden: Access to the resource is denied.&lt;/li&gt;
&lt;li&gt;404 Not Found: The requested resource cannot be found.&lt;/li&gt;
&lt;li&gt;405 Method Not Allowed: The HTTP method is not supported.&lt;/li&gt;
&lt;li&gt;409 Conflict: The request conflicts with the resource's current state.&lt;/li&gt;
&lt;li&gt;429 Too Many Requests: The client has sent too many requests.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;5. 5xx – Server Error Responses&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;500 Internal Server Error: An unexpected server error occurred.&lt;/li&gt;
&lt;li&gt;501 Not Implemented: The server does not support the requested functionality.&lt;/li&gt;
&lt;li&gt;502 Bad Gateway: The server received an invalid response from another server.&lt;/li&gt;
&lt;li&gt;503 Service Unavailable: The server is temporarily unavailable.&lt;/li&gt;
&lt;li&gt;504 Gateway Timeout: Another server did not respond in time.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;5. What is the use of logging?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Logging is the process of recording important events, activities, and errors that happen in a software application. It helps developers understand how an application works and identify problems when something goes wrong.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The main uses of logging&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Debugging and troubleshooting helps developers find errors and understand what caused them.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Performance monitoring helps monitor application performance and identify slow or inefficient parts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Security helps detect suspicious activities, unauthorized access, and potential security issues.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Historical analysis keeps a record of past events, helping developers identify patterns and recurring problems.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;6. What are the different types of log levels?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Logging levels help categorize log messages based on their severity or importance. The most commonly used logging levels include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;DEBUG: Detailed information useful for development and debugging purposes. Typically disabled in production environments.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;INFO: Informational messages indicating the normal flow of events or system status.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;WARNING: Warnings highlight potential issues or situations that may lead to errors or malfunctions in the future.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;ERROR: Represents recoverable errors or exceptions that occurred within the system or application.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;CRITICAL: Denotes severe errors or failures that require immediate attention and may lead to system shutdown or data loss.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By setting the appropriate logging level, you can control the amount of detail captured in logs, striking a balance between useful information and log noise.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. What are the advantages of Spring Security?&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Protection against threats like CSRF, session fixation and clickjacking.&lt;/li&gt;
&lt;li&gt;Integration with Spring MVC and Spring Boot.&lt;/li&gt;
&lt;li&gt;Supports Java-based configuration.&lt;/li&gt;
&lt;li&gt;Works with standard Servlet API.&lt;/li&gt;
&lt;li&gt;Prevents brute-force attacks.&lt;/li&gt;
&lt;li&gt;Active open-source community ensuring continuous improvements&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>backend</category>
      <category>java</category>
      <category>springboot</category>
    </item>
    <item>
      <title>Introduction to DOCKER</title>
      <dc:creator>Esandi Linara</dc:creator>
      <pubDate>Fri, 18 Sep 2026 11:10:29 +0000</pubDate>
      <link>https://dev.to/linara07/introduction-to-docker-45cl</link>
      <guid>https://dev.to/linara07/introduction-to-docker-45cl</guid>
      <description>&lt;p&gt;&lt;strong&gt;What is Docker?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Docker is a tool that lets the user to package up an application along with everything it needs to run. The code, the libraries, the settings, all of it are put into a single neat unit called a container.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why do people use Docker?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Docker exists to kill the "works on my machine" excuse. It does this by packaging apps so they run the same everywhere, making deployment a one-step process, letting each part of an app (database, backend, frontend) run in its own container, keeping teams on the same setup, and fitting neatly into automated testing/deployment pipelines.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Advantages of Docker&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Portable: build once, run anywhere&lt;/li&gt;
&lt;li&gt;Lightweight and fast to start&lt;/li&gt;
&lt;li&gt;Keeps apps isolated from each other&lt;/li&gt;
&lt;li&gt;Speeds up releases&lt;/li&gt;
&lt;li&gt;Scales easily with tools like Kubernetes&lt;/li&gt;
&lt;li&gt;Supports easy version rollbacks&lt;/li&gt;
&lt;li&gt;Runs efficiently without multi-OS overhead&lt;/li&gt;
&lt;li&gt;Backed by a huge community and ready-made images&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Disadvantages of Docker&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Carries kernel-level security risk&lt;/li&gt;
&lt;li&gt;Can't truly virtualize a different OS&lt;/li&gt;
&lt;li&gt;Makes long-term data storage trickier&lt;/li&gt;
&lt;li&gt;Adds networking complexity at scale&lt;/li&gt;
&lt;li&gt;Has a real learning curve&lt;/li&gt;
&lt;li&gt;Harder to debug than a normal app&lt;/li&gt;
&lt;li&gt;Small performance cost vs. running natively&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;What is Docker Hub?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Docker Hub is basically the app store for Docker images. It is a cloud-based library where people can upload, share, and download container images. &lt;/p&gt;

&lt;p&gt;It lets the user to store images publicly for free or keep them private with a paid plan. It gives you access to official, verified images for popular software like MySQL, Nginx, Python, and Node. It can automatically rebuild the images whenever you push new code to GitHub, and lets you label images with version tags so you always know exactly what you're running. It is a container, what GitHub is to code a central place to find, share and build on other people's work.&lt;/p&gt;

</description>
      <category>containers</category>
      <category>devops</category>
      <category>docker</category>
    </item>
    <item>
      <title>Maven Basics</title>
      <dc:creator>Esandi Linara</dc:creator>
      <pubDate>Fri, 18 Sep 2026 10:15:52 +0000</pubDate>
      <link>https://dev.to/linara07/maven-basics-4oon</link>
      <guid>https://dev.to/linara07/maven-basics-4oon</guid>
      <description>&lt;p&gt;&lt;strong&gt;1. What is Maven?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Maven is a tool that helps to build and manage Java projects. It handles things like downloading the libraries that project needs, compiling the code, running the tests, and packaging everything into a final file called .jar. Instead of doing all of this manually, Maven does it for you based on a set of rules written in a file called pom.xml. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Advantages of Maven&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Maven downloads the libraries (dependencies), project needs straight from the internet, so there is no need to add them by hand.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Maven has standard project structure so that every Maven project follows the same folder layout, so any developer can jump into a new project and immediately know where things are.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Maven has an easy build process so that a single command like &lt;code&gt;mvn install&lt;/code&gt; can compile the code, run the tests, and package the whole project.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Maven has a huge ecosystem of plugins for testing, reporting, deployment, and more.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. How do you install Maven?&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;First, I made sure Java (JDK) was installed, since Maven needs it to run:java -version&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Then I updated my package list and installed Maven directly using &lt;code&gt;apt&lt;/code&gt;:sudo apt update&lt;br&gt;
        sudo apt install maven&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Once it finished installing, I confirmed everything worked by checking the version: mvn -version&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;4. Display output of maven version&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Apache Maven 3.9.6&lt;br&gt;
Maven home: /usr/share/maven&lt;br&gt;
Java version: 17.0.10, vendor: Ubuntu&lt;br&gt;
Java home: /usr/lib/jvm/java-17-openjdk-amd64&lt;br&gt;
Default locale: en_US, platform encoding: UTF-8&lt;br&gt;
OS name: "linux", version: "6.5.0", arch: "amd64"&lt;/p&gt;

&lt;p&gt;The above output says the Maven version, the Java version it's linked to, and some basic OS details.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. The 3 Types of Maven Repositories&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;(i) Local Repository — A folder on the own computer, where Maven stores every library it downloads. Once something's downloaded once, Maven just reuses it from here instead of re-downloading it every time you build.&lt;/p&gt;

&lt;p&gt;(ii) Central Repository — The default, public repository on the internet (Maven Central) containing thousands of common libraries. If something isn't already in your local repository, Maven looks here next.&lt;/p&gt;

&lt;p&gt;(iii) Remote Repository — A private or custom repository set up by a company or team, often using tools like Artifactory. This is useful for internal libraries that aren't meant to be public, or for controlling exactly which versions of dependencies are approved for use across a team.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Running Unit Tests with Maven&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The command is as follows:&lt;/p&gt;

&lt;p&gt;mvn test&lt;/p&gt;

&lt;p&gt;This compiles the code and runs every test class found under &lt;code&gt;src/test/java&lt;/code&gt;. Under that, Maven uses a plugin called "Surefire" to actually execute the tests, and gives an output as follows:&lt;/p&gt;

&lt;p&gt;Tests run: 1, Failures: 0, Errors: 0, Skipped: 0&lt;br&gt;
BUILD SUCCESS&lt;/p&gt;

&lt;p&gt;If a test fails, the output is as &lt;code&gt;BUILD FAILURE&lt;/code&gt;, along with details on exactly which test failed and why, which makes the debugging pretty straightforward once I understood how to read the output.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>java</category>
      <category>tools</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
